Apakah masalah CNF SAT NP sulit ketika jumlah total (tetapi bukan lebar) dari klausa 3-atau-lebih istilah dibatasi di atas oleh konstanta? Bagaimana dengan spesifik ketika hanya ada satu klausa seperti itu?
Apakah masalah CNF SAT NP sulit ketika jumlah total (tetapi bukan lebar) dari klausa 3-atau-lebih istilah dibatasi di atas oleh konstanta? Bagaimana dengan spesifik ketika hanya ada satu klausa seperti itu?
Jawaban:
Perlu dicatat bahwa masalahnya menjadi NP-keras ketika pembatasan sedikit santai.
Dengan jumlah klausa tetap yang juga memiliki ukuran terikat, jumlah rata-rata literal dalam klausa mendekati 2 seperti yang diinginkan, dengan mempertimbangkan sebuah instance dengan variabel yang cukup. Seperti yang Anda tunjukkan, maka ada batas atas sederhana yang jumlahnya banyak jika ukuran klausa dibatasi.
Sebaliknya, jika jumlah rata-rata literal per klausa adalah paling sedikit untuk beberapa fix (tapi kecil sekali pun) , maka masalahnya adalah NP-hard.ϵ > 0
Ini dapat ditunjukkan dengan mengurangi 3SAT untuk masalah ini, dengan memperkenalkan klausa baru dengan 2 literal yang sepele memuaskan. Misalkan ada klausa dalam contoh 3SAT; untuk mengurangi ukuran klausa rata-rata menjadi , cukup menambahkan klausa baru dengan dua literal. Karena adalah tetap dan positif, turunan baru berukuran polinomial.( 2 + ϵ ) m ( 1 - ϵ ) / ϵ ϵ
Pengurangan ini juga menunjukkan bahwa bahkan versi di mana klausa "besar" dibatasi hingga 3 liter adalah NP-hard.
Kasus yang tersisa adalah ketika beberapa klausa besar tidak memiliki ukuran yang dibatasi; setiap klausa besar tampaknya membuat masalah semakin sulit. Lihat makalah SODA 2010 oleh Pǎtraşcu dan Williams untuk kasus dua klausa: mereka berpendapat bahwa jika ini dapat dilakukan dalam waktu sub-kuadrat maka kita akan memiliki algoritma yang lebih baik untuk SAT. Mungkin ada perluasan argumen mereka ke lebih banyak klausa, yang akan memberikan bukti bahwa batas atas Anda tidak dapat ditingkatkan (modulo beberapa bentuk hipotesis waktu eksponensial).
OK aku mengerti. Jawabannya adalah tidak. Ini dapat diselesaikan dalam waktu-poli. Untuk setiap klausa 3 atau lebih istilah, pilih satu literal dan setel menjadi true. Kemudian selesaikan masalah 2-sat yang tersisa. Jika ada yang memberikan solusi, maka itu adalah solusi untuk masalah keseluruhan. Karena jumlah klausa 3-atau-lebih-tetap adalah (katakanlah c), maka jika semua klausa tersebut memiliki ukuran <= m, maka ini berjalan dalam O (m ^ (c) * n). O (m ^ c) untuk melalui setiap pilihan yang mungkin, kali O (n) untuk menyelesaikan masalah 2-sat yang tersisa.