Kompleksitas memeriksa apakah dua CNF memiliki jumlah solusi yang sama

14

Diberi dua CNF, jika mereka memiliki jumlah tugas yang sama untuk menjadikannya benar, jawab "Ya", jika tidak jawab "Tidak".

Sangat mudah untuk melihatnya di , karena jika kita tahu jumlah pasti dari solusi untuk dua CNF ini, kita hanya campare mereka dan menjawab "Ya" atau "Tidak".P#P

Apa kompleksitas masalah ini?

Mike Chen
sumber

Jawaban:

14

Masalahnya adalah coNP -hard ; Anda dapat dengan mudah mengurangi masalah UNSAT untuk masalah ini.

Karakterisasi yang lebih tepat adalah bahwa masalahnya adalah C = P -complete. Bahkan, satu definisi dari kelas C = P adalah bahwa itu adalah kelas masalah yang banyak kali polinomial direduksi menjadi masalah ini (biasanya definisi ini dinyatakan dalam fungsi GapP ). Tetapi karena ini tidak banyak memberi tahu, izinkan saya mendefinisikan kelas ini dengan cara lain.

Biarkan C = P menjadi kelas masalah yang polinomial-waktu banyak-satu direduksi menjadi masalah berikut: diberikan sirkuit boolean φ dan integer K (dalam biner), memutuskan apakah jumlah memuaskan tugas dari φ adalah sama dengan K . Dengan reduksi standar yang menunjukkan kelengkapan # P dari # 3SAT, kita dapat membatasi φ menjadi rumus 3CNF tanpa memengaruhi kelas. Kelas C = P berisi kelas yang disebut US , yang berisi UP dan coNP.

Dengan definisi ini, masalah Anda adalah C = P-complete. Sebenarnya, kekerasan C = P mudah dilihat dari definisi kelas C = P (yang menggunakan rumus 3CNF).

Untuk membuktikan keanggotaan dalam C = P, anggaplah kita harus memutuskan apakah dua formula CNF φ 1 dan φ 2 yang diberikan memiliki jumlah penugasan yang sama atau tidak. Tanpa kehilangan sifat umum kita dapat mengasumsikan bahwa dua formula memiliki jumlah variabel yang sama, katakanlah n . Bangun sirkuit boolean φ yang mengambil n +1 bit sebagai input sehingga jumlah penugasan yang memuaskan φ sama dengan c 1 + (2 n - c 2 ), di mana c 1 dan c 2menjadi jumlah penugasan yang memuaskan masing-masing φ 1 dan φ 2 . Maka jumlah penugasan yang memuaskan φ sama dengan 2 n jika dan hanya jika c 1 = c 2 .

Tsuyoshi Ito
sumber
@Kaveh: Bisakah Anda menguraikan?
Tsuyoshi Ito
1
@ Kaveh: Tidak, bukan itu yang kita inginkan. Kami ingin memutuskan apakah φ_1 dan φ_2 memiliki jumlah penugasan yang memuaskan yang sama , belum tentu sama dengan penugasan yang memuaskan.
Tsuyoshi Ito
1
@ Tsuyoshi: Berdasarkan definisi Anda tentang , apakah GI dalam C = P ? Saya pikir setidaknya GI F P C = P . C=PC=PFPC=P
Mike Chen
1
@ Mike: Terima kasih atas komentarnya yang menarik. Apakah Anda berbicara tentang hasil yang Graph Isomorphism ∈ SPP (Arvind dan Kurur 2006 dx.doi.org/10.1016/j.ic.2006.02.002 )? Jika demikian, Anda benar; SPP yang terkandung dalam , sehingga Grafik isomorfisma ∈ C = P . C=PC=P
Tsuyoshi Ito
1
@ Mike: Saya mengetahui bahwa sebelum hasil GraphIso∈SPP, diketahui bahwa GraphIso ∈ LWPP : Köbler, Schöning dan Torán 1992 . Sejak LWPP ⊆ WPP , kita tidak perlu hasil lebih kuat oleh Arvind dan Kurur mengatakan bahwa GraphIso∈ C = P . C=PC=P
Tsuyoshi Ito
6

Berikut ini sedikit variasi pada pertanyaan awal. Biarkan menjadi oracle yang, pada input ( f 1 , f 2 ) menghasilkan 1 jika CNF f 1 memiliki lebih banyak solusi daripada CNF f 2 .O(f1,f2)f1f2

Mengingat oracle ini, kami membangun mesin poly-time yang dapat memecahkan masalah # P-complete menghitung jumlah solusi untuk CNF yang diberikan φ . Perhatikan bahwa φ dapat memiliki sejumlah solusi eksponensial.Mφφ

bekerja sebagai berikut: Ini menghasilkan formula dengan jumlah yang diketahui dari solusi, dan menggunakan pencarian biner dan dengan meminta di sebagian besar permintaan polinomial untuk O , ia menemukan formula φ i yang memilikiyang samajumlah solusi sebagai φ . Akhirnya keluaran jumlah solusi yang baru saja ditemukan.MOφiφ

Hal ini menunjukkan bahwa memiliki kompleksitas #P.MO

MS Dousti
sumber
Maafkan ketidaktahuan saya, tetapi bagaimana Anda menghasilkan formula dengan jumlah solusi yang ditentukan sebelumnya?
Giorgio Camerani
3
Mari M menjadi (k + 1) jumlah -bit , dan biarkan S menjadi indeks i di mana m i = 1 . Buat rumus dengan variabel x 0 , ... , x k dan y 0 , ... , y k . Untuk setiap i S , misalkan F i menjadi subformula berikut: "Semua { x 0 , ,M=i=0kmi2iSimi=1x0,,xky0,,ykiSFi benar dan di antara { y 0 , ... , y k } hanya y aku benar. " F i memiliki 2 i memenuhi tugas (variabel { x k - i + 1 , ... , x k } bebas ), dan untuk i j , penugasan yang memuaskan dari F i dan F j terpisah karena y{x0,,xki}{y0,,yk}yiFi2i{xki+1,,xk}ijFiFjyvariabel. Rumus memiliki M tugas yang memuaskan. iSFiM
mikero
Perhatikan bahwa PP-selesai untuk memutuskan apakah, mengingat dua rumus CNF f_1 dan f_2, f_1 memiliki tugas yang lebih memuaskan daripada f_2 atau tidak.
Tsuyoshi Ito
@mikero: Ah, tolol aku! Aku seharusnya membayangkan itu. Terima kasih atas penjelasan menerangi Anda.
Giorgio Camerani
5

Sepertinya ini adalah NP-hard minimal karena seseorang dapat dengan mudah membangun formula SAT hanya dengan satu solusi. Kemudian oleh teorema Valiant-Vazirani, ada pengurangan probabilistik dari setiap rumus SAT ke set masalah Unique-SAT (menentukan apakah rumus memiliki solusi unik) dan membandingkan masalah unik-SAT dengan rumus SAT yang dibangun hanya dengan satu solusi. memungkinkan Anda untuk menentukan kepuasan formula SAT yang dipertimbangkan.

Memilih
sumber
Tepatnya, kalimat pertama harus menyebutkan "di bawah reducibilitas acak" (meskipun Anda menyebutkannya dalam kalimat kedua).
Tsuyoshi Ito