Apakah sirkuit berukuran kuasi polinomial untuk 3-SAT sepele?

10

Misalkan kita mempertimbangkan 3-SAT dengan variabel dan klausa . Saya sedang meneliti metode yang tampaknya mengambil waktu / ruang untuk memecahkan masalah SAT yang sesuai dengan deskripsi ini, untuk dalam kesalahan yang dapat disesuaikan dengan jumlah sewenang-wenang. Namun, ada yang menangkap.vcO(v2+logc)

Metode ini membutuhkan seperangkat nilai yang dikomputasi, setelah itu dapat memecahkan masalah 3-SAT sewenang-wenang sesuai dengan deskripsi di atas. Nilai yang dikomputasi adalah seperangkat ukuran dengan masing-masing nilai mengambil O ( 1 ) ruang. Masalah sebenarnya adalah bahwa masing-masing nilai ini dapat mengambil O ( 2 v ) waktu untuk menghitung. Ada kemungkinan saya dapat menemukan cara untuk mempercepat perhitungan ini.O(v2+logc)O(1)O(2v)

Saya berpikir bahwa batas itu sendiri mengalahkan batas atas yang disajikan dalam pertanyaan ini (untuk kecil ). Jadi saya bertanya-tanya, apakah ada cara sepele untuk mencapai batas atas yang saya jelaskan jika kita mengizinkan O ( v 2 + log c ) precomputasi?cO(v2+logc)

Saya ingin melanjutkan penelitian ini dan mudah-mudahan menerbitkan hasil saya jika semuanya berhasil, tetapi pertama-tama saya ingin tahu apakah ada cara sepele untuk melakukannya juga atau lebih baik.


MEMPERBARUI

Saya telah mempelajari masalah terkait selain meneliti algoritma ini. Saya mengajukan pertanyaan ini di situs IT Security StackExchange yang berkaitan dengan peretas kata sandi dan SAT, jika Anda tertarik. Setidaknya salah satu jawaban mencerminkan hal ini.

Matt Groff
sumber
Anda bilang butuh O (N ^ 2 + logc) waktu / ruang ... Jadi tidak di PSPACE? Tetapi di QSPACE (Quasi-Space)?
Tayfun Bayar
@ Payayfun Bayar: Ini berjalan dalam . Ini adalah algoritma deterministik yang memberikan hasil modulo p utama (perhatikan bahwa hasil ini cukup untuk sisa algoritma untuk menentukan tugas yang memuaskan). Itu bisa dijalankan untuk prime apa saja. Berjalan untuk lebih dari satu perdana meningkatkan peluangnya untuk menemukan tugas yang memuaskan. Ini memiliki peluang untuk menemukan tugas yang memuaskan, jika ada, dari ( p - 1 ) / p . O(v(2+logc))p(p1)/p
Matt Groff
Apakah perlu SPACE O (N ^ (2 + log (c)))?
Tayfun Bayar
@ Payayfun Bayar: Ya. Saya belum menemukan cara untuk mengurangi pertimbangan ruang.
Matt Groff
1
Saya akan mengusulkan untuk mengubah judul menjadi lebih tepat. Judul saat ini tidak terlihat menarik, sementara pertanyaannya sendiri terlihat sangat menarik.
Yoshio Okamoto

Jawaban:

16

Jika apa yang Anda pelajari berhasil, itu pasti tidak akan sepele.

Ini akan menyiratkan bahwa 3SAT memiliki sirkuit (tidak seragam) dengan ukuran . Kemudian, setiap bahasa di N P (dan hirarki waktu polinomial) akan memiliki quasi-polinomial (yaitu, n O ( log c n ) sirkuit) ukuran.nO(logn)NPnO(logcn)

Bahkan jika perlu waktu preprocessing untuk menghasilkan struktur data ukuran hanya 2 O ( log 2 n ) yang kemudian dapat dengan benar menjawab pertanyaan acak 3SAT ukuran n dalam 2 O ( log 2 n ) waktu acak dengan probabilitas tinggi, 3SAT akan memiliki sirkuit ukuran kuasi-polinomial, menggunakan terjemahan yang dikenal dari algoritma acak ke sirkuit. Ini tidak akan meningkatkan batas waktu algoritma yang diketahui karena preprocessing, tetapi masih akan sangat menarik sebagai hasil yang tidak seragam.22n2O(log2n)n2O(log2n)

Apa yang Anda maksud dengan "dalam kesalahan yang dapat disesuaikan dengan jumlah yang sewenang-wenang"? Apakah algoritma ini diacak?

Ryan Williams
sumber
:Terima kasih atas jawaban anda. Algoritma tidak acak. Waktu aktual dari algoritma itu sendiri tidak sesederhana seperti yang saya jelaskan. Pada dasarnya, kita bisa menjalankannya melalui proses berulang untuk menghilangkan kesalahan. Jadi jika kita menjalankannya melalui kali, probabilitas kesalahan akan berkurang di bawah 1 / ( 2 x ) . Saya ragu-ragu untuk memberikan detailnya karena saya khawatir itu akan mengungkapkan terlalu banyak tentang algoritma. x1/(2x)
Matt Groff
3
Bagaimana algoritme tidak dapat diacak, namun Anda dapat menjalankannya berulang kali untuk mengurangi kesalahan? Saya pikir Anda mungkin harus memberikan setidaknya beberapa detail lagi, untuk memahami pertanyaan Anda.
Ryan Williams
2
Algoritme-nya sedemikian rupa sehingga (jika berhasil), untuk setiap prime , jika jumlah penugasan memuaskan bukan kelipatan p, maka algoritme menemukan penugasan yang memuaskan.ppDia (secara keliru) menyebutnya sebagai "perubahan menemukan tugas yang memuaskan, jika ada, dari ."(p1)/pJika ketergantungan runtime pada tidak besar, maka ini menghasilkan (deterministik) sirkuit berukuran kuasi-polinomial untuk SAT.p
Langkah preprocessing membutuhkan . Dapatkah saya memiliki referensi ke "terjemahan yang diketahui dari algoritma acak ke sirkuit"? Jadi jika Anda ingin mengurangi kesalahan, Anda harus menjalankan preprocessing n kali. Saya ragu ini bisa diterjemahkan ke sirkuit semu. Keuntungan apa yang akan didapat dari algoritma yang sepele ini? pn
Zirui Wang
BPPP/poly3/4100n2O(log2n)1/2n
Ryan Williams
3

Saya tidak tahu apakah hasil Anda - jika valid - akan menjadi kemajuan non-sepele, tetapi di sini ada satu jenis masalah yang dapat Anda uji:

Masalah. Perbaiki fungsi . Mengingat y { 0 , 1 } n , temukan x { 0 , 1 } n sedemikian rupa sehingga f ( x ) = y .f:{0,1}n{0,1}ny{0,1}nx{0,1}nf(x)=y

Jika dapat dihitung secara efisien (katakanlah, dengan sirkuit kecil), hasil Anda menyiratkan semacam solusi untuk masalah ini.f

f2n22n/322n/3xy22n/322n/3STST=2nff

f

DW
sumber