ฉันไม่เข้าใจว่าทำไมนักแก้ปัญหา SAT เกือบทั้งหมดจึงใช้ CNF แทน DNF สำหรับฉันแล้วการแก้ SAT นั้นง่ายกว่าการใช้ DNF ท้ายที่สุดคุณเพียงแค่สแกนผ่านชุดของ implicants และตรวจสอบว่าหนึ่งในนั้นมีทั้งตัวแปรและการปฏิเสธ สำหรับ CNF ไม่มีขั้นตอนง่าย ๆ เช่นนี้
ฉันไม่เข้าใจว่าทำไมนักแก้ปัญหา SAT เกือบทั้งหมดจึงใช้ CNF แทน DNF สำหรับฉันแล้วการแก้ SAT นั้นง่ายกว่าการใช้ DNF ท้ายที่สุดคุณเพียงแค่สแกนผ่านชุดของ implicants และตรวจสอบว่าหนึ่งในนั้นมีทั้งตัวแปรและการปฏิเสธ สำหรับ CNF ไม่มีขั้นตอนง่าย ๆ เช่นนี้
คำตอบ:
การลดตำราจาก SAT เป็น 3SAT เนื่องจาก Karp จะแปลงสูตรบูลีนตามอำเภอใจให้เป็นสูตรบูลีน CNF ที่เทียบเท่ากับΦ ′ของขนาดพหุนามเช่นΦเป็นที่น่าพอใจหากΦ ′เป็นที่น่าพอใจ (พูดอย่างเคร่งครัดสูตรสองสูตรนี้ไม่เท่ากันเพราะΦ ′มีตัวแปรเพิ่มเติม แต่ค่าของΦ ′ไม่ได้ขึ้นอยู่กับตัวแปรใหม่เหล่านั้น)
ไม่รู้จักการลดลงที่คล้ายกันจากสูตรบูลีนโดยพลการลงในสูตร DNF; การแปลงที่รู้จักทั้งหมดจะเพิ่มขนาดของสูตรชี้แจง ยิ่งกว่านั้นถ้า P = NP ไม่สามารถลดได้!
สิ่งสำคัญส่วนใหญ่ได้รับการกล่าวถึง แต่ฉันต้องการเน้นบางประเด็น
ดังนั้นนักแก้ปัญหา SAT ใช้ CNF เพราะพวกเขากำหนดเป้าหมายความพึงพอใจและสูตรใด ๆ สามารถแปลเป็น CNF ในขณะที่รักษาความพึงพอใจในเวลาเชิงเส้น
นักแก้ปัญหา SAT ไม่ "ใช้" CNF - พวกเขา (มัก) ให้ CNF เป็นอินพุตและพยายามอย่างเต็มที่ที่จะแก้ปัญหา CNF ที่พวกเขาได้รับ ดังที่คำถามของคุณระบุไว้การเป็นตัวแทนคือทุกสิ่ง - ง่ายกว่ามากในการบอกว่า DNF นั้นน่าพอใจกว่า CNF ที่มีขนาดเท่ากันหรือไม่
สิ่งนี้นำไปสู่คำถามที่ว่าทำไมนักแก้ปัญหา SAT ไม่สามารถเปลี่ยน CNF ที่ได้รับของพวกเขาให้เป็น DNF และแก้ปัญหา DNF ที่เกิดขึ้นได้และการลองทำเช่นนี้เป็นการออกกำลังกายที่ดี
7 THกันยายน 2013: คำตอบต่อไปเพิ่มการตรวจสอบด้านล่างของหน้า
โดยทั่วไปสูตร DNF เป็นความร้าวฉานของข้อที่ประโยคแต่ละคฉัน = L ฉัน, 1 ∧ . . ∧ l i , kเป็นการรวมกันของตัวอักษร ขอเรียกประโยคคผมที่ขัดแย้งกันและถ้าหากมันมีทั้งตัวอักษรLและลบล้าง¬ลิตร มันง่ายที่จะเห็นว่าแต่ละประโยคที่ไม่ขัดแย้งกันเพียงแค่เข้ารหัส2 n - kโซลูชั่นของสูตร ดังนั้น DNF ทั้งหมดจึงเป็นเพียงการแจงนับโซลูชัน สูตรอาจมีวิธีแก้ปัญหามากมายแทนดังนั้นสูตร DNF ที่สอดคล้องกันอาจมีหลายส่วน ลองแปลงสูตร CNF นี้:
ในสูตร DNF ที่สอดคล้องกัน: คุณจะได้รับอนุประโยคมากเกินไป คำหนึ่งคำ: CNF กะทัดรัดในขณะที่ DNF ไม่ได้; CNF เป็นนัยในขณะที่ DNF ชัดเจน
ปัญหาต่อไปนี้คือ NP-complete: กำหนดอินสแตนซ์ DNF มีการกำหนดตัวแปรที่ปลอมแปลงคำสั่งทั้งหมดหรือไม่
ฉันเพิ่งรู้อีกสิ่งหนึ่งซึ่งหวังว่าจะได้รับคำตอบที่แยกต่างหาก ข้อสันนิษฐานของคำถามไม่เป็นความจริงทั้งหมด ไดอะแกรมการตัดสินใจแบบไบนารี (BDD) อาจถูกมองว่าเป็นตัวแทนขนาดกะทัดรัด / การกลั่นของ DNF มีผู้แก้ปัญหา SAT บางคนที่ใช้ BDD แต่ฉันเชื่อว่าพวกเขาจะไม่ปรากฏอีกต่อไป
มีบทความดีๆจากDarwiche และ Marquisศึกษาคุณสมบัติต่าง ๆ ของฟังก์ชันบูลีนหลายแบบ
คำตอบเพิ่มเติมนี้มีความหมายเป็นข้อเสนอแนะเพื่อแสดงความคิดเห็น dividebyzero ของคำตอบก่อนหน้าของฉัน
ดังที่ dividebyzero กล่าวว่าเป็นความจริงอย่างแน่นอนที่ CNF และ DNF เป็นสองด้านของเหรียญเดียวกัน
อย่างน้อยที่สุดเรามีข้อขัดแย้งนั่นคือสูตรที่ไม่น่าพอใจ ที่สุดขั้วตรงข้ามเรามี Tautologies คือสูตรที่ไม่สามารถคาดเดาได้ ตรงกลางเรามีสูตรที่น่าพอใจและเป็นเท็จ
ภายใต้ความสว่างนี้จะชัดเจนยิ่งขึ้นว่าทำไมความพึงพอใจของ CNF และความผิดพลาดของ DNF จึงเทียบเท่าได้ในแง่ของความแข็งในการคำนวณ เพราะจริงๆแล้วพวกเขาเป็นปัญหาเดียวกันมากเพราะงานที่อยู่ภายใต้เหมือนกัน: เพื่อบอกว่าการรวมกันของหลาย ๆ ชุดเท่ากับพื้นที่ของความเป็นไปได้ทั้งหมดหรือไม่ งานดังกล่าวนำเราไปสู่ขอบเขตการนับที่กว้างขึ้นซึ่งเป็นความคิดที่ถ่อมใจของฉันซึ่งเป็นหนึ่งในหนทางที่จะได้รับการสำรวจอย่างกระตือรือร้นเพื่อหวังว่าจะทำให้ความคืบหน้าของปัญหาเหล่านี้ไม่เกิดขึ้นจริง (ฉันสงสัยว่า ในที่สุดอาจนำมาซึ่งความก้าวหน้าทางทฤษฎีที่ก้าวล้ำในขณะที่มันยังคงนำความก้าวหน้าในทางปฏิบัติที่น่าแปลกใจ)
ความยากลำบากของงานดังกล่าวคือชุดที่ทับซ้อนกันอย่างดุเดือดในการรวม - ยกเว้นแฟชั่น
การปรากฏตัวของการทับซ้อนดังกล่าวนั้นแม่นยำที่ความแข็งของการนับอยู่ ยิ่งกว่านั้นความจริงที่ว่าเราปล่อยให้เซ็ตซ้อนทับกันนั้นเป็นเหตุผลที่ทำให้เรามีสูตรที่กะทัดรัดซึ่งพื้นที่ในการแก้ปัญหานั้นใหญ่มาก
ฉันตัดสินใจที่จะเปลี่ยนคำตอบทั้งหมดเหล่านี้ในหัวข้อนี้ (โดยเฉพาะคำตอบของ Giorgio Camerani) เป็นตารางที่ดีเพื่อให้มองเห็นคู่ได้อย่างรวดเร็ว:
คำตอบที่สั้นที่สุดสำหรับคำถาม: การแสดงความพึงพอใจ (การแก้ SAT) ผ่าน DNF สามารถทำได้ในเวลาเอ็กซ์โปเนนเชียลตามตารางด้านบนเท่านั้น