Saya bingung tentang algoritma Grover dan hubungannya dengan kelas kompleksitas.
Algoritma Grover menemukan dan elemen dalam database N = 2 n (sedemikian sehingga f ( k ) = 1 ) elemen dengan ∼ √ panggilan ke oracle.
Jadi kami memiliki masalah berikut:
Masalah: Temukan dalam basis data sehingga f ( k ) = 1
Sekarang saya sadar bahwa ini bukan masalah keputusan dan dengan demikian definisi normal kita tentang kompleksitas kelas , NP dll tidak benar-benar berlaku. Tapi saya ingin tahu bagaimana kita akan mendefinisikan kelas kompleksitas dalam kasus seperti itu - dan cuaca itu dilakukan sehubungan dengan N atau n ?
Selanjutnya algoritma Grover dapat digunakan sebagai subrutin. Saya telah membaca di beberapa tempat bahwa algoritma Grover tidak mengubah kelas kompleksitas masalah - apakah ada cara heuristik untuk melihat ini.
sumber
\text{}
untuk menulis nama-nama kelas kompleksitas. Misalnya\text{NP}
atau\text{BQP}
Jawaban:
Ringkasan
Kompleksitas masalah hubungan
Seperti yang Anda perhatikan, masalah Grover memecahkan masalah pencarian , yang dalam literatur kompleksitas kadang-kadang juga dikenal sebagai masalah hubungan . Yaitu, itu adalah masalah dari jenis berikut:
Kelas kompleksitas FP dan FNP didefinisikan dalam hal masalah tersebut, di mana khususnya tertarik pada kasus di mana memiliki panjang paling banyak fungsi polinomial dari panjang x , dan di mana hubungan R ( x , y ) dapat dengan sendirinya dihitung dalam jumlah waktu yang dibatasi oleh beberapa polinomial dengan panjang ( x , y ) .y x R(x,y) (x,y)
Secara khusus: contoh masalah 'pencarian basis data' yang biasanya diterapkan oleh Pencarian Grover dapat dijelaskan sebagai berikut.
Di sini, oracle itu sendiri adalah input untuk masalah: ia memainkan peran , dan hubungan yang kita hitung adalah R ( O , y )x
Misalkan, alih-alih sebuah oracle, kita diberi input spesifik yang menggambarkan bagaimana fungsi f dikomputasi, kita dapat mempertimbangkan kelas kompleksitas mana dari masalah ini. Seperti yang ditunjukkan , kelas kompleksitas yang sesuai yang kita peroleh tergantung pada bagaimana input diberikan.x f
pyramids
Misalkan fungsi input disediakan sebagai basis data (karena masalahnya kadang-kadang dijelaskan), di mana setiap entri ke basis data memiliki panjang . Jika n adalah panjang dari string x yang digunakan untuk menggambarkan seluruh database , maka database memiliki entri N = n / ℓ . Maka dimungkinkan untuk mencari seluruh database dengan meminta setiap entri N secara berurutan, dan berhenti jika kita menemukan entri y sedemikian rupa sehingga f ( y ) = 1 . Andaikata setiap query ke database membutuhkan sesuatu seperti O (ℓ n x N=n/ℓ N y f(y)=1 waktu, prosedur ini menghentikan waktu O ( N log N ) ⊆ O ( n log n ) , sehingga masalahnya ada diFP.O(logN)⊆O(logn) O(NlogN)⊆O(nlogn)
Dengan asumsi bahwa pencarian database dapat dilakukan dalam superposisi yang koheren, algoritma Grover memungkinkan masalah ini ada di FBQP . Namun, seperti FP ⊆ FBQP , pencarian lengkap klasik juga membuktikan bahwa masalah ini ada di FBQP . Semua yang kami peroleh (hingga faktor log) adalah percepatan kuadratik karena penghematan jumlah kueri basis data.
Misalkan fungsi input dijelaskan secara ringkas, oleh algoritma waktu polinomial yang mengambil spesifikasi dan argumen y ∈ { 0 , 1 } m dan menghitung O : H m + 1 2x∈{0,1}n y∈{0,1}m O:Hm+12→Hm+12 berdasarkan standar negara , di mana m mungkin jauh lebih besar dari Ω ( log n ) . Contohnya adalah di mana x menentukan bentuk CNF dari beberapa fungsi boolean f : { 0 , 1 } m → { 0 , 1 } untuk m ∈ O ( n ) , dalam hal ini kita dapat mengevaluasi f ( y ) pada input secara efisien y ∈|y⟩|b⟩ m Ω(logn) x f:{0,1}m→{0,1} m∈O(n) f(y) dan dengan demikian secara efisien mengevaluasi O pada status dasar standar. Ini menempatkan masalah diFNP.y∈{0,1}m O
Diberikan prosedur untuk mengevaluasi dari ( x , y ) dalam waktu O ( p ( n ) ) untuk n = | x | Algoritma Grover memecahkan masalah Pencarian Tidak Terstruktur untuk O dalam waktu O ( p ( n ) √f(y) (x,y) O(p(n)) n=|x| O ⊆O(p(n)√O(p(n)2m−−−√) . Ini bukan polinomial dalamn, dan karenanya tidak cukup untuk menempatkan masalah ini diFBQP: kami hanya mendapatkan percepatan kuadrat - meskipun ini masih berpotensi besar penghematan waktu perhitungan, dengan asumsi bahwa keuntungan yang diberikan oleh algoritma Grover tidak kalah dari overhead yang diperlukan untuk perhitungan kuantum toleran-kesalahan.⊆O(p(n)2n−−√) n
Dalam kedua kasus, kompleksitas ditentukan dalam hal panjang dari string x * yang menentukan bagaimana untuk menghitung oracle O . Dalam kasus x mewakili tabel pencarian, kita memiliki N = n / ℓ , dalam hal ini kinerja sebagai fungsi N mirip dengan kinerja sebagai fungsi n ; tetapi dalam kasus x secara ringkas menentukan O , dan N ∈ O ( 2 n / 2 ) , pesan gambar besar yang Grover's memecahkan masalah dalam On x O x N=n/ℓ N n x O N∈O(2n/2) kueri mengaburkan pesan yang lebih halus bahwa algoritma ini masih waktu eksponensial untuk komputer kuantum.O(N−−√)
Kompleksitas keputusan dari masalah hubungan
Ada cara mudah untuk mendapatkan masalah keputusan dari masalah hubungan, yang terkenal dari teori masalah NP- lengkap : untuk mengubah masalah pencarian ke pertanyaan tentang keberadaan solusi yang valid.
Kompleksitas NP kelas pada dasarnya dapat didefinisikan dalam hal masalah seperti itu, ketika hubungan efisien dihitung: masalah NP- lengkap paling terkenal (CNF-SAT, HAMCYCLE, 3-COLORING) adalah tentang keberadaan solusi yang valid untuk masalah hubungan yang dapat diverifikasi secara efisien. Peralihan dari memproduksi solusi ke sekadar menegaskan keberadaan solusi ini juga memungkinkan kami untuk menggambarkan versi factoration integer yang ada di BQP (dengan menanyakan apakah ada faktor non-sepele, daripada meminta nilai-nilai faktor non-sepele) .R
Kompleksitas Oracle
Seperti yang dapat kita lihat dari kasus terakhir, jika kita memperlakukan input hanya sebagai ramalan, situasinya terlihat agak tidak intuitif, dan tentu saja tidak memungkinkan untuk berbicara tentang cara-cara "database" dapat direalisasikan. Tetapi satu kebajikan dari mempertimbangkan versi relativised masalah, dengan ramalan yang sebenarnya, adalah bahwa kita dapat membuktikan hal-hal yang kalau tidak kita tidak tahu bagaimana membuktikannya. Jika kita dapat membuktikan bahwa versi keputusan dari masalah pencarian tidak terstruktur yang ringkas ada di BQP , maka kita akan mampu mewujudkan terobosan besar dalam perhitungan praktis; dan jika kita dapat membuktikan bahwa masalah keputusan sebenarnya tidak ada dalam BQP , maka kita akan menunjukkan bahwa P ≠ PSPACEO O NPO BQPO
sumber
Namun, para fisikawan suka mengajukan pendapat bahwa ini masih merupakan percepatan eksponensial yang tidak memiliki padanan klasik yang diketahui (atau memang mudah dipahami). Ini paling jelas dalam contoh basis data di mana fungsi oracle adalah pencarian basis data dan algoritma Grover dapat menyebabkan seseorang membutuhkan pencarian jauh lebih sedikit daripada ada data dalam basis data. Dalam hal ini, masih ada keuntungan yang signifikan, meskipun itu benar-benar hilang dalam gambaran kelas kompleksitas.
sumber
Izinkan saya memberikan beberapa contoh (mungkin ini yang Anda tanyakan di sini ?):
Tentu saja, kadang-kadang, struktur tambahan dalam masalah memungkinkan solusi yang berbeda yang tidak memerlukan pencarian semua bukti yang mungkin. Di sana, pencarian Grover kurang dari, atau bahkan tidak, digunakan untuk kita, tetapi mungkin kita bisa membuat algoritma waktu polinomial dengan cara lain. Sebagai contoh, kasus pengujian komposit: klasik, menemukan faktor-faktor dari bilangan tampaknya sulit: kita tidak bisa melakukan lebih baik daripada menguji semua faktor yang mungkin, jadi menggunakan bentuk bukti itu tidak banyak membantu, tetapi , seperti yang telah disebutkan, pertanyaan dapat diselesaikan secara efisien melalui rute lain, pengujian primitif AKS.
sumber
Lupakan basis data. Algoritma Grover memecahkan Boolean Satisfiability Problem , yaitu:
Masalahnya dikenal sebagai NP-complete.
sumber