เหตุใด CNF จึงใช้สำหรับ SAT และไม่ใช่ DNF


22

ฉันไม่เข้าใจว่าทำไมนักแก้ปัญหา SAT เกือบทั้งหมดจึงใช้ CNF แทน DNF สำหรับฉันแล้วการแก้ SAT นั้นง่ายกว่าการใช้ DNF ท้ายที่สุดคุณเพียงแค่สแกนผ่านชุดของ implicants และตรวจสอบว่าหนึ่งในนั้นมีทั้งตัวแปรและการปฏิเสธ สำหรับ CNF ไม่มีขั้นตอนง่าย ๆ เช่นนี้


5
ตัวแก้ไขข้อ จำกัด บางตัวใช้ CNF เป็นอินพุต บางคนไม่ชอบเพราะโครงสร้างของชุดข้อ จำกัด เดิมจะถูกเก็บรักษาไว้
Dave Clarke

1
คำถามนี้มีหลักฐานที่เข้าใจผิด & ไม่คิดว่ามันสมควรได้รับคะแนนสูงเช่นนี้ในขณะนี้ SAT ถูกกำหนดให้เป็นโซลูชันของสูตร CNF มีปัญหาในการแก้ DNFs (คุณสามารถเรียกได้ว่าพบการมอบหมายที่น่าพอใจ ) แต่มันไม่ได้ถูกเรียก / ชื่อเล่น SAT ใน CS & ฉันควรย้ายไปที่ cs.se ... หมายเหตุอื่น - การแปลง CNF เป็น DNF และในทางกลับกันจริงๆแล้วคล้ายกันมากหรืออาจถูกมองว่าเป็นอัลกอริทึมการบีบอัดที่ล้มเหลวอย่างมากในบางกรณี (นำไปสู่การระเบิดแบบเลขชี้กำลัง ในขนาด)
vzn

10
@ vzn: จริง ๆ แล้ว "SAT" บางครั้งใช้เพื่ออ้างถึงปัญหาในการค้นหาการมอบหมายที่น่าพอใจสำหรับสูตรบูลีนใด ๆ CNF-SAT เป็นกรณีพิเศษที่น่าสนใจที่สุดดังนั้นเราจึงมักจะใช้ "SAT" เพื่ออ้างถึง CNF-SAT โดยเฉพาะอย่างยิ่งในรูปแบบของ synechdoche แน่นอนว่า DNF-SAT สามารถแก้ไขได้อย่างมีประสิทธิภาพในลักษณะเดียวกับที่ CNF-TAUTOLOGY สามารถแก้ไขได้อย่างมีประสิทธิภาพ ดูเหมือนว่าคำถามจะได้รับการตั้งสมมติฐานว่าไม่ทราบว่า
Niel de Beaudrap

คำตอบ:


56

การลดตำราจาก SAT เป็น 3SAT เนื่องจาก Karp จะแปลงสูตรบูลีนตามอำเภอใจให้เป็นสูตรบูลีน CNF ที่เทียบเท่ากับΦ ของขนาดพหุนามเช่นΦเป็นที่น่าพอใจหากΦ เป็นที่น่าพอใจ (พูดอย่างเคร่งครัดสูตรสองสูตรนี้ไม่เท่ากันเพราะΦ มีตัวแปรเพิ่มเติม แต่ค่าของΦ ไม่ได้ขึ้นอยู่กับตัวแปรใหม่เหล่านั้น)ΦΦ ΦΦΦΦ

ไม่รู้จักการลดลงที่คล้ายกันจากสูตรบูลีนโดยพลการลงในสูตร DNF; การแปลงที่รู้จักทั้งหมดจะเพิ่มขนาดของสูตรชี้แจง ยิ่งกว่านั้นถ้า P = NP ไม่สามารถลดได้!


afaik การแปลง DNF เป็น CNF และในทางกลับกันไม่เหมือนกับ P vs NP แม้ว่ามันอาจจะเกี่ยวข้องกับการแยกคลาสที่ซับซ้อนที่สำคัญ (เห็นได้ชัดว่าสำหรับคลาส "ใหญ่กว่า" NP) ... ปัญหาคือมันสามารถนำไปสู่ การระเบิดแบบเอ็กซ์โพเนนเชียลในขนาด ... และในทุกกรณีการแปลงระหว่าง CNF และ DNF ไม่ใช่ปัญหาการตัดสินใจ ... มีหลายวิธีในการเปลี่ยนเป็นปัญหาในการตัดสินใจ ...
vzn

10
ฉันคิดว่าประเด็นของ JeffE คือ DNF-SAT อยู่ใน P ดังนั้นจึงไม่สามารถเป็น NP-complete ยกเว้น P = NP
ลุคแมททีสัน

2
"การแปลงที่รู้จักทั้งหมด" ไม่ถูกต้องเนื่องจากความรู้ในปัจจุบัน afaik มีสูตร / การแปลง CNF ที่ต้องการการระเบิดพื้นที่แทนโดยไม่คำนึงถึงอัลกอริทึม ... เดาว่ามันดูเหมือนการสนทนาของ CNF <=> การแปลง DNF มีความเกี่ยวข้องสูง สำหรับคำถามนี้ & คำตอบนี้มีคำแนะนำว่า ... ตัวย่อ "DNF-SAT" ใช้ที่ใดก็ได้ในวรรณคดีหรือไม่ อย่าจำว่าได้เห็นมันด้วยตัวเอง ... มันทำให้ฉันสับสนโดยกำเนิด ... ปัญหาที่น่าพึงพอใจของ DNF คือปัญหาในการตัดสินใจ DNF <-> การแปลง CNF เป็นปัญหาฟังก์ชั่น & คำตอบไม่ได้ทำให้ความแตกต่างนั้นชัดเจนเกินไป คำตอบที่ดีจะ ...
vzn

@ Jɛ ff E: คุณคิดที่จะอธิบายสิ่งที่คุณหมายถึงโดย "สูตรบูลีนโดยพลการ" ที่นี่? เมื่อดูที่กระดาษของ Karp หน้า 92 ความหมายของ SATISFIABILITY ถูกกำหนดไว้ในสูตร CNF สิ่งนี้ไม่ส่งผลกระทบต่อคำตอบของคุณสำหรับคำถามของ OP แต่ฉันกำลังพยายามทำให้แน่ใจว่าไม่มีผลลัพธ์ทั่วไปสำหรับสูตรบูลีนที่ไม่มีกฎเกณฑ์ (เช่นสูตรที่ไม่จำเป็นต้องเป็น CNF) ขอบคุณ
Lyes

22

สิ่งสำคัญส่วนใหญ่ได้รับการกล่าวถึง แต่ฉันต้องการเน้นบางประเด็น

  1. ความพึงพอใจของสูตร DNF คือ P
  2. ความพึงพอใจของสูตร CNF คือ NP
  3. การทดสอบว่าสูตร CNF เป็นซ้ำซากคือ P
  4. การทดสอบว่าสูตร DNF เป็น tautology หรือไม่คือ coNP
  5. การปฏิเสธ DNF ให้ผลตอบแทน CNF และในทางกลับกัน

ดังนั้นนักแก้ปัญหา SAT ใช้ CNF เพราะพวกเขากำหนดเป้าหมายความพึงพอใจและสูตรใด ๆ สามารถแปลเป็น CNF ในขณะที่รักษาความพึงพอใจในเวลาเชิงเส้น


1
การอ้างอิงที่ดี: soe.ucsc.edu/classes/cmps132/Winter05/hw/hw8sols.pdf
MS Dousti

1
@ayfunPay พวกเขาทำ ยกตัวอย่างเช่น } หากคุณไม่อนุญาตให้มีคำสั่งที่มีตัวแปรเดียวกันสองครั้งแสดงว่ามีการใช้คำซ้ำซ้อนซึ่งเป็นชุดคำสั่งที่ว่างเปล่า {{¬xx}}
Mikolas

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

2
@ayfun 1) คุณช่วยชี้ให้ฉันดูสิ่งตีพิมพ์ที่บอกว่าไม่มีการพูดซ้ำซากใน CNF หรือว่าประโยคที่ว่างเปล่าไม่ใช่ CNF? 2) หากคุณไม่อนุญาตชุดคำสั่งที่ว่างคุณควรยกเลิกอนุประโยคที่ว่างเปล่าและคุณไม่สามารถแสดงข้อเท็จได้เช่นกัน 3) หากคุณไม่อนุญาตให้ใช้จริงและ / หรือเท็จใน CNF แสดงว่าคุณสูญเสียคุณสมบัติในการเป็นตัวแทน ฟังก์ชันบูลีนทั้งหมดทำไมคุณต้องการทำเช่นนั้น
Mikolas

1
"ไม่ควรมีการซ้ำซ้อนของตัวแปรหรือตัวอักษรในประโยคที่กำหนด" --- ที่ไม่อนุญาตให้ใช้สูตรหรือคำสั่งที่ว่างเปล่า BTW หากคุณไม่อนุญาติให้ว่างคุณจะไม่สามารถพิสูจน์การพิสูจน์ความละเอียดซึ่งเป็นส่วนสำคัญของการให้เหตุผลอัตโนมัติ
Mikolas

18

นักแก้ปัญหา SAT ไม่ "ใช้" CNF - พวกเขา (มัก) ให้ CNF เป็นอินพุตและพยายามอย่างเต็มที่ที่จะแก้ปัญหา CNF ที่พวกเขาได้รับ ดังที่คำถามของคุณระบุไว้การเป็นตัวแทนคือทุกสิ่ง - ง่ายกว่ามากในการบอกว่า DNF นั้นน่าพอใจกว่า CNF ที่มีขนาดเท่ากันหรือไม่

สิ่งนี้นำไปสู่คำถามที่ว่าทำไมนักแก้ปัญหา SAT ไม่สามารถเปลี่ยน CNF ที่ได้รับของพวกเขาให้เป็น DNF และแก้ปัญหา DNF ที่เกิดขึ้นได้และการลองทำเช่นนี้เป็นการออกกำลังกายที่ดี


11

7 THกันยายน 2013: คำตอบต่อไปเพิ่มการตรวจสอบด้านล่างของหน้า


โดยทั่วไปสูตร DNF เป็นความร้าวฉานของข้อที่ประโยคแต่ละฉัน = L ฉัน, 1 . . l i , kเป็นการรวมกันของตัวอักษร ขอเรียกประโยคผมที่ขัดแย้งกันและถ้าหากมันมีทั้งตัวอักษรLและลบล้าง¬ลิตร มันง่ายที่จะเห็นว่าแต่ละประโยคที่ไม่ขัดแย้งกันเพียงแค่เข้ารหัส2 n - kc1...cmci=li,1...li,kcil¬l2nkโซลูชั่นของสูตร ดังนั้น DNF ทั้งหมดจึงเป็นเพียงการแจงนับโซลูชัน สูตรอาจมีวิธีแก้ปัญหามากมายแทนดังนั้นสูตร DNF ที่สอดคล้องกันอาจมีหลายส่วน ลองแปลงสูตร CNF นี้:

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

ในสูตร DNF ที่สอดคล้องกัน: คุณจะได้รับอนุประโยคมากเกินไป คำหนึ่งคำ: CNF กะทัดรัดในขณะที่ DNF ไม่ได้; CNF เป็นนัยในขณะที่ DNF ชัดเจน

ปัญหาต่อไปนี้คือ NP-complete: กำหนดอินสแตนซ์ DNF มีการกำหนดตัวแปรที่ปลอมแปลงคำสั่งทั้งหมดหรือไม่


4
หากต้องการรับการจัดรูปแบบ LaTeX ที่ถูกต้องให้แทนที่ \ and and \ หรือด้วย \ land และ \ lor (หรือ \ wedge และ \ vee)
Jeffε

2
ไม่มีอะไรที่กระชับมากขึ้นเกี่ยวกับการแปลงเป็น CNF ปกติคีย์จริงของคำถาม OP คือความจริงที่ว่าคุณสามารถสร้างฟังก์ชั่น CNF "ที่น่าพอใจ" เหล่านั้นพร้อมกับตัวแปรเสริม อาจมีการประมาณที่คล้ายกันซึ่งคุณสามารถทำได้กับ DNF เพื่อแก้ปัญหาที่แตกต่างแทนที่จะทำการทดสอบเพื่อความพึงพอใจ (ฟังก์ชั่นที่ไม่น่าพอใจเท่ากัน? ... )
dividebyzero

1
ข้อมูลเชิงลึกโดย Giorgio Camerani นี้ไม่ดี การเพิ่มเลขชี้กำลังแบบเดียวกันนี้สามารถเกิดขึ้นได้หากคุณแปลงบางสิ่งเป็น CNF เลือกตัวอย่างเดียวกันนี้และแทนที่ "และ" s ด้วย "หรือ" s การแปลงจากนิพจน์ DNF ขนาดเล็กเป็น CNF นี้จะมีขนาดใหญ่มากเหมือนกัน พวกเขามีความสัมพันธ์แบบหยินและหยางกับพวกเขาเล็กน้อย
dividebyzero

@dividebyzero: ฉันได้รับคำตอบแยกต่างหากเพื่อตอบความคิดเห็นของคุณ
Giorgio Camerani

6

ฉันเพิ่งรู้อีกสิ่งหนึ่งซึ่งหวังว่าจะได้รับคำตอบที่แยกต่างหาก ข้อสันนิษฐานของคำถามไม่เป็นความจริงทั้งหมด ไดอะแกรมการตัดสินใจแบบไบนารี (BDD) อาจถูกมองว่าเป็นตัวแทนขนาดกะทัดรัด / การกลั่นของ DNF มีผู้แก้ปัญหา SAT บางคนที่ใช้ BDD แต่ฉันเชื่อว่าพวกเขาจะไม่ปรากฏอีกต่อไป

มีบทความดีๆจากDarwiche และ Marquisศึกษาคุณสมบัติต่าง ๆ ของฟังก์ชันบูลีนหลายแบบ


4

คำตอบเพิ่มเติมนี้มีความหมายเป็นข้อเสนอแนะเพื่อแสดงความคิดเห็น dividebyzero ของคำตอบก่อนหน้าของฉัน

ดังที่ dividebyzero กล่าวว่าเป็นความจริงอย่างแน่นอนที่ CNF และ DNF เป็นสองด้านของเหรียญเดียวกัน

PNPcomplete

PNPcomplete

อย่างน้อยที่สุดเรามีข้อขัดแย้งนั่นคือสูตรที่ไม่น่าพอใจ ที่สุดขั้วตรงข้ามเรามี Tautologies คือสูตรที่ไม่สามารถคาดเดาได้ ตรงกลางเรามีสูตรที่น่าพอใจและเป็นเท็จ

nk2nk

nk2nk

k=02nNPcomplete

k=02nNPcomplete

2n

2n

ภายใต้ความสว่างนี้จะชัดเจนยิ่งขึ้นว่าทำไมความพึงพอใจของ CNF และความผิดพลาดของ DNF จึงเทียบเท่าได้ในแง่ของความแข็งในการคำนวณ เพราะจริงๆแล้วพวกเขาเป็นปัญหาเดียวกันมากเพราะงานที่อยู่ภายใต้เหมือนกัน: เพื่อบอกว่าการรวมกันของหลาย ๆ ชุดเท่ากับพื้นที่ของความเป็นไปได้ทั้งหมดหรือไม่ งานดังกล่าวนำเราไปสู่ขอบเขตการนับที่กว้างขึ้นซึ่งเป็นความคิดที่ถ่อมใจของฉันซึ่งเป็นหนึ่งในหนทางที่จะได้รับการสำรวจอย่างกระตือรือร้นเพื่อหวังว่าจะทำให้ความคืบหน้าของปัญหาเหล่านี้ไม่เกิดขึ้นจริง (ฉันสงสัยว่า ในที่สุดอาจนำมาซึ่งความก้าวหน้าทางทฤษฎีที่ก้าวล้ำในขณะที่มันยังคงนำความก้าวหน้าในทางปฏิบัติที่น่าแปลกใจ)

ความยากลำบากของงานดังกล่าวคือชุดที่ทับซ้อนกันอย่างดุเดือดในการรวม - ยกเว้นแฟชั่น

การปรากฏตัวของการทับซ้อนดังกล่าวนั้นแม่นยำที่ความแข็งของการนับอยู่ ยิ่งกว่านั้นความจริงที่ว่าเราปล่อยให้เซ็ตซ้อนทับกันนั้นเป็นเหตุผลที่ทำให้เรามีสูตรที่กะทัดรัดซึ่งพื้นที่ในการแก้ปัญหานั้นใหญ่มาก


4

ฉันตัดสินใจที่จะเปลี่ยนคำตอบทั้งหมดเหล่านี้ในหัวข้อนี้ (โดยเฉพาะคำตอบของ Giorgio Camerani) เป็นตารางที่ดีเพื่อให้มองเห็นคู่ได้อย่างรวดเร็ว:

DNFCNFtautology/unfalsifiabilitycoNP-completeP(each clause has a pair of P and ¬P)satisfiabilityP(sat. assignments are explicit)NP-completefalsifiabilityNP-completeP(fals. assignments are explicit)unsatisfiabilityP(each clause has a pair of P and ¬P)coNP-completeconversion to normal form, retaining equivalence()()conversion to normal form, retaining satisfiability()FPconversion to normal form, retaining falsiabilityFP()

()

()()FPNP[1]

คำตอบที่สั้นที่สุดสำหรับคำถาม: การแสดงความพึงพอใจ (การแก้ SAT) ผ่าน DNF สามารถทำได้ในเวลาเอ็กซ์โปเนนเชียลตามตารางด้านบนเท่านั้น


1
"สูตร PL" คืออะไรและ "NF" หมายถึงอะไร
Joshua Grochow

4
มีปัญหาเล็กน้อยที่นี่ (1) ฉันคิดว่า "ไม่สามารถเข้าใจได้" คุณหมายถึง "ซ้ำซาก" (2) KNF ควรเป็น CNF
Huck Bennett

2
A(φ)φφA(φ)φA(φ)

1
(1) "ตรรกะภาคแสดง" ควรเป็น "ตรรกะเชิงประพจน์" (2) การแปลงเป็นรูปแบบปกติไม่ใช่ปัญหาการตัดสินใจ แต่ปัญหาการทำงาน (หรือค่อนข้างเป็นปัญหาการค้นหาเนื่องจาก "รูปแบบปกติ" ไม่ซ้ำกัน) ดังนั้นคลาสการตัดสินใจที่กำหนดในตารางจึงไม่เหมาะสม
Emil Jeřábekสนับสนุน Monica

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