อัลกอริธึมที่รู้จักกันดีทั้งหมดสำหรับการแก้ปัญหาที่สร้างปัญหา NP-Complete หรือไม่?


11

มีอัลกอริธึมที่รู้จักใด ๆ ที่ส่งเอาต์พุต "ใช่" ไปยังปัญหาที่ทำให้เสร็จสมบูรณ์แบบ NP โดยไม่ต้องสร้างใบรับรองโดยนัยหรือไม่?

ฉันเข้าใจว่ามันเป็นเรื่องง่ายที่จะเปลี่ยน oracle ที่น่าพอใจเป็นเครื่องมือค้นหาที่น่าพอใจ - เพียงแค่วนซ้ำตัวแปรทุกครั้งที่ถาม oracle ที่น่าพอใจเพื่อแก้ปัญหาการเชื่อมต่อของตัวแปรนั้นกับปัญหาดั้งเดิม

แต่เสื้อคลุมแบบนี้จะมีประโยชน์ไหม? ผู้แก้ปัญหา sat ทุกคนค้นหาพื้นที่ของการมอบหมายที่เป็นไปได้หรือไม่?

หรือมีปัญหา NP-complete บางประเภท (พนักงานขายที่เดินทางยอดรวมย่อย ฯลฯ ) ซึ่งนักแก้ปัญหาสามารถพูดใช้ทฤษฎีบททางคณิตศาสตร์เพื่อพิสูจน์ว่าวิธีแก้ปัญหาต้องมีอยู่หรือไม่ ชอบทำข้อพิสูจน์โดยแย้งหรือไม่?

คำตอบ:


11

ตามที่ฉันเข้าใจคุณกำลังถามคำถามสองข้อ: (1)มีเช่นอัลกอริธึม SAT ที่ฉลาดกว่าพลังเดรัจฉานไร้เดียงสาและ(2)มีอัลกอริธึมที่ให้คำตอบ YES / NO เมื่อแก้ปัญหา NP-complete โดยไม่ต้องหาทางออก ฉันจะตอบคำถามทั้งสองนี้ตามลำดับนี้

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

โดยทั่วไปแล้วแม้แต่ปัญหา NP-hard ก็มักจะจัดแสดงบางส่วนของอัลกอริทึมที่ช่วยให้เราสามารถออกแบบอัลกอริทึมได้เร็วกว่าแรงเดรัจฉาน ฟิลด์ของการวิจัยนี้เป็นอัลกอริธึม (เอ็กซ์โปแนนเชียล) ที่แน่นอน อัลกอริทึมดังกล่าวใช้เวลาชี้แจง แต่ก็ยังเร็วกว่าอัลกอริทึมไร้เดียงสา ตัวอย่างเช่นคุณสามารถแก้ TSP ในคร่าว ๆเวลาโดยที่คือจำนวนเมืองที่จะไปเยี่ยมชม วิธีนี้จะได้ขนาดเป็นค่าปานกลางแม้แต่แต่มีการเขียนโปรแกรมแบบไดนามิกคลาสสิกขั้นตอนวิธีการเวลาที่กำหนดจะจัดขึ้นและคาร์พ สำหรับเทคนิคทั่วไปเห็นเช่นสาขาและผูกพันn!nnO(2nn2)

(2)มี "อัลกอริธึม oracle" สำหรับปัญหา NP-complete ที่เพิ่งออก YES / NO โดยไม่มีใบรับรองชัดเจน ตัวอย่างเช่นพิจารณาปัญหา -path:k

( ปัญหา -path)kจากกราฟและเลขจำนวนเต็มมีเส้นทางแบบง่าย ๆ ในบนจุดยอดหรือไม่?GkGk

ปัญหาดังกล่าวสามารถมองเห็นได้อย่างง่ายดายว่าเป็นปัญหาสมบูรณ์ อัลกอริทึมสำหรับปัญหาจะได้รับใน [1] อัลกอริธึมเองนั้นให้คำตอบว่าใช่ / ไม่ใช่สำหรับปัญหาเท่านั้น แต่เราสามารถใช้ลูกเล่นเพิ่มเติมเพื่อสร้าง -path จริง โดยทั่วไปเมื่อได้รับ "oracle algorithm" เราสามารถใช้เครื่องมือจากการทดสอบกลุ่ม combinatorial เพื่อแยกพยานออกมาO* * * *(2k)k


[1] วิลเลียมส์ไรอัน "การค้นหาเส้นทางที่มีความยาวในเวลา " ตัวประมวลผลข้อมูล 109.6 (2009): 315-318 ลิงค์สำนักพิมพ์ , PDFkO* * * *(2k)


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