ตามที่ฉันเข้าใจคุณกำลังถามคำถามสองข้อ: (1)มีเช่นอัลกอริธึม SAT ที่ฉลาดกว่าพลังเดรัจฉานไร้เดียงสาและ(2)มีอัลกอริธึมที่ให้คำตอบ YES / NO เมื่อแก้ปัญหา NP-complete โดยไม่ต้องหาทางออก ฉันจะตอบคำถามทั้งสองนี้ตามลำดับนี้
(1)มันเป็นไปได้อย่างสมบูรณ์แบบในการแก้ปัญหาโดยไม่ต้องใช้กำลังดุร้าย ในการเป็นตัวอย่างของคุณตัวแก้ SAT ที่สมบูรณ์แบบที่ทันสมัยสามารถใช้อัลกอริทึมที่ชาญฉลาดซึ่งอนุมานหรือพิสูจน์ว่าการมอบหมายบางส่วน (บางส่วน) ไม่สามารถนำไปสู่การแก้ปัญหาได้ดังนั้นพวกเขาจึงไม่ได้ตรวจสอบส่วนนั้น
โดยทั่วไปแล้วแม้แต่ปัญหา NP-hard ก็มักจะจัดแสดงบางส่วนของอัลกอริทึมที่ช่วยให้เราสามารถออกแบบอัลกอริทึมได้เร็วกว่าแรงเดรัจฉาน ฟิลด์ของการวิจัยนี้เป็นอัลกอริธึม (เอ็กซ์โปแนนเชียล) ที่แน่นอน อัลกอริทึมดังกล่าวใช้เวลาชี้แจง แต่ก็ยังเร็วกว่าอัลกอริทึมไร้เดียงสา ตัวอย่างเช่นคุณสามารถแก้ TSP ในคร่าว ๆเวลาโดยที่คือจำนวนเมืองที่จะไปเยี่ยมชม วิธีนี้จะได้ขนาดเป็นค่าปานกลางแม้แต่แต่มีการเขียนโปรแกรมแบบไดนามิกคลาสสิกขั้นตอนวิธีการเวลาที่กำหนดจะจัดขึ้นและคาร์พ สำหรับเทคนิคทั่วไปเห็นเช่นสาขาและผูกพันn !nnO ( 2)nn2)
(2)มี "อัลกอริธึม oracle" สำหรับปัญหา NP-complete ที่เพิ่งออก YES / NO โดยไม่มีใบรับรองชัดเจน ตัวอย่างเช่นพิจารณาปัญหา -path:k
( ปัญหา -path)kจากกราฟและเลขจำนวนเต็มมีเส้นทางแบบง่าย ๆ ในบนจุดยอดหรือไม่?GkGk
ปัญหาดังกล่าวสามารถมองเห็นได้อย่างง่ายดายว่าเป็นปัญหาสมบูรณ์ อัลกอริทึมสำหรับปัญหาจะได้รับใน [1] อัลกอริธึมเองนั้นให้คำตอบว่าใช่ / ไม่ใช่สำหรับปัญหาเท่านั้น แต่เราสามารถใช้ลูกเล่นเพิ่มเติมเพื่อสร้าง -path จริง โดยทั่วไปเมื่อได้รับ "oracle algorithm" เราสามารถใช้เครื่องมือจากการทดสอบกลุ่ม combinatorial เพื่อแยกพยานออกมาO* * * *( 2)k)k
[1] วิลเลียมส์ไรอัน "การค้นหาเส้นทางที่มีความยาวในเวลา " ตัวประมวลผลข้อมูล 109.6 (2009): 315-318 ลิงค์สำนักพิมพ์ , PDFkO* * * *( 2)k)