มีอัลกอริทึมที่มีประสิทธิภาพในการแก้ #SAT หรือไม่


24

ให้เป็นสูตรบูลีนซึ่งประกอบด้วยตัวดำเนินการ AND, OR และ NOT ปกติและตัวแปรบางตัว ผมอยากจะนับจำนวนของการมอบหมายงานที่น่าพอใจสำหรับB นั่นคือฉันต้องการค้นหาจำนวนการกำหนดค่าความจริงที่แตกต่างกันไปยังตัวแปรของBซึ่งBถือว่าค่าจริง ตัวอย่างเช่นสูตรa bมีการมอบหมายที่น่าพอใจสามรายการ ( ) ( ¬ )มีสี่ นี่คือปัญหา #SATBBBBab(ab)(c¬b)

เห็นได้ชัดว่าการแก้ปัญหาที่มีประสิทธิภาพสำหรับปัญหานี้จะแสดงถึงวิธีแก้ปัญหาที่มีประสิทธิภาพสำหรับ SAT ซึ่งไม่น่าเป็นไปได้และในความเป็นจริงแล้วปัญหานี้คือ # P-complete และอาจยากกว่า SAT อย่างเคร่งครัด ดังนั้นฉันจึงไม่คาดหวังว่าโซลูชันที่รับประกันจะมีประสิทธิภาพ

แต่เป็นที่ทราบกันดีว่ามันมีบางกรณีที่ค่อนข้างยากของ SAT เอง (ดูตัวอย่างที่Cheeseman 1991, " ปัญหาที่ยากจริงๆ คืออะไร" ) การค้นหาแบบสามัญที่ตัดทอนถึงแม้จะเป็นเลขชี้กำลังในกรณีที่แย่ที่สุดก็สามารถแก้ปัญหาได้อย่างมีประสิทธิภาพ วิธีการแก้ปัญหาแม้ในกรณีที่เลวร้ายที่สุด แต่จะมีประสิทธิภาพมากขึ้นในทางปฏิบัติ

คำถามของฉันคือ:

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


1
ฉันพยายามเพิ่มแท็กสำหรับ # p-completeeness แต่ซอฟต์แวร์ Stack Exchange ไม่ชอบเครื่องหมาย #
Mark Dominus

ฉันจะระมัดระวังด้วยการอ้างว่า "มีกรณีของตัว SAT ค่อนข้างยาก" ฉันเชื่อว่าบทความที่คุณเชื่อมโยงพูดถึงเกี่ยวกับการสุ่ม -SAT นอกจากนี้ปรากฏการณ์การเปลี่ยนเฟสจะใช้กับอินสแตนซ์สุ่มเท่านั้น มีตัวอย่างงานฝีมืองานฝีมืออุตสาหกรรมและอื่น ๆ อีกมากมายของ SAT k
Juho

ขอบคุณ คุณคิดว่าสิ่งนี้มีแนวโน้มที่จะทำให้คำถามของฉันชัดเจนน้อยลงหรือไม่? คุณเข้าใจสิ่งที่ฉันขอหรือไม่
Mark Dominus

มันชัดเจนสำหรับฉัน มันเป็นสิ่งสำคัญเท่านั้นที่จะจำสิ่งที่กรณีแสดงการเปลี่ยนแปลงเฟส :)
Juho

คำตอบ:


21

การนับในกรณีทั่วไป

ปัญหาที่คุณสนใจนั้นเรียกว่า #SAT หรือการนับแบบ ในความรู้สึกมันเป็นปัญหาคลาสสิก # P- สมบูรณ์ การนับรุ่นทำได้ยากแม้กระทั่ง -SAT! ไม่น่าแปลกใจที่วิธีการที่แน่นอนสามารถจัดการกับอินสแตนซ์ที่มีตัวแปรหลายร้อยตัวเท่านั้น มีวิธีการประมาณเช่นกันและพวกเขาอาจจัดการกับอินสแตนซ์ที่มีตัวแปรประมาณ 1,000 ตัว2

วิธีการนับที่แน่นอนมักขึ้นอยู่กับการค้นหาแบบละเอียด DPLL หรือการรวบรวมความรู้บางประเภท วิธีการโดยประมาณมักจะถูกจัดประเภทเป็นวิธีการที่ให้การประเมินที่รวดเร็วโดยไม่มีการรับรองและวิธีการที่ให้ขอบเขตที่ต่ำกว่าหรือสูงกว่าด้วยการรับประกันความถูกต้อง นอกจากนี้ยังมีวิธีการอื่น ๆ ที่อาจไม่เหมาะกับหมวดหมู่เช่นการค้นพบแบ็คดอร์หรือวิธีการที่ยืนยันในคุณสมบัติโครงสร้างบางอย่างที่จะเก็บไว้ในสูตร (หรือกราฟข้อ จำกัด )

มีการนำไปปฏิบัติจริง ตัวนับรุ่นที่แน่นอนบางตัวคือ CDP, Relsat, Cachet, sharpSAT และ c2d การเรียงลำดับของเทคนิคหลักที่ใช้โดยนักแก้ปัญหาที่แน่นอนคือการนับบางส่วน, การวิเคราะห์องค์ประกอบ (ของกราฟข้อ จำกัด ที่ต่ำกว่า), การแคชสูตรและส่วนประกอบและการใช้เหตุผลอย่างชาญฉลาดที่แต่ละโหนด วิธีอื่นที่อิงตามการรวบรวมความรู้จะแปลงสูตรอินพุต CNF ไปเป็นรูปแบบโลจิคัลอื่น จากแบบฟอร์มนี้สามารถนับจำนวนโมเดลได้อย่างง่ายดาย (เวลาพหุนามในขนาดของสูตรที่สร้างขึ้นใหม่) ตัวอย่างเช่นหนึ่งอาจแปลงสูตรเป็นไดอะแกรมการตัดสินใจแบบไบนารี (BDD) จากนั้นเราสามารถข้าม BDD จากลีฟ "1" กลับไปที่รูท หรืออีกตัวอย่างหนึ่ง c2d ใช้คอมไพเลอร์ที่เปลี่ยนสูตร CNF ให้เป็นรูปแบบปกติของการแยกสลายที่กำหนดขึ้นได้ (d-DNNF)

φφ

Gogate and Dechter [3] ใช้เทคนิคการนับแบบที่รู้จักกันในชื่อ SampleMinisat มันขึ้นอยู่กับการสุ่มตัวอย่างจากพื้นที่การค้นหาย้อนกลับฟรีของสูตรบูลีน เทคนิคนี้สร้างจากแนวคิดของการสุ่มตัวอย่างความสำคัญอีกครั้งโดยใช้ตัวแก้ SAT ที่ใช้ DPLL เพื่อสร้างพื้นที่การค้นหาที่ไม่มีรอยย้อนกลับ สิ่งนี้อาจทำได้อย่างสมบูรณ์หรือใกล้เคียงที่สุด การสุ่มตัวอย่างสำหรับการประมาณการโดยมีการรับประกันนั้นเป็นไปได้ อาคารใน [2], Gomes และคณะ [4] แสดงให้เห็นว่าการใช้การสุ่มตัวอย่างกับกลยุทธ์แบบสุ่มที่แก้ไขแล้วสามารถทำให้ขอบเขตที่พิสูจน์ได้ลดลงในการนับรวมทั้งหมดด้วยการรับประกันความถูกต้องน่าจะเป็นสูง

นอกจากนี้ยังมีงานที่สร้างขึ้นบนการเผยแพร่ความเชื่อ (BP) ดู Kroc และคณะ [5] และ BPCount ที่พวกเขาแนะนำ ในกระดาษเดียวกันผู้เขียนให้วิธีที่สองที่เรียกว่า MiniCount สำหรับการให้ขอบเขตบนการนับรูปแบบ นอกจากนี้ยังมีกรอบสถิติที่อนุญาตให้ผู้ใช้คำนวณขอบเขตบนภายใต้สมมติฐานทางสถิติ

อัลกอริทึมสำหรับ # 2-SAT และ # 3-SAT

O(1.3247n)O(1.6894n)O(1.6423n)

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


[1] Vilhelm Dahllöf, Peter Jonsson และ Magnus Wahlström การนับจำนวนความพึงพอใจที่ได้รับมอบหมายใน 2-SAT และ 3-SAT ในการประชุมทางไกลระหว่างประเทศครั้งที่ 8 (COCOON-2002), 535-543, 2002

[2] W. Wei และ B. Selman แนวทางใหม่ในการนับรูปแบบ ในการดำเนินการของ SAT05: การประชุมนานาชาติครั้งที่ 8 เรื่องทฤษฎีและการประยุกต์ใช้การทดสอบความพึงพอใจเล่ม 3569 ของเอกสารการบรรยายในวิทยาการคอมพิวเตอร์, 324-339, 2005

[3] R. Gogate และ R. Dechter การนับโดยประมาณโดยการสุ่มตัวอย่างพื้นที่ค้นหาที่ไม่มีรอยย้อนกลับ ในการดำเนินการของ AAAI-07: การประชุมระดับชาติที่ 22 ด้านปัญญาประดิษฐ์, 198–203, แวนคูเวอร์, 2007

[4] CP Gomes, J. Hoffmann, A. Sabharwal และ B. Selman จากการสุ่มตัวอย่างจนถึงการนับแบบ ในการดำเนินการของ IJCAI-07: การประชุมร่วมกันระหว่างประเทศครั้งที่ 20 เรื่องปัญญาประดิษฐ์, 2293–2299, 2007

[5] L. Kroc, A. Sabharwal และ B. Selman การเผยแพร่การใช้ประโยชน์จากความเชื่อการค้นหาย้อนหลังและสถิติสำหรับการนับรูปแบบ ใน CPAIOR-08: การประชุมนานาชาติครั้งที่ 5 เรื่องบูรณาการของ AI และ OR ในการเขียนโปรแกรมข้อ จำกัด เล่ม 5015 ของบันทึกการบรรยายในวิทยาการคอมพิวเตอร์, 127–141, 2008

[6] K. Kutzkov ขอบเขตบนใหม่สำหรับปัญหา # 3-SAT ตัวประมวลผลข้อมูล 105 (1), 1-5, 2007


8

นอกจากเอกสารที่ระบุไว้โดย Juho นี่คือบางส่วนที่อธิบายการทำงานในหัวข้อนี้โดยเฉพาะในการประมาณจำนวนวิธีแก้ไข:

  • รุ่นนับ คาร์ล่าพี. Gomes, Ashish Sabharwal, บาร์ตเซลแมนคู่มือความพึงพอใจกด IOS บรรณาธิการ: Armin Biere, Marijn Heule, Hans van Maaren และ Toby Walsh บทที่ 20, pp 633-654, 2009

    • นี่เป็นภาพรวมที่ดีของหัวข้อและแนะนำเทคนิคต่าง ๆ
  • การสุ่มตัวอย่างใกล้เครื่องแบบ Spaces Combinatorial ใช้แฮคเกอร์ จำกัด Carla P. Gomes, Ashish Sabharwal, Bart Selman NIPS-06 การประชุมประจำปีครั้งที่ 20 เกี่ยวกับระบบประมวลผลข้อมูลประสาท, pp 481-488, แวนคูเวอร์, บริติชโคลัมเบีย, แคนาดา, ธ.ค. 2549

  • XORs สั้นสำหรับรุ่นนับ: จากทฤษฎีกับการปฏิบัติ Carla P. Gomes, Joerg Hoffmann, Ashish Sabharwal, Bart Selman SAT-07 การประชุมนานาชาติครั้งที่ 10 เกี่ยวกับทฤษฎีและการประยุกต์ใช้การทดสอบความพึงพอใจ LNCS เล่ม 4501, pp 100-106, ลิสบอน, โปรตุเกส, พฤษภาคม 2007

  • การใช้ประโยชน์จากความเชื่อการขยายพันธุ์, Backtrack ค้นหาและสถิติสำหรับรุ่นนับ Lukas Kroc, Ashish Sabharwal, Bart Selman ANOR-2011 พงศาวดารของการวิจัยการดำเนินงานเล่ม 184, หมายเลข 1, pp 209-231, 2011

  • Heuristics สำหรับจานที่แน่นอนรุ่นนับ Tian Sang, Paul Beame และ Henry Kautz ทฤษฎีและการประยุกต์ใช้การทดสอบความพึงพอใจ (SAT 2005), pp 226-240

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