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.
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.
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?
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.
sumber
Jawaban:
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) NP nO(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.22n 2O(log2n) n 2O(log2n)
Apa yang Anda maksud dengan "dalam kesalahan yang dapat disesuaikan dengan jumlah yang sewenang-wenang"? Apakah algoritma ini diacak?
sumber
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}n y∈{0,1}n x∈{0,1}n f(x)=y
Jika dapat dihitung secara efisien (katakanlah, dengan sirkuit kecil), hasil Anda menyiratkan semacam solusi untuk masalah ini.f
sumber