Bisakah top-solver faktor SAT angka mudah?

11

Pemecah SAT modern sangat baik dalam memecahkan banyak contoh dunia nyata dari contoh SAT. Namun, kami tahu cara menghasilkan yang sulit: misalnya menggunakan pengurangan dari anjak menjadi SAT dan memberikan nomor RSA sebagai input.

Ini menimbulkan pertanyaan: bagaimana jika saya mengambil contoh mudah dari anjak piutang. Alih-alih mengambil dua bilangan prima besar di bit, bagaimana jika saya mengambil prima p di log n bit dan q utama di n / log n bit, biarkan N = p q dan encode F A C T O R ( N ) sebagai instance SAT. Nn/2plognn/lognN=pqFACTOR(N)Nakan menjadi angka mudah untuk faktor dengan metode pencarian kasar atau saringan karena salah satu faktor dalam sangat kecil; apakah pemecah SAT modern dengan pengurangan standar dari anjak ke SAT juga ikut serta dalam struktur ini?

Dapat menempatkan faktor SAT-solver mana | p | = log n dengan cepat?N=pq|p|=logn

Artem Kaznatcheev
sumber

Jawaban:

10

Ada contoh lain yang jauh lebih sederhana yang kita ketahui bahwa algoritma saat ini tidak dapat menyelesaikan dalam waktu sub-eksponensial. Algoritma ini tidak mampu menghitung (hampir semuanya adalah peningkatan DPLL yang sesuai dengan sistem bukti proposisional Resolusi).

Sayangnya contoh seperti itu adalah contoh yang tidak memuaskan. Pertanyaan tentang menemukan contoh keras alami yang memuaskan untuk algoritma ini adalah masalah penelitian yang menarik (Russeell Impagliazzo menyebutkan ini selama lokakarya kompleksitas bukti tahun lalu di Banff). Ada beberapa contoh yang memuaskan yang dapat kita ketahui bahwa algoritme gagal secara buruk jika ada contoh seperti itu, tetapi mereka tidak terlalu alami (didasarkan pada formula yang mengekspresikan kelancaran algoritma).

Mengenai anjak piutang, jika ukuran angka kecil (misalnya logaritmik seperti dalam kasus Anda, yaitu angka diberikan secara unary), maka secara teoritis tidak ada hasil yang mengatakan tidak ada yang bisa diselesaikan dengan algoritma saat ini, dan sebenarnya kita dapat menulis sederhana algoritma waktu polinomial yang memperhitungkan angka-angka ini. Jadi apakah program pemecah SAT tertentu dapat menyelesaikannya mungkin tergantung pada algoritma tertentu.

Kaveh
sumber
logNN/logN
@ Artem, kompleksitas bukti rendah apa pun untuk Resolusi akan memberikan contoh, ambil contoh prinsip lubang merpati. Seseorang dapat dengan mudah mengekstraksi bukti Resolusi (penolakan) untuk instance yang tidak memuaskan dari perhitungan algoritma ini pada instance tersebut. Ada survei yang bagus dari Nathan Segerlind dari 2007 bahwa IIRC membahas hal ini. Beritahu saya jika tidak ada di sana dan saya akan menemukan referensi lain untuk Anda.
Kaveh
@ Artem, saya pikir argumen ini juga berfungsi dalam kasus bahwa hanya satu dari angka-angka tersebut adalah logaritmik, yaitu kita dapat menyelesaikannya dalam waktu polinomial dengan memeriksa semua angka kecil untuk melihat apakah salah satunya adalah faktor dari produk.
Kaveh
@Aven ya, itu sebabnya saya membuat salah satu dari nomor logaritmik dalam ukuran. Saya jelaskan dalam pertanyaan. Saya hanya tidak ingin jawaban yang mengasumsikan representasi unary seperti yang disarankan paragraf 3 Anda. Saya akan melihat Segerlind nanti. Sekali lagi, terima kasih atas komentarnya: D.
Artem Kaznatcheev
@ Artem, sama-sama. :) (Saya menggunakan unary karena saya berasumsi bahwa kedua angka itu kecil dan digunakan unary untuk berurusan dengan fakta bahwa ukurannya harus eksponensial di dalamnya, atau orang hanya dapat membuat menjadi besar.)
Kaveh