ปัญหาความพึงพอใจของข้อ จำกัด (CSP) กับทฤษฎีโมดูโลที่น่าพอใจ (SMT); กับ coda ในการเขียนโปรแกรมข้อ จำกัด


30

มีใครบางคนกล้าที่จะพยายามอธิบายให้ชัดเจนว่าอะไรคือความสัมพันธ์ของสาขาการศึกษาเหล่านี้หรืออาจให้คำตอบที่เป็นรูปธรรมมากขึ้นในระดับของปัญหา? ชอบซึ่งรวมถึงการสันนิษฐานบางสูตรที่ยอมรับกันอย่างแพร่หลาย ถ้าฉันได้รับสิ่งนี้อย่างถูกต้องเมื่อคุณไปจาก SAT ถึง SMT คุณจะเข้าสู่เขตของ CSP เป็นหลัก ในทางกลับกันถ้าคุณ จำกัด CSP ให้กับบูลีนคุณจะต้องพูดถึง SAT และอาจมีปัญหาที่เกี่ยวข้องเช่น #SAT ฉันคิดว่ามันชัดเจนมาก (เช่น cf Kolaitis และบทของ Vardi "A Logical Approach เพื่อความพึงพอใจของข้อ จำกัด " ในFinite Model Theory และการประยุกต์ของมันโดยGrädel et al.) แต่สิ่งที่ชัดเจนสำหรับฉันคือเมื่อมีข้อ จำกัด "โมดูโลทฤษฎี" และเมื่อพวกเขาไม่ได้? SMT บ่งบอกว่าทฤษฎีใช้ความเสมอภาคและความไม่เท่าเทียมกันเสมอในเขตกว้างของ CSP หรือไม่? เท่าที่ฉันสามารถบอกได้คุณสามารถแนะนำตัวแปรหย่อนได้ดังนั้นความแตกต่าง [ถ้ามี] น้อยกว่าชัดเจน

ค่อนข้างที่ผ่านมา"Satisfiability คู่มือ" (IOP กด 2009)รวบรวมทั้ง SMT และ CSP ปัญหาภายใต้กว้าง "satisfiability" ร่ม แต่ให้วิธีที่มันมีโครงสร้าง (บทที่เขียนโดยนักเขียนต่างๆ) ไม่ได้จริงๆช่วยฉันด้วยการหานี้ .

ฉันหวังว่าคำศัพท์จะสับสนน้อยลงเมื่อคุณพูดถึงการ จำกัดการเขียนโปรแกรมซึ่ง (โดยการเปรียบเทียบกับคำว่า '' การเขียนโปรแกรมทางคณิตศาสตร์ '') ฉันหวังว่าการลด / เพิ่มฟังก์ชันวัตถุประสงค์บางอย่างให้น้อยที่สุด บทความวิกิพีเดียเกี่ยวกับการตั้งโปรแกรม จำกัด นั้นค่อนข้างคลุมเครือจนฉันไม่สามารถพูดได้ว่ากรอบนี้เกิดขึ้นจริงหรือไม่ สิ่งที่ฉันสามารถรวบรวมได้จากEssentials of Constraint ProgrammingโดยFrühwirthและ Abdennadher (หน้า 56) คือ "ตัวแก้ไขข้อ จำกัด " มักจะให้มากกว่าแค่ตัวตรวจสอบที่น่าพอใจ

แม้ว่านี่จะเป็นคำถามวิจัยทฤษฎี CS จริง แต่ฉันไม่คาดหวังคำตอบที่ดีสำหรับเว็บไซต์ CS.SE ระดับปริญญาตรีเนื่องจากสิ่งที่ฉันเห็นที่https://cs.stackexchange.com/questions/14946/distinguish- decision-procedure-vs-smt-solver-vs-theorem-prover-vs-constraint-sol (ซึ่งมีคำจำนวนมาก แต่ไม่ใช่สิ่งที่ฉันจะพิจารณาคำตอบที่แท้จริงอนิจจา)


เพิ่มใน ASP นี้ SMT / ASP พัฒนาการล่าสุดค่อนข้าง เขตข้อมูลที่แยกต่างหากก่อนหน้านี้มีการผสม ดูเช่นเครื่องมือการใช้เหตุผลอัตโนมัติแบบไฮบริด: จากการรวมแบล็กบ็อกซ์ไปจนถึงการเคลียร์บ็อกซ์ / Balduccini, Lierler เป็นการสำรวจคร่าวๆล่าสุด
vzn

คำตอบ:


47

SAT, CP, SMT, (มาก) ASP ทั้งหมดจัดการกับชุดของปัญหาการเพิ่มประสิทธิภาพ combinatorial เดียวกัน อย่างไรก็ตามพวกเขามาที่ปัญหาเหล่านี้จากมุมที่แตกต่างและกล่องเครื่องมือที่แตกต่างกัน ความแตกต่างเหล่านี้ส่วนใหญ่เป็นวิธีการที่แต่ละโครงสร้างข้อมูลเกี่ยวกับการสำรวจพื้นที่การค้นหา การเปรียบเทียบการทำงานของฉันคือ SAT เป็นรหัสเครื่องในขณะที่ภาษาอื่นเป็นภาษาระดับสูงกว่า

x1x2¯x3{(x1,0),(x2,1),(x3,0)}x1x3x2x1x2¯x3x4x1x2¯x3x4¯x5

การประมาณโครงสร้างประโยคจะถูกเก็บไว้เพื่อ จำกัด ชุดของโซลูชันและเพื่อช่วยในการพิจารณาว่าชุดนี้ว่างเปล่าหรือไม่ ในระหว่างการค้นหาการมอบหมายบางส่วนอาจไม่ปรากฏอยู่ในโซลูชันใด ๆ (แม้ว่าจะเป็นไปตามข้อ จำกัด ของแต่ละข้อในตัวอย่าง) สิ่งเหล่านี้เรียกว่าnogoodsคำที่แนะนำโดย ("Mr GNU") Stallman และ Sussmanx5x=5. ดังนั้นจึงไม่มีโครงสร้างประโยคทั่วไปเดียว แต่มีโครงสร้างหนึ่งที่เกี่ยวข้องกับการเลือกการแสดงแต่ละตัวขึ้นอยู่กับสิ่งที่ซิงเกิล (ตัวอักษร) ของโครงสร้างประโยคเป็นตัวแทน

การเขียนโปรแกรมข้อ จำกัด (CP) เป็นธรรมเนียมปฏิบัติของ AI โดยมุ่งเน้นที่การกำหนดตารางเวลาการจัดตารางเวลาและปัญหาเกี่ยวกับ combinatorial ดังนั้นจึงมีบทบาทสำคัญสำหรับตัวแปรที่สามารถรับค่าได้มากกว่าสองค่า CP ได้เน้นการค้นหาที่มีประสิทธิภาพและแรงบันดาลใจจากแอปพลิเคชันแบบดั้งเดิมทำให้มีบทบาทสำคัญต่อall-differentข้อ จำกัด (การฉีด) แต่ยังได้พัฒนาผู้เผยแพร่ที่มีประสิทธิภาพสำหรับข้อ จำกัด ประเภทอื่น ๆ อีกมากมาย คำจำกัดความอย่างเป็นทางการของ CP นั้นมีมาตั้งแต่อย่างน้อยก็ในเครือข่ายกระดาษจำกัด ของ Montanari ในปี 1974โดยมีสารตั้งต้นจะกลับมาก่อนหน้านี้ น้ำหนักของประวัติศาสตร์นี้อาจมีส่วนทำให้ CP ล้าหลังแนวทางอื่น ๆ ในการดำเนินงานดิบในช่วงทศวรรษที่ผ่านมา CP รักษาคลาสสิกการประมาณของส่วนประกอบ clause ผ่านชุดของโดเมนที่ใช้งานอยู่สำหรับตัวแปร จุดมุ่งหมายคือการกำจัดค่าจากโดเมนที่ใช้งานอยู่สำรวจโครงสร้างประโยคโดยพยายามกำหนดค่าตัวเลือกให้กับตัวแปรและการย้อนรอยเมื่อจำเป็น

ทฤษฎี modulo ที่น่าพอใจ (SMT) ออกมาจากชุมชนการตรวจสอบ แต่ละทฤษฎีในตัวแก้ปัญหาแบบ SMT เป็นตัวแทนโดยนัยของอนุประโยค SAT จำนวนมากมาย ทฤษฎีที่ใช้กับ SMT และข้อ จำกัด ที่ใช้ใน CP สะท้อนถึงการใช้งานในอดีตที่แตกต่างกัน ทฤษฎีส่วนใหญ่ของ SMT พิจารณาว่าเกี่ยวข้องกับอาร์เรย์จำนวนเต็ม, ฟิลด์ปิดจริง, คำสั่งเชิงเส้นและสิ่งที่คล้ายกัน; สิ่งเหล่านี้เกิดขึ้นจากการวิเคราะห์แบบคงที่ของโปรแกรม (ในการตรวจสอบโดยใช้คอมพิวเตอร์ช่วย) หรือเมื่อทำการพิสูจน์ทางคณิตศาสตร์อย่างเป็นทางการ (ในการให้เหตุผลอัตโนมัติ) ในทางตรงกันข้ามในการกำหนดตารางเวลาและการกำหนดตารางเวลาข้อ จำกัด การฉีดเป็นศูนย์กลางและแม้ว่าภาษาSMTLIBมาตรฐานจะมีข้อ จำกัด การฉีดตั้งแต่เริ่มก่อตั้งในปี 2003 (ผ่านทางdistinctสัญลักษณ์) จนกว่าตัวแก้ปัญหา SMT 2010 จะใช้งานdistinctผ่านอัลกอริธึมไร้เดียงสาเท่านั้น ในขั้นตอนนั้นเทคนิคการจับคู่จากตัวกระจายสัญญาณ CP มาตรฐานสำหรับall-differentพอร์ตจะมีผลอย่างมากเมื่อนำไปใช้กับรายการตัวแปรขนาดใหญ่ เห็นตัวแก้ปัญหา Alldifferent ใน SMTโดยBankovićและMarić, SMT 2010 นอกจากนี้ CP propagators ส่วนใหญ่ได้รับการออกแบบสำหรับปัญหาเกี่ยวกับโดเมนที่ จำกัด ในขณะที่ทฤษฎี SMT มาตรฐานจัดการกับโดเมนที่ไม่มีที่สิ้นสุด (จำนวนเต็มและล่าสุด reals) ออกจากกล่อง SMT ใช้อินสแตนซ์ SAT เป็นการประมาณโครงสร้างของประโยคโดยแยกส่วนคำสั่ง nogood ออกจากทฤษฎีตามความเหมาะสม ภาพรวมที่ดีคือทฤษฎีโมดูโลที่น่าพอใจ: การแนะนำและการประยุกต์ใช้ โดย De Moura และBjørner, ดอย: 10.1145 / 1995376.1995394.

Answer set programming (ASP) มาจากการเขียนโปรแกรมแบบลอจิก เนื่องจากมันให้ความสำคัญกับการแก้ปัญหาทั่วไปที่มากกว่าในการหาตัวแบบที่เสถียรและเพราะมันช่วยให้สามารถหาปริมาณที่เป็นสากลและมีอยู่ได้ ASP นั้นเป็นเวลาหลายปีที่ไม่สามารถแข่งขันกับ CP หรือ SMT ได้

อย่างเป็นทางการ SAT คือ CSP บนโดเมนบูลีน แต่การโฟกัสใน SAT เกี่ยวกับการเรียนประโยคการฮิวริสติกที่ดีสำหรับการตรวจสอบความขัดแย้งและวิธีการย้อนกลับอย่างรวดเร็วนั้นค่อนข้างแตกต่างจาก CSP แบบดั้งเดิมในการเผยแพร่ ปกติแล้ว SAT จะมีประสิทธิภาพสูงสุด แต่สำหรับปัญหาหลาย ๆ อย่างจำเป็นต้องใช้ความพยายามอย่างมากในการแสดงปัญหาก่อนเป็นตัวอย่าง SAT การใช้กระบวนทัศน์ระดับสูงกว่าเช่น CP สามารถช่วยให้การแสดงออกของปัญหาเป็นธรรมชาติมากขึ้นและจากนั้นอินสแตนซ์ CP สามารถแปลเป็น SAT ด้วยมือหรือเครื่องมือสามารถดูแลการแปล ภาพรวมที่ดีของถั่วและ bolts ของ SAT เป็นในโมเดิร์นข้อ-Learning Satisfiability แก้โดย Pipatsrisawat และ Darwiche, ดอย: 10.1007 / s10817-009-9156-3

ตอนนี้เรามาจากเรื่องทั่วไปเพื่อนำเสนอวันที่เฉพาะเจาะจง

ในช่วงทศวรรษที่ผ่านมาบางคนใน CP เริ่มให้ความสำคัญกับการสร้างประโยคแบบขี้เกียจ (LCG) นี่เป็นวิธีที่จะทำให้การโฆษณาชวนเชื่อ CP ร่วมกันโดยใช้เทคนิคที่คล้ายกับ SMT ที่มีความยืดหยุ่นมากกว่าที่จะเป็นนามธรรม สิ่งนี้มีประโยชน์เพราะมีประวัติอันยาวนานของผู้เผยแพร่ CP ที่เผยแพร่เพื่อแสดงและแก้ไขปัญหาได้อย่างมีประสิทธิภาพ (แน่นอนว่าผลที่คล้ายกันจะเกิดขึ้นได้จากความพยายามร่วมกันในการนำทฤษฎีใหม่มาใช้สำหรับนักแก้ปัญหา SMT) LCG มีประสิทธิภาพที่มักจะแข่งขันกับ SMT และสำหรับปัญหาบางอย่างที่อาจเหนือกว่า ภาพรวมอย่างย่อคือเอกสาร CPAIOR 2010 ของ Stuckey Lazy Clause Generation: การรวมพลังของการแก้ SAT และ CP (และ MIP?) เข้าด้วยกันดอย: 10.1007 / 978-3-642-13520-0_3. นอกจากนี้ยังเป็นมูลค่าการอ่านกระดาษตำแหน่งของการ์เซียเดอลาดา Stuckey แวน Hentenryck และวอลเลซซึ่งวาดวิสัยทัศน์ CP-ศูนย์กลางของอนาคตของเทคโนโลยีการเพิ่มประสิทธิภาพดอย: 10.1007 / s10601-013-9149-z

เท่าที่ฉันสามารถบอกได้ว่าจุดเน้นของการวิจัย SMT เมื่อไม่นานมานี้ดูเหมือนจะเปลี่ยนไปใช้งานในวิธีการอย่างเป็นทางการและคณิตศาสตร์อย่างเป็นทางการ ตัวอย่างคือการสร้างหลักฐานใหม่ที่พบโดยนักแก้ปัญหา SMT ภายในระบบพิสูจน์เช่นIsabelle / HOL โดยการสร้างกลยุทธ์ของ Isabelle / HOL เพื่อสะท้อนกฎการอนุมานในร่องรอยการพิสูจน์ของ SMT; ดูFast LCF-Style Proof Reconstruction สำหรับ Z3โดยBöhmerและ Weber ที่ ITP 2010

ตัวแก้ปัญหา ASP อันดับต้น ๆ ในช่วงไม่กี่ปีที่ผ่านมาได้รับการพัฒนาเพื่อให้สามารถแข่งขันกับตัวแก้ CP, SMT และ SAT เท่านั้น ฉันคุ้นเคยกับรายละเอียดการติดตั้งที่อนุญาตให้นักแก้ปัญหาอย่างเช่นclaspการแข่งขันดังนั้นจึงไม่สามารถเปรียบเทียบสิ่งเหล่านี้กับ SMT และ CP ได้จริง ๆ แต่การจับมือประกาศโฆษณาอย่างชัดเจนเกี่ยวกับการเรียนรู้ nogoods

การตัดข้ามขอบเขตดั้งเดิมระหว่างพิธีการเหล่านี้คือการแปลจากการนำเสนอปัญหาเชิงนามธรรมมากขึ้นสู่ระดับล่างซึ่งเป็นระบบที่ดำเนินการได้อย่างมีประสิทธิภาพ ตัวแก้ปัญหา ASP และ CP ชั้นนำหลายแห่งในขณะนี้แปลอินพุตของพวกเขาเป็นอินสแตนซ์ SAT อย่างชัดเจนซึ่งจะได้รับการแก้ไขโดยใช้ตัวแก้ SAT แบบปิดชั้นวาง ใน CP ที่Savile Row การสร้างแบบจำลอง จำกัด ผู้ช่วยเทคนิคการออกแบบการใช้คอมไพเลอร์จะแปลปัญหาแสดงในภาษาเอสเซ้นระดับปานกลาง' เป็นพิธีที่ต่ำกว่าระดับที่เหมาะสมสำหรับการป้อนข้อมูลเพื่อแก้ CP เช่นMinionหรือMiniZinc Savile Row เดิมทำงานกับตัวแทน CP เป็นพิธีการระดับต่ำ แต่ได้แนะนำ SAT เป็นเป้าหมายในเวอร์ชัน 1.6.2 ยิ่งกว่านั้นEssenceภาษาระดับสูงกว่านี้ตอนนี้สามารถแปลเป็น Essence 'โดยอัตโนมัติโดยเครื่องมือConjure ในขณะเดียวกันนักแก้ปัญหาระดับต่ำอย่าง SAT อย่างLingelingยังคงได้รับการปรับปรุงในแต่ละปีล่าสุดโดยการสลับการเรียนรู้ประโยคและขั้นตอนในการประมวลผล ดูภาพรวมโดยย่อมีอะไรน่าสนใจในการแข่งขัน SAT และ ASPโดย Heule และ Schaub ใน AAAI 2015

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


ขอคำตอบที่มีประโยชน์มาก
Xavier Labouze

2
หมายเหตุ: ในชุมชน FOCS / STOC จะใช้คำจำกัดความที่แคบกว่าของ CSP CSP เหล่านี้อยู่ในรูปแบบ CSP (L), "อินสแตนซ์ CSP ทั้งหมดที่สามารถแสดงได้โดยใช้ชุด L ของความสัมพันธ์แบบ จำกัด คงที่" ข้อ จำกัด ที่แตกต่างกันทั้งหมดไม่เหมาะกับกรอบนี้และไม่มีปัญหาที่มีโครงสร้างเหมือนต้นไม้
András Salamon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.