Ringkasan
- Ada teori kompleksitas masalah pencarian (juga dikenal sebagai masalah hubungan). Teori ini mencakup kelas yang disebut FP , FNP , dan FBQP yang secara efektif menyelesaikan masalah pencarian dengan berbagai jenis sumber daya.
- Dari masalah pencarian, Anda juga dapat menentukan masalah keputusan, yang memungkinkan Anda untuk menghubungkan masalah pencarian ke kelas P , NP , dan BQP yang biasa .
- Apakah Anda mempertimbangkan versi pencarian dari versi keputusan dari masalah, cara Anda mempertimbangkan input untuk masalah Pencarian Tidak Terstruktur akan menentukan batas atas yang dapat Anda tambahkan pada kompleksitasnya.
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:
Struktur masalah pencarian umum.
Diberikan input dan hubungan biner R , temukan y sedemikian rupa sehingga R ( x , y ) dipegang.xRyR(x,y)
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 ) .yxR(x,y)(x,y)
Secara khusus: contoh masalah 'pencarian basis data' yang biasanya diterapkan oleh Pencarian Grover dapat dijelaskan sebagai berikut.
Pencarian Tidak Terstruktur.
Diberikan input oracle sedemikian rupa sehingga O | a ⟩ | b ⟩ = | a ⟩ | b ⊕ f ( a ) ⟩ untuk beberapa fungsi f : { 0 , 1 } m → { 0 , 1 } , temukan y sedemikian rupa sehingga O | y ⟩ | 0 ⟩ = | y ⟩ | 1O:H⊗m+12→H⊗m+12O|a⟩|b⟩=|a⟩|b⊕f(a)⟩f:{0,1}m→{0,1}y .O|y⟩|0⟩=|y⟩|1⟩
Di sini, oracle itu sendiri adalah input untuk masalah: ia memainkan peran , dan hubungan yang kita hitung adalah
R ( O , y )x
R(O,y)≡[O|y⟩|0⟩=|y⟩|1⟩]≡[f(y)=1].
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.xfpyramids
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 (ℓnxN=n/ℓNyf(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}ny∈{0,1}mO:Hm+12→Hm+12berdasarkan 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)xf:{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}mO
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 OnxOxN=n/ℓNnxON∈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.
Versi keputusan masalah pencarian umum.
Diberikan input dan relasi biner R , tentukan apakah ∃ y : R ( x , y ) berlaku.xR∃y:R(x,y)
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
xx solusi untuk Pencarian Tidak Terstruktur yang melakukannya tanpa benar-benar menemukan solusi, meskipun secara umum tidak jelas bagaimana melakukannya dengan cara yang akan memberikan keuntungan daripada benar-benar menemukan solusi.
Kompleksitas Oracle
OxO
OnOnx
O
x=11⋯1n
y∈{0,1}n
y∈{0,1}n
O|y⟩|0⟩=|y⟩|1⟩
NPOFNPOBQPOFBQPO
O
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 ≠ PSPACEOONPOBQPO
\text{}
untuk menulis nama-nama kelas kompleksitas. Misalnya\text{NP}
atau\text{BQP}