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 .
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) f1 f2
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.M O φi φ
Hal ini menunjukkan bahwa memiliki kompleksitas #P.MO
sumber
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.
sumber