Saya pikir masalah ini NP-hard. Saya mencoba membuat sketsa pengurangan dari MinSAT. Dalam masalah MinSAT kami diberi CNF dan tujuan kami adalah untuk meminimalkan jumlah klausa yang puas. Masalah ini NP-hard, lihat misalnya, http://epubs.siam.org/doi/abs/10.1137/S0895480191220836?journalCode=sjdmec
Membagi simpul menjadi dua kelompok - beberapa akan mewakili literal, yang lain klausa, jadi mana v adalah jumlah variabel dari CNF (biasanya dilambangkan dengan n ) dan c adalah jumlah klausa. Arahkan sebuah tepi dari masing-masing literal-vertex ke simpul-klausa tempat itu terjadi. Tentukan S untuk literal-vertex yang mewakili x i sebagai(di manaadalah parameter arbitrer), sehinggadanataudan{ i , i + v + k } k f ( x i ) = i f ( ˉ x i ) = i + v + k f ( ˉ x i ) = i f ( x i ) = i + v + k S = { v +n=2v+cvncSxi{i,i+v+k}kf(xi)=if(x¯i)=i+v+kf(x¯i)=if(xi)=i+v+k. Untuk setiap klausa-simpul, misalkan , jadi dari klausa-simpul adalah `` kecil ''.S={v+1,…,v+k,2v+k+1,…,n}k
Sekarang CNF memiliki tugas di mana setidaknya klausa salah jika dan hanya jika masalah Anda dapat diselesaikan untuk contoh di atas. Masalah MinSAT adalah persis untuk menguji apakah rumus CNF memiliki tugas yang membuat setidaknya klausa salah, jadi ini menunjukkan bahwa masalah Anda NP-hard.kφk
Untuk membantu Anda memahami pengurangan ini, inilah intuisi: label kecil ( ) sesuai dengan nilai kebenaran False, dan label besar ( ) sesuai ke True. Batasan untuk simpul-literal memastikan bahwa setiap benar atau salah dan bahwa memiliki nilai kebenaran yang berlawanan. Tepi memastikan bahwa jika ada literal Benar, maka semua klausa-simpul yang mengandungnya juga ditetapkan Benar. (Sebaliknya, jika semua literal dalam klausa ditetapkan False, maka struktur grafik ini memungkinkan verteks klausa untuk ditetapkan False atau True.) Akhirnya, pilihan memastikan bahwa dari klausa-simpul ditetapkan False dan1,2,…,v+kv+k+1,…,2v+kxixi¯¯¯¯¯kkc−kdari mereka ditugaskan Benar. Jadi, jika ada semacam topologi yang valid dari grafik ini, maka ada tugas untuk variabel yang membuat setidaknya dari klausa dari false (semua klausa-simpul yang ditugaskan False, plus kemungkinan beberapa dari yang ditugaskan Benar). Sebaliknya, jika ada tugas untuk variabel yang membuat setidaknya dari klausa dari salah, maka ada semacam topologi yang valid dari grafik ini (kita mengisi label untuk simpul-literal dengan cara yang jelas; dan untuk setiap klausakφkφφitu benar, kami memberikan label klausa-vertex yang sesuai dengan True; simpul-klausa lainnya dapat menerima label yang sesuai dengan nilai kebenaran arbitrer).