Membuktikan DOUBLE-SAT adalah NP-complete

13

Masalah SAT yang terkenal didefinisikan di sini untuk referensi.

Masalah DOUBLE-SAT didefinisikan sebagai

DOUBLE-SAT={ϕϕ has at least two satisfying assignments}

Bagaimana kita membuktikannya sebagai NP-complete?

Lebih dari satu cara untuk membuktikan akan dihargai.

pnp
sumber

Jawaban:

26

Berikut ini satu solusinya:

Double-SAT jelas milik , karena NTM dapat memutuskan Double-SAT sebagai berikut: Pada formula input Boolean , secara nondeterministis menebak 2 penugasan dan memverifikasi apakah keduanya memenuhi .NPϕ(x1,,xn)ϕ

Untuk menunjukkan bahwa Double-SAT adalah -Complete, kami memberikan pengurangan dari SAT ke Double-SAT, sebagai berikut:NP

Saat menginput :ϕ(x1,,xn)

  1. Memperkenalkan variabel baru .y
  2. Rumus output .ϕ(x1,,xn,y)=ϕ(x1,,xn)(yy¯)

Jika milik SAT, maka memiliki setidaknya 1 penugasan yang memuaskan, dan oleh karena itu memiliki setidaknya 2 penugasan yang memuaskan yang dapat kami penuhi klausa baru ( ) dengan menetapkan baik atau ke variabel baru , jadi ( , ..., , ) Double-SAT.ϕ(x1,,xn)ϕϕ(x1,,xn,y)yy¯y=1y=0yϕx1xny

Di sisi lain, jika , maka jelas juga tidak memiliki tugas yang memuaskan, jadi .ϕ(x1,,xn)SATϕ(x1,,xn,y)=ϕ(x1,,xn)(yy¯)ϕ(x1,,xn,y)Double-SAT

Oleh karena itu, , dan karenanya Double-SAT adalah -Lengkap.SATpDouble-SATNP

pnp
sumber
Itu lebih bagus daripada proposal saya.
Raphael
10

Anda tahu bahwa adalah NP-complete. Dapatkah Anda menemukan pengurangan dari ke ? Yaitu, dapatkah Anda memanipulasi formula yang memuaskan sehingga hasilnya memiliki setidaknya dua tugas yang memuaskan? Perhatikan bahwa manipulasi yang sama tidak dapat membuat formula yang tidak memuaskan memuaskan.SATSATDOUBLE-SAT

Untuk rumus apa pun , rumus memiliki setidaknya dua kali jumlah penjaminan memuaskan sebagai , dengan homomorfisme yang mengubah nama semua variabel menjadi nama baru.φφf(φ)φf

Raphael
sumber