Sehubungan dengan utas Membuktikan bahwa konversi dari CNF ke DNF adalah NP-Hard (dan utas Matematika terkait ):
Bagaimana dengan arah lain, dari DNF ke CNF? Apakah itu mudah atau sulit?
Pada halaman 2 makalah ini , mereka tampaknya mengisyaratkan bahwa kedua arah sama-sama sulit ketika mereka mengatakan " Kami tertarik pada ledakan maksimal ukuran ketika beralih dari representasi CNF ke representasi DNF (atau sebaliknya) ".
Tapi DNF-SAT dalam P dan CNF-SAT adalah NP -complete. Jadi dengan memberikan ekspresi DNF , harus ada ekspresi CNF yang setara yang memuaskan ϕ 2 yang panjangnya polinomial dengan panjang ϕ 1 . Dan konversi ϕ 1 → ϕ 2 dapat dilakukan dalam waktu poli. Apakah ini benar?
Sunting: Diubah setara dengan equisatisfiable (yaitu, variabel tambahan diizinkan di ).
sumber
Jawaban:
Jika Anda ingin memperkenalkan variabel tambahan, Anda bisa mengonversi dari bentuk DNF ke CNF dalam waktu polinomial menggunakan transformasi Tseitin . Rumus CNF yang dihasilkan akan sesuai dengan rumus DNF asli: rumus CNF akan memuaskan jika dan hanya jika rumus DNF asli memuaskan. Lihat juga https://en.wikipedia.org/wiki/Conjunctive_normal_form#Conversion_into_CNF .
Jika Anda tidak ingin mengizinkan pengenalan variabel tambahan, mengkonversi dari bentuk DNF ke CNF adalah co-NP-hard. Khususnya, menguji apakah formula DNF adalah tautologi adalah co-NP-hard. Namun, menguji apakah rumus CNF adalah tautologi dapat dilakukan dalam waktu polinomial (Anda hanya memeriksa secara terpisah apakah setiap klausa adalah tautologi, yang mudah karena setiap klausa merupakan disjungsi dari literal). Oleh karena itu, jika Anda dapat mengonversi dari formulir DNF ke formulir CNF dalam waktu polinomial, tanpa memperkenalkan variabel baru, maka Anda akan mendapatkan algoritme waktu polinomial untuk menguji apakah rumus DNF adalah tautologi - sesuatu yang tampaknya tidak mungkin, mengingat kami berharap P tidak sama dengan co-NP. Atau, dengan kata lain, mengubah dari bentuk DNF ke CNF tanpa memperkenalkan variabel tambahan adalah co-NP-hard.
Ini adalah perbedaan antara ekuivalensi vs kepuasan . Kesetaraan membutuhkan dua formula untuk memiliki rangkaian solusi yang sama (dan dengan demikian tidak memungkinkan memperkenalkan variabel tambahan). Kesamaan kepuasan hanya mensyaratkan bahwa kedua formula itu memuaskan atau keduanya tidak memuaskan (dan dengan demikian memungkinkan memperkenalkan variabel tambahan).
sumber