(Saya memposting pertanyaan ini di CS sepuluh hari yang lalu, tanpa jawaban sejak saat itu - jadi saya posting di sini.)
Setiap rumus CNF dapat diubah dalam waktu polinomial menjadi rumus 3-CNF dengan menggunakan variabel baru. Tidak selalu mungkin jika variabel baru tidak diperbolehkan (misalnya, rumus satu klausa: ).
Mari tentukan masalah (SAT hingga 3-SAT): Diberi , rumus CNF. Apakah mungkin untuk mengubah menjadi setara 3-CNF yang didefinisikan pada variabel yang sama dengan ? - di mana "setara" berarti dengan set model yang sama.F
Apa kompleksitas masalah ini?
cc.complexity-theory
complexity-classes
sat
Xavier Labouze
sumber
sumber
Jawaban:
(Dari komentar di atas) Masalahnya tampaknya sulit-TNNP; reduksi sederhananya dari 3CNF-UNSAT (yang dilengkapi coNP): diberi rumus 3CNF , perluas penambahan klausa baru dengan 4 variabel baru:φ=C1∧...∧Cm
φφ′ memiliki rumus 3CNF setara yang didefinisikan pada variabel yang sama jika dan hanya jika rumus asli tidak memuaskan.φ
( ) rumus 3CNF setara dengan( y 1 ∨ y 2 ∨ y 3 ) ∧ ( y 1 ∨ y 2 ∨ y 4 ) ∧ C 1 ∧ . . . ∧ C m φ ′⇐ (y1∨y2∨y3)∧(y1∨y2∨y4)∧C1∧...∧Cm φ′
( ) misalkan memiliki rumus 3CNF yang setara dan memuaskan. Pilih tugas yang memuaskan dari , dan sederhanakan dan mengganti variabel dengan kebenaran yang sesuai nilai . Kita mendapatkan yang memuaskan jika dan hanya jika memuaskan (keduanya hanya berisi variabel ). Jelas⇒ φ′ φ X = ⟨ ˙ x 1 , . . . , ˙ x n ⟩ φ φ ' φ " x i ˙ x i φ ' X φ " X y i φ ' X = ( y 1 ∨ y 2 ∨ y 3 ∨ y 4 ) φ " X ( yφ′′ φ X=⟨x˙1,...,x˙n⟩ φ φ′ φ′′ xi x˙i φ′X φ′′X yi φ′X=(y1∨y2∨y3∨y4) . Setiap klausa dari berisi paling banyak tiga variabel, jadi kita dapat memilih salah satunya, misalnya , dan menggunakannya untuk membangun tugas yang memuaskan untuk :
yang bukan tugas yang memuaskan untuk , yang mengarah ke kontradiksi.φ′′X φ ' ⟨ y 1 = f a l s e , y 2 = t r u e , y 3 = f a l s e , y 4 = t r u e , ˙ x 1 , . . . , ˙ x n ⟩ φ "(y1∨¬y2∨y3) φ′ ⟨y1=false,y2=true,y3=false,y4=true,x˙1,...,x˙n⟩ φ′′
sumber