ยืนยันว่าการแปลงจาก CNF เป็น DNF คือ NP-Hard


20

ฉันจะพิสูจน์ได้อย่างไรว่าการแปลงจาก CNF เป็น DNF คือ NP-Hard

ฉันไม่ได้ขอคำตอบแค่คำแนะนำเกี่ยวกับวิธีการพิสูจน์


5
สำหรับการวิเคราะห์ในเชิงลึกลองดูที่บทความนี้"การแปลง CNF เป็น DNF"
Vor

@ A.Schulz: คำจำกัดความดั้งเดิมในกระดาษของ Steve Cook กำหนดโดยใช้การลด Cook ดูเหมือนว่าจะเป็นการลดการใช้เมื่อพูดคุยเรื่อง NP-hardness ทั่วไปen.wikipedia.org/wiki/NP-hard
Kaveh

การแปลง CNF <-> DNF ไม่ใช่การตัดสินใจขอให้เป็นภาษา มากขึ้นของฟังก์ชั่นด้วยการป้อนข้อมูลและการส่งออกและจะต้องมีการแปลงเป็นปัญหาการตัดสินใจที่จะถามว่าใน NP ฯลฯ คิดว่าปัญหาการตัดสินใจที่ไม่ได้รับการพิสูจน์เพื่อนำไปสู่การระเบิดชี้แจงในขนาด [เช่นใน Vors เตะ] ดังนั้นจึง ปัญหาการตัดสินใจรุ่นที่สมบูรณ์ของ NP [ถ้ามีอยู่จริง] อาจเป็นการทำให้เข้าใจได้ง่าย เช่นเดียวกับ Vors ref แสดงความซับซ้อนที่แท้จริงของการแปลง CNF <-> DNF เป็นปัญหาการวิจัยที่ใช้งานอยู่ ... โปรดทราบว่ามีความคล้ายคลึงกันบางอย่างกับประสิทธิภาพของอัลกอริทึมการบีบอัด ...
vzn

2
@ vzn คำถามถามว่ามันNP-แข็งไม่ใช่NP-สมบูรณ์ ซึ่งหมายความว่าไม่จำเป็นต้องเป็นสมาชิกของNPดังนั้นจึงไม่จำเป็นต้องมีปัญหาในการตัดสินใจ
David Richerby

คำตอบ:


18

อย่างไม่เป็นทางการ:

ใน DNF คุณสามารถเลือกส่วนคำสั่งใด ๆให้เป็นจริงเพื่อทำให้สูตรเป็นจริง ซึ่งหมายความว่า DNF ที่เทียบเท่ากับ CNF บางตัวนั้นเป็นการระบุวิธีแก้ปัญหาทั้งหมดที่บูลีนนั่งอยู่บน CNF หมายเหตุอาจมีวิธีแก้ปัญหาเป็นจำนวนมาก เนื่องจากการแก้บูลีน sat สำหรับ CNF สำหรับโซลูชันเดียวคือ NP-complete การแปลงเป็น DNF เป็นหลักหมายถึงการแก้สำหรับทุกโซลูชัน ดังนั้นอย่างน้อยก็ยากเท่ากับ Boolean SAT และเป็น NP-hard

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