ความพึงพอใจข้อ จำกัด แบบเปิดหรือโต้ตอบ


17

ในอดีตฉันใช้โมเดลการประสานงานโดยใช้ SAT และความพึงพอใจของข้อ จำกัด เป็นประจำซึ่งเป็นสิ่งสำคัญสำหรับเครื่องยนต์ของพวกเขา ต่อเนื่องในสายงานนี้ฉันต้องการทำให้แบบจำลองมีการโต้ตอบมากขึ้นและวิธีที่ดีที่สุดที่ฉันเห็นในการทำเช่นนี้คือการเปิดตัวแก้ข้อ จำกัด เพื่อที่จะไม่เป็นกล่องดำอีกต่อไป

ดังนั้นฉันสนใจในการเรียนรู้เพิ่มเติมเกี่ยวกับความพึงพอใจในข้อ จำกัด ที่ จำกัด ที่มีสิ่งที่ฉันจะเรียกตัวแปรภายนอก , ภาคและฟังก์ชั่นที่เป็นภาษา จำกัด อาจมีภาคเช่นซึ่งสามารถให้คำปรึกษาด้านความพึงพอใจโดยบางส่วน เอเจนต์ภายนอกตัวแก้ไขจากนั้นก็ต่อเมื่อxเป็นกราวด์ สถานการณ์ที่มีประโยชน์นี้คือเมื่อใดก็ตามที่Pสอดคล้องกับกระบวนการตัดสินใจภายนอกบางอย่างที่ไม่สามารถรวมเข้าไปในตัวแก้ไขข้อ จำกัด ตัวแก้ข้อ จำกัด ดังกล่าวอาจเรียกว่าopen (เนื่องจากไม่รู้จักข้อ จำกัด ทั้งหมด) หรือการโต้ตอบP(x)xP (เนื่องจากต้องมีการโต้ตอบเพื่อดำเนินการต่อด้วยความพึงพอใจข้อ จำกัด )

ฉันอยากจะรู้ว่าทั้งสอง:

  • การวิจัยเชิงทฤษฎีทำในทิศทางนี้
  • เครื่องมือหรือไลบรารีที่ใช้ตัวแก้ไขข้อ จำกัด ที่อนุญาตให้มีการโต้ตอบกับโลกภายนอกในระหว่างกระบวนการแก้ไขข้อ จำกัด

คำตอบ:


9

ฉันไม่เชื่อโดยสิ้นเชิงกับงานก่อนหน้านี้เกี่ยวกับข้อ จำกัด แบบเปิดและแบบโต้ตอบ

ความพยายามที่จะศึกษาคำถามที่สามารถจัดการได้คือ:

  • มาร์ตินเจ. กรีนและคริสโตเฟอร์เจฟเฟอร์สัน, โครงสร้างความสามารถในการรองรับข้อ จำกัด ของการแพร่กระจาย , CP 2008 ดอย: 10.1007 / 978-3-540-85958-1_25

แม้ว่าบทความนี้จะทำให้คำถามสำคัญหลายข้อยังไม่ได้ตอบ วิธีการผ่านผู้เผยแพร่โฆษณาในบทความนี้เกี่ยวข้องอย่างใกล้ชิดกับการใช้งานตัวแก้ไขข้อ จำกัด ที่มีอยู่

ฉันคิดว่าการทำงานกับ SMT (ทฤษฎีความน่าเชื่อถือโมดูโล) นั้นเกี่ยวข้องกับคำถามของคุณอย่างใกล้ชิด ทฤษฎี SMT มักได้รับแรงบันดาลใจจากปัญหาจากการตรวจสอบซอฟต์แวร์และฮาร์ดแวร์ แต่มีทฤษฎีที่มีรสชาติของ AI อยู่ ฉันหวังว่าจะมีแอปพลิเคชันเพิ่มเติมที่สร้างด้วย SMT เป็นเทคโนโลยีหลักและเพื่อทำงานในข้อ จำกัด เพิ่มเติมที่ใช้แนวคิดจาก SMT


1
กระดาษนั่นดูน่าสนใจอย่างแน่นอน ฉันไม่เคยคิดว่านักแก้ปัญหา SMT จะทำสิ่งที่ฉันต้องการ แน่นอนว่ามันเป็นหนทางในการสำรวจ
Dave Clarke

ฉันสับสนโดยความคิดเห็นล่าสุด ตัวแก้ปัญหา SMT ใช้สำหรับ logics และทฤษฎีไม่ใช่เพรดิเคตเฉพาะ ผู้คนยินดีที่จะมีส่วนร่วมในทฤษฎีและมาตรฐานใหม่ ฉันรู้ว่านักพัฒนา MathSAT ได้ศึกษา AI และวางแผนปัญหา
วีเจย์ D

@Vijay D: คุณพูดถูกประโยคนี้มีอคติเกินจริงและฉันจะแก้ไข การดำเนินการอย่างมีประสิทธิภาพของ INJECTIVE ในฐานะทฤษฎีของ SMT ถูกตีพิมพ์ในปี 2010 โดยBankovićและMarić ( argo.matf.bg.ac.rs/publications/2010/alldiff-smt2010.pdf )
András Salamon

7

การอ่านคำถามของคุณฉันก็เห็นด้วยกับการบอกว่าทฤษฎีโมดูโลพอใจที่เกี่ยวข้องกับความต้องการของคุณ ฉันขอแนะนำให้อ่านหนังสือขั้นตอนการตัดสินใจ - เป็นขั้นตอนมุมมอง


หนังสือแคลคูลัสแห่งการคำนวณมีความเกี่ยวข้อง / คุ้มค่าอย่างไร: ขั้นตอนการตัดสินใจพร้อมแอปพลิเคชั่นเพื่อการตรวจสอบโดยแอรอนอาร์แบรดลีย์และโซฮาร์มานา ฉันรู้ว่าสามารถเดินไปไหนได้บ้าง
Dave Clarke

@Dave: ข้อจำกัดความรับผิดชอบ: ประสบการณ์ส่วนตัวของฉันใน SMT เป็นเพียงจุดเริ่มต้น ;-)ฉันเพิ่งดูที่สารบัญของหนังสือเล่มนั้น; ดูเหมือนจะมีจุดตัดขนาดใหญ่ระหว่างจุดนั้นกับจุดที่ฉันระบุ ในอันหลังสิ่งที่คุณเรียกว่าฟังก์ชั่นภายนอกที่นี่เรียกว่าฟังก์ชั่นที่ไม่มีการตีความและครอบคลุมอย่างกว้างขวาง ผมก็ไม่สามารถหาฟังก์ชั่น uninterpretedใน TOC ของขั้นตอนการตัดสินใจกับการประยุกต์ใช้ในการตรวจสอบ ; อย่างไรก็ตามดูเหมือนว่าจะเป็นหนังสือที่ดีมากและอาจเป็นประโยชน์
Giorgio Camerani

@Dave: ในวันนี้ฉันอ่านขั้นตอนการตัดสินใจ - เป็นขั้นตอนมุมมอง ฉันยังไม่ถึงบทที่เกี่ยวกับฟังก์ชั่นที่ไม่ถูกตีความแต่ถ้าฉันไม่ผิดสูตรที่มีฟังก์ชั่นที่ไม่ถูกตีความจะถูกแปลงเป็นสูตรในทฤษฎีของความเท่าเทียมกัน เป็นกรณีที่มีการกล่าวถึงทฤษฎีความเสมอภาคในขั้นตอนการตัดสินใจด้วยแอปพลิเคชันเพื่อการตรวจสอบ (บทที่ 9)
Giorgio Camerani

1
ฉันคิดว่าอเมซอนกำลังโทร
Dave Clarke

@Dave: ตกลงยอดเยี่ยม! ;-)
Giorgio Camerani


4

ฉันสับสนเล็กน้อยเกี่ยวกับคำที่มีการโต้ตอบ ฉันจะพูดสอดกับคนอื่น ๆ และเพิ่มว่าตัวแก้ปัญหา SMT อาจเป็นประโยชน์ เพื่อเพิ่มความคิดเห็นของวอลเตอร์บิชอปมีสไลด์สำหรับหนังสือขั้นตอนการตัดสินใจ (Kroening และ Strichman) การปฏิบัติอย่างถี่ถ้วนของ John Harrison ในคู่มือตรรกะเชิงปฏิบัติและการใช้เหตุผลอัตโนมัติอาจทำให้คุณสนใจ โค้ดตัวอย่างพร้อมใช้งานออนไลน์

เจ้าหญิงของ Philipp Ruemmer สนับสนุนคณิตศาสตร์ด้วยเพรดิเคตที่ไม่ถูกตีความซึ่งอาจเหมาะสมกับความหมายของคุณโดยการเปิด มันเขียนไว้ใน Scala ใช้การจับคู่แบบ E ในการจัดการปริมาณและจัดเตรียม interpolants


0

ถ้าคุณตัดสินใจที่จะใช้ Prolog เป็นภาษาที่เลือกฉันสามารถแนะนำวิธีการใช้งานบางอย่างได้:

  • อารัมภบท GNU ที่มีไลบรารีโปรแกรมมิง C คุณสามารถเรียกใช้ฟังก์ชั่น C จาก Prolog และ Prolog จาก C ซึ่งจะช่วยเพิ่มความเป็นไปได้ในการขยายฟังก์ชันการทำงาน Pro: Gnu Prolog เป็นหนึ่งในคอมไพเลอร์ Prolog ที่พร้อมใช้งานเร็วที่สุด หมายเหตุ: บางคนบ่นว่าไม่มีเพรดิเคตในตัว ... จริง ๆ แล้วพวกเขาส่วนใหญ่สามารถนำไปใช้งานได้ตรวจสอบเลเยอร์ความเข้ากันได้ของ Prolog @SO
  • SWI-Prologมีห้องสมุดการเขียนโปรแกรมที่น่าสนใจรวมถึงการสื่อสารเครือข่ายการสนับสนุนโปรโตคอลบัฟเฟอร์ ฯลฯ และเป็นที่นิยมมาก
  • XSB Prologบางคนอ้างว่าเป็นโครงการที่น่าสนใจที่สุดในแง่ของการทำงานร่วมกัน - รวมถึง: อินเตอร์เฟสฐานข้อมูลเป็นต้น

อารัมภบทเป็นภาษาการเขียนโปรแกรมที่เหมาะสำหรับการแก้ปัญหาหลายชนิด (และส่วนใหญ่มีตัวแก้ไขโดเมนที่ จำกัด )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.