SAT, CP, SMT, (มาก) ASP ทั้งหมดจัดการกับชุดของปัญหาการเพิ่มประสิทธิภาพ combinatorial เดียวกัน อย่างไรก็ตามพวกเขามาที่ปัญหาเหล่านี้จากมุมที่แตกต่างและกล่องเครื่องมือที่แตกต่างกัน ความแตกต่างเหล่านี้ส่วนใหญ่เป็นวิธีการที่แต่ละโครงสร้างข้อมูลเกี่ยวกับการสำรวจพื้นที่การค้นหา การเปรียบเทียบการทำงานของฉันคือ SAT เป็นรหัสเครื่องในขณะที่ภาษาอื่นเป็นภาษาระดับสูงกว่า
x1∨ x2¯¯¯¯¯∨ x3{ ( x1, 0 ) , ( x2, 1 ) , ( x3, 0 ) }x1x3x2x1∨ x2¯¯¯¯¯∨ x3∨ x4x1∨ x2¯¯¯¯¯∨x3∨x4¯¯¯¯¯∨x5
การประมาณโครงสร้างประโยคจะถูกเก็บไว้เพื่อ จำกัด ชุดของโซลูชันและเพื่อช่วยในการพิจารณาว่าชุดนี้ว่างเปล่าหรือไม่ ในระหว่างการค้นหาการมอบหมายบางส่วนอาจไม่ปรากฏอยู่ในโซลูชันใด ๆ (แม้ว่าจะเป็นไปตามข้อ จำกัด ของแต่ละข้อในตัวอย่าง) สิ่งเหล่านี้เรียกว่าnogoodsคำที่แนะนำโดย ("Mr GNU") Stallman และ Sussmanx ≤ 5x = 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 กำลังกลายเป็น "รหัสเครื่อง" ซึ่งกำหนดเป้าหมายไปที่โมเดลระดับต่ำของการสำรวจคำสั่งในโครงสร้างข้อ กระบวนทัศน์นามธรรมกลายเป็นเหมือนภาษาคอมพิวเตอร์ระดับสูงกว่าด้วยวิธีการและแอปพลิเคชันที่แตกต่างกัน ในที่สุดคอลเลกชันที่หนาแน่นมากขึ้นของการเชื่อมโยงระหว่างเลเยอร์ที่แตกต่างกันเหล่านี้เริ่มคล้ายกับระบบการปรับให้เหมาะสมของคอมไพเลอร์