Kita tahu bahwa pemecah SAT berbasis DPLL gagal menjawab dengan benar pada contoh tidak memuaskan (prinsip hole pigeon), misalnya pada "ada pemetaan injeksi dari n + 1 ke n ":
Saya mencari hasil tentang bagaimana kinerjanya pada contoh memuaskan , misalnya pada "ada pemetaan injeksi dari n ke n ".
Apakah mereka menemukan tugas yang memuaskan dengan cepat pada contoh seperti itu?
Jawaban:
Pada contoh memuaskan , pemecah SAT berbasis DPLL akan memberikan tugas yang memuaskan dalam waktu linier.PHP
Untuk melihat alasannya, amati bagaimana pengkodean CNF dari instance tidak memuaskan dengan n hole dan n + 1 merpati identik secara sintaksis dengan instance k = n Pewarnaan Grafik, di mana grafik input adalah kumpulan n + 1 simpul .PHP n n+1 k=n n+1
Demikian pula, pengkodean CNF dari instance memuaskan dengan n hole dan n pigeon identik secara sintaksis dengan instance k = n Graph Coloring, di mana grafik input adalah kumpulan dari n simpul.PHP n n k=n n
Sekarang, mewarnai klik simpul dengan n warna mudah: pindai simpul, dan tetapkan masing-masing dari mereka salah satu warna yang tersisa (warna yang sudah ditetapkan secara otomatis dikesampingkan oleh klik grafik, menggunakan unit propagation) . Apa pun dari warna yang Anda pilih, itu akan bagus dan akan membawa Anda ke tugas yang memuaskan.n n
Dari sudut pandang pemecah DPLL: setiap kali akan mencoba menebak nilai boolean dari variabel , nilai tersebut akan benar (apa pun itu), karena pasti akan ada tugas yang memuaskan di mana variabel v i memiliki nilai dugaan. Unit propagasi akan melakukan sisa pekerjaan, dengan memandu pemecah sepanjang jalur yang memuaskan (dengan kata lain: dengan mencegahnya menebak nilai yang salah).vi vi
Pencarian kemudian menghasilkan satu variabel setelah yang lain, secara linear, setiap kali membuat tebakan yang benar.
sumber