Apakah menanamkan solusi layak untuk SAT?


10

Saya tertarik pada contoh individual "sulit" masalah NP-lengkap.

Ryan Williams membahas masalah SAT0 di blog Richard Lipton . SAT0 bertanya apakah instance SAT memiliki solusi spesifik yang terdiri dari semua 0. Ini membuat saya berpikir tentang membangun instance SAT yang cenderung "sulit".

Pertimbangkan instance SAT dengan klausa dan variabel , di manaϕmn "cukup besar", dalam arti bahwa ia jatuh ke wilayah di luar transisi fase, di mana hampir semua instance tidak memuaskan. Biarkan x menjadi penugasan acak ke nilai ϕ .α=m/nxϕ

Apakah mungkin untuk memodifikasi untuk mendapatkan contoh baru ϕ | x , jadi ϕ | x adalah "sangat mirip" dengan ϕ , tetapi agar x adalah tugas yang memuaskan untuk ϕ | x ?ϕϕ|xϕ|xϕxϕ|x

Misalnya, seseorang dapat mencoba menambahkan ke setiap klausa literal yang dipilih secara acak dari solusi, yang belum terjadi dalam klausa. Ini akan menjamin bahwa adalah solusi.x

Atau apakah ini sia-sia, yang mengarah ke algoritma cepat untuk menemukan solusi "tersembunyi", di sepanjang baris makalah baru-baru ini?

Saya mengetahui diskusi oleh Cook dan Mitchell dan pekerjaan yang mereka rujuk. Namun, saya tidak dapat menemukan apa pun tentang apa yang terjadi pada struktur formula ketika seseorang mencoba untuk secara eksplisit menanamkan tugas yang memuaskan ke dalamnya. Jika ini adalah cerita rakyat, petunjuk akan sangat disambut!

  • Stephen A. Cook dan David G. Mitchell, Menemukan Contoh Sulit dari Kepuasan Masalah: Sebuah Survei , Seri DIMACS dalam Matematika Diskrit dan Ilmu Komputer Teoretis 35 1–17, AMS, ISBN 0-8218-0479-0, 1997. ( PS )

Jawaban:


13

Anda dapat mengambil rumus apa saja dan mengubahnya ke rumus φ ψ x di mana ψ x adalah contoh SAT "keras" yang satu-satunya solusi adalah x . Salah satu cara untuk membangun formula seperti itu adalah menggunakan kriptografi: jika f : { 0 , 1 } n{ 0 , 1 } n adalah permutasi satu arah dan kami memilih x secara acak dan mengatur y = f ( x ) , maka satu dapat mengonversi y menjadi rumus SAT sehingga xφφψxψxxf:{0,1}n{0,1}nxy=f(x)yxadalah satu-satunya solusi dan dengan demikian menemukan sesuai dengan pembalikan f . (Kita perlu x ini untuk menjadi acak, tetapi ini sesuatu yang serupa tetap dianggap jika kita berpikir menemukan x harus sulit.)xfxx


Ah, memiliki ukuran polinomial ϕ dan ψ x . Terima kasih! ϕψxϕψx
András Salamon

6

Jika saya benar memahami inti dari pertanyaan Anda, Anda ingin mengambil contoh relatif mudah (karena Anda menempatkan diri di daerah di mana ), dan mengubahnya menjadi yang sulit dengan menanamkan solusi. Saya ragu ini akan berhasil.mn>4.3

Data eksperimental menunjukkan bahwa, ketika membangun instance acak "sekitar" solusi telah ditentukan , instance tersebut akan lebih mudah dari biasanya (dibandingkan dengan instance serupa yang memiliki n dan m yang sama ). Ini seperti jika solusi tersembunyi membantu pemecah SAT, memandu melalui ruang pencarian. Biasanya, untuk membangun contoh seperti itu, kami menghasilkan klausa acak seperti biasa (misalnya memilih k literal secara acak dan meniadakan masing-masing dengan probabilitas p = 1xnmk ) tetapi kami membuang klausa yang tidak puas dengan solusi tersembunyi kamix. Untuk apa yang menyangkut pendekatan Anda dalam membangunϕ| xdari dan contoh kerasϕ: Saya belum pernah mencobanya, tapi saya "merasa" ituϕ| xakan menjadi lebih mudah, jika tidak sepele. Saya percaya bahwa melakukan itu akan menambah jumlah hit dariliteralx(jumlah hit dari literalladalah jumlah kemunculanldalam formula yang diberikan), dan bahwa ini akan mendorong pemecah SAT ke target. Mungkin ruang solusiϕdanϕ| xp=12xϕ|xϕϕ|xxllϕϕ|xakan serupa (jika tidak hampir identik), seperti yang terjadi dalam contoh Ryan Williams tentang SAT0 (ruang solusi yang hampir identik, tetapi kekerasan yang sama sekali berbeda). Apakah Anda mencoba pendekatan Anda dalam praktik? Akan menarik untuk melihat bagaimana solver SAT yang sama berperilaku pada dan pada ϕ | x .ϕϕ|x

EDIT 1 (23 September 2010): Setelah berpikir sedikit lagi, saya merasa itu benar-benar ruang solusi x akan sangat berbeda dari ϕ . Anda menambahkan literal ke setiap klausa, sehingga Anda memberikan lebih banyak kebebasan untuk klausa tersebut (yaitu setiap klausa memiliki lebih banyak kesempatan untuk dipenuhi): mungkin ruang solusi yang dihasilkan akan diubah secara besar-besaran.ϕ|xϕ

ϕx

  1. ϕxx

  2. mxmxxx

Saya tidak tahu apakah ini akan berhasil atau tidak. Saya belum mencobanya. Lebih tepatnya, saya tidak yakin apakah Langkah 1 selalu berhasil menanamkan di ruang solusi (mungkin x dikesampingkan oleh beberapa kombinasi klausa, bahkan jika masing-masing tidak puas dengan x ?).xxx


Terima kasih atas komentarnya, saya setuju bahwa ruang solusi akan diubah. Seperti yang ditunjukkan dalam pertanyaan, saya ingin tahu apakah ada suatu cara untuk memodifikasi rumus untuk menyembunyikan solusi. Menambahkan literal ke setiap klausa dimaksudkan sebagai bukti keberadaan bahwa seseorang dapat menambahkan solusi ke formula. Saya tidak bermaksud menyarankan bahwa ini adalah satu-satunya, terbaik, atau bahkan metode yang baik.
András Salamon

xϕ|xϕx

Idealnya orang menginginkan metode polytime-computable yang tidak mengubah ruang solusi "terlalu banyak" ...
András Salamon

n3log n

3lognn2nn3logn

4

Cara terbaik untuk menghasilkan instance keras dari masalah NP-lengkap yang saya ketahui adalah menggunakan pemetaan Cook untuk mengurangi contoh yang dipilih dengan cermat dari masalah NP keras tertentu lainnya (seperti masalah logaritma diskrit atau faktorisasi bilangan bulat) ke SAT. Ini adalah "masalah sulit" yang sama yang digunakan oleh ahli matematika untuk memastikan keamanan kriptografi dalam protokol seperti RSA dan Diffie-Hellman.


Referensi, tolong?
gphilip

tidak yakin mengapa downvote untuk jawaban ini. siapa pun yang melakukannya harus menjelaskan.
Suresh Venkat
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.