Apakah ada penjelasan orang awam mengapa algoritma Grover bekerja?


27

Posting blog ini oleh Scott Aaronson adalah penjelasan yang sangat berguna dan sederhana tentang algoritma Shor .

Saya ingin tahu apakah ada penjelasan seperti itu untuk algoritma kuantum kedua yang paling terkenal: Algoritma Grover untuk mencari basis data ukuran tidak berurutan dalam waktu .O ( O(n)O(n)

Secara khusus, saya ingin melihat beberapa intuisi yang dapat dimengerti untuk hasil awal yang mengejutkan dari waktu berjalan!

Jawaban:


20

Ada penjelasan yang bagus dari Craig Gidney di sini (ia juga memiliki konten hebat lainnya, termasuk simulator rangkaian, di blog-nya ).

Pada dasarnya, algoritma Grover berlaku ketika Anda memiliki fungsi yang mengembalikan Trueuntuk salah satu input yang mungkin, dan Falseuntuk semua yang lain. Tugas algoritma adalah menemukan yang kembali True.

Untuk melakukan ini, kami menyatakan input sebagai string bit, dan menyandikannya menggunakan status dan dari string qubit. Jadi string bit akan dikodekan dalam empat negara qubit , misalnya.|0|10011|0011

Kita juga harus bisa mengimplementasikan fungsi menggunakan gerbang kuantum. Secara khusus, kita perlu menemukan urutan gerbang yang akan mengimplementasikan kesatuan sehinggaU

U|a=|a,U|b=|b

di mana adalah bit string yang fungsi akan kembali dan adalah setiap yang akan kembali .aTruebFalse

Jika kita mulai dengan superposisi dari semua string bit yang mungkin, yang cukup mudah dilakukan dengan hanya Hadamarding segalanya, semua input dimulai dengan amplitudo yang sama dari (di mana adalah panjang string bit yang kita cari, dan karena itu jumlah qubit yang kita gunakan). Tetapi jika kita menerapkan oracle , amplitudo status yang kita cari akan berubah menjadi .12nnU12n

Ini bukan perbedaan yang mudah diamati, jadi kita perlu memperkuatnya. Untuk melakukan ini kita menggunakan Grover Difusi Operator , . Efek dari operator ini pada dasarnya adalah untuk melihat bagaimana setiap amplitudo berbeda dari amplitudo rata-rata, dan kemudian membalikkan perbedaan ini. Jadi jika amplitudo tertentu adalah jumlah tertentu lebih besar dari amplitudo rata-rata, itu akan menjadi jumlah yang sama kurang dari rata-rata, dan sebaliknya.D

Khususnya, jika Anda memiliki superposisi string bit , operator difusi memiliki efekbj

D:jαj|bjj(2μαj)|bj

di mana adalah amplitudo rata-rata. Jadi amplitudo apa pun akan berubah menjadi . Untuk melihat mengapa itu memiliki efek ini, dan bagaimana menerapkannya, lihat catatan kuliah ini .μ=jαjμ+δμδ

Sebagian besar amplitudo akan menjadi sedikit lebih besar dari rata-rata (karena efek dari single ), sehingga mereka akan menjadi sedikit lebih kecil dari rata-rata melalui operasi ini. Bukan perubahan besar.12n

Keadaan yang kita cari akan sangat terpengaruh. Amplitudo-nya jauh lebih sedikit daripada rata-rata, sehingga akan menjadi jauh lebih besar rata-rata setelah operator difusi diterapkan. Karena itu, efek akhir dari operator difusi adalah menyebabkan efek interferensi pada status yang memotong amplitudo dari semua jawaban yang salah dan menambahkannya ke jawaban yang benar. Dengan mengulangi proses ini, kita dapat dengan cepat mencapai titik di mana solusi kita sangat menonjol dari kerumunan sehingga kita dapat mengidentifikasinya.12n

Tentu saja, ini semua menunjukkan bahwa semua pekerjaan dilakukan oleh operator difusi. Pencarian hanyalah sebuah aplikasi yang dapat kita sambungkan.

Lihat jawaban atas pertanyaan lain untuk perincian tentang bagaimana fungsi dan operator difusi diimplementasikan.


4

Saya menemukan pendekatan grafis yang cukup baik untuk memberikan beberapa wawasan tanpa terlalu teknis. Kami membutuhkan beberapa input:

  • kita bisa menghasilkan keadaan|ψ with non-zero overlap with the 'marked' state |x: x|ψ0.
  • we can implement an operation U1=(I2|ψψ|)
  • we can implement an operation U2=I2|xx|.

This last operation is the one that can mark our marked item with a -1 phase. We can also define a state |ψ to be orthonormal to |x such that the {|x,|ψ} forms an orthonormal basis for the span of {|x,|ψ}. Both the operations that we have defined preserve this space: you start with some state in the span of {|x,|ψ}, and they return a state within the span. Moreover, both are unitary, so the length of the input vector is preserved.

A vector of fixed length within a two-dimensional space can be visualised as the circumference of a circle. So, let's set up a circle with two orthogonal directions corresponding to |ψ and |x. enter image description here

Our initial state |ψ will have small overlap with |x and large overlap with |ψ. If it were the other way around, search would be easy: we'd just prepare |ψ, measure, and test the output using the marking unitary, repeating until we got the marked item. It wouldn't take long. Let's call the angle between |ψ and |ψ the angle θ. enter image description here

Now let's take a moment to think about what our two unitary actions do. Both have a -1 eigenvalue, and all other eigenvalues +1. In our two-dimensional subspace, that reduces to a +1 eigenvalue and a -1 eigenvalue. Such an operation is a reflection in the axis defined by the +1 eigenvector. So, U1 is a reflection in the |ψ axis, while U2 is a reflection in the |ψ axis. enter image description here

Now, take an arbitrary vector in this space, and apply U2 followed by U1. The net effect is that the vector is rotated by an angle 2θ towards the |x axis. enter image description here

So, if you start from |ψ, you can repeat this sufficiently many times, and get to within an angle θ of |x. Thus, when we measure that state, we get the value x with high probability.

Now we need a little care to find the speed-up. Assume that the probability of finding |x in |ψ is p1. So, classically, we'd need O(1/p) attempts to find it. In our quantum scenario, we have that p=sinθθ (since θ is small), and we want a number of runs r such that sin((2r+1)θ)1. So, rπ2θπ2p. You can see the square-root speed-up right there.


3

The simple explanation for how (and hence why) Grover's algorithm works is that a quantum gate can only reshuffle (or otherwise distribute) probability amplitudes. Using an initial state with equal probability amplitudes for all states of the computational basis, one starts with an amplitude of 1/N. This much can be "added" to the desired (solution) state in each iteration, such that after N iterations one arrives at a probability amplitude of 1 meaning the desired state has been distilled.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.