SAT-solver ที่ใช้ DPLL นั้นมีประสิทธิภาพเพียงใดใน PHP ที่น่าพอใจ


15

เรารู้ว่า DPLL ที่ใช้ SAT-solvers ล้มเหลวในการตอบอย่างถูกต้องในกรณีที่ไม่น่าพอใจของ (หลักการของหลุมนกพิราบ) เช่น "มีการทำแผนที่แบบฉีดจากn + 1ถึงn ":PHPn+1n

PHPnn+1:=(i[n+1] j[n] pi,j)(ii[n+1] j[n] (¬pi,j¬pi,j))

ฉันกำลังค้นหาผลลัพธ์เกี่ยวกับวิธีการทำงานของอินสแตนซ์ที่น่าพอใจของเช่นบน "มีการทำแผนที่แบบฉีดจากnถึงn "PHPnn

พวกเขาพบการมอบหมายที่น่าพอใจอย่างรวดเร็วในกรณีเช่นนี้หรือไม่?


1
โดย "ล้มเหลวในการตอบอย่างถูกต้อง" คุณหมายถึง "หมดทรัพยากรในค่าขนาดใหญ่พอ n" หรือไม่
วีเจย์ D

@Kaveh คุณอนุญาตการทำซ้ำคำสั่งและ / หรือการทำซ้ำของตัวแปรในประโยคเดียวกันหรือไม่? ขอบคุณ
Tayfun จ่าย

@VijayD ผมหมายถึงขั้นตอนวิธีการไม่ได้กลับเป็นคำตอบที่ถูกต้องในเวลาพหุนามสำหรับขนาดใหญ่พอที่nฉันหวังว่าจะมีใครสามารถพิสูจน์ได้ว่าอัลกอริทึมที่ใช้ DPLL จะทำงานในเวลาพหุนามในครอบครัวนี้ n
Kaveh

@Geekster ฉันไม่แน่ใจว่าคุณหมายถึงอะไร ฉันมีสูตรเฉพาะตระกูล คุณกำลังถามว่ามีการทำซ้ำในสูตรนั้นหรือไม่?
Kaveh

คำตอบ:


14

สำหรับตัวอย่างที่น่าพอใจของนักแก้ปัญหา SAT ที่ใช้ DPLL จะให้การมอบหมายที่น่าพอใจในเวลาเชิงเส้นPHP

เพื่อดูว่าทำไมให้สังเกตว่าการเข้ารหัส CNF ของอินสแตนซ์ที่ไม่น่าพอใจของด้วยอย่างไรPHPหลุมและ n + 1นกพิราบเป็น sintactically เหมือนกับตัวอย่างของ k = nกราฟระบายสีที่ข้อมูลกราฟเป็นก๊กของ n + 1จุด .nn+1k=nn+1

ในทำนองเดียวกันการเข้ารหัส CNF ของอินสแตนซ์ที่น่าพอใจของมี n hole และ n pigeons นั้นเหมือนกันกับอินสแตนซ์ของ k = n Graph Colouring ที่กราฟอินพุตเป็นกลุ่มหนึ่งของจุดยอด nPHPnnk=nn

ตอนนี้การระบายสีกลุ่มของจุดยอดด้วยสีnคือตรงไปตรงมา: สแกนจุดยอดและกำหนดให้กับหนึ่งในสีที่เหลือของพวกเขา (สีที่ได้รับมอบหมายแล้วจะถูกตัดออกโดยclique-nessของกราฟโดยใช้การแพร่กระจายหน่วย) . ไม่ว่าสีที่คุณเลือกจะเป็นสีใดจะดีและจะนำคุณไปสู่การมอบหมายที่น่าพอใจnn

จากมุมมองตัวแก้ปัญหา DPLL: ทุกครั้งที่จะพยายามเดาค่าบูลีนของตัวแปรค่าดังกล่าวจะถูกต้อง (ไม่ว่ามันจะเป็นอะไร) เพราะจะมีการมอบหมายที่น่าพอใจซึ่งแน่นอนว่าตัวแปรv iมี คาดเดาค่า การเผยแผ่หน่วยจะทำหน้าที่ที่เหลือโดยแนะนำตัวแก้ปัญหาตามเส้นทางที่น่าพอใจ (กล่าวอีกนัยหนึ่งคือป้องกันไม่ให้เดาค่าผิด)vivi

การค้นหาจะดำเนินการหนึ่งตัวแปรหลังจากที่อื่น ๆ เชิงเส้นแต่ละครั้งทำให้การคาดเดาที่ถูกต้อง


ขอบคุณนี่คือสิ่งที่ฉันคาดหวัง โดยวิธีการที่คุณรู้การอ้างอิงที่ระบุนี้ (เช่น "อัลกอริทึม DPLL แก้ตัวอย่างที่น่าพอใจของ PHP / GC ในเวลาเชิงเส้น")?
Kaveh

1
ยินดี. ฉันไม่รู้การอ้างอิงใด ๆ ที่ระบุสิ่งนี้ฉันเพิ่งได้มาด้วยตัวเองผ่านการให้เหตุผลแบบดิบๆ ไม่ควรยากที่จะพิสูจน์อย่างเป็นทางการโดยอาศัยความจริงที่ว่านักแก้ปัญหา SAT ทุกคนใช้ฮิวริสติกที่สมเหตุสมผลทั้งในการเลือกตัวแปรถัดไปและในการคาดเดาค่าบูลีน ในความเป็นจริงมันจะต้องมีการสังเกตอย่างน้อยหนึ่ง heuristic ที่ไม่มีเหตุผลที่ป้องกันไม่ให้เราไปถึงวิธีการแก้ปัญหาในเวลาเชิงเส้น ในขณะที่มีฮิวริสติกที่สมเหตุสมผลจะให้เวลาเชิงเส้นแน่นอน
Giorgio Camerani

ฉันเห็นด้วย. ฉันหวังว่าบางคนอาจจะกล่าวถึงสิ่งนี้เพื่อฉันสามารถอ้างอิงเมื่อฉันต้องการ ฉันต้องการรออีกสองสามวันและหากไม่มีใครให้การอ้างอิงฉันจะยอมรับคำตอบนี้ ขอบคุณอีกครั้ง. :)
Kaveh

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