Memilih jumlah iterasi
Kita telah menetapkan bahwa vektor keadaan register dalam algoritma Grover tetap berada dalam subruang dua-dimensi yang dibentangkan oleh dan setelah langkah inisialisasi dilakukan.
Tujuannya adalah menemukan elemen dan tujuan ini akan tercapai jika kita bisa mendapatkan keadaan β karena jika kita mengukur keadaan ini, kita dijamin mendapatkan hasil pengukuran Mengingat bahwa keadaan setelah iterasi pada langkah 2 adalah
kita harus memilih sedemikian sehingga
sedekat mungkin dengan dalam nilai absolut, untuk memaksimalkan probabilitas mendapatkan dari pengukuran. Untuk sudut manapun, nilai berosilasi seiring meningkat, meskipun tidak harus periodik β tidak ada jaminan kita akan pernah mendapatkan nilai yang sama dua kali.
Secara alami, selain membuat probabilitas mendapatkan elemen dari pengukuran besar, kita juga ingin memilih sekecil mungkin, karena aplikasi operasi memerlukan kueri ke fungsi Karena kita ingin membuat mendekati dalam nilai absolut, cara alami untuk melakukannya adalah memilih sehingga
Memecahkan untuk menghasilkan
Tentu saja, harus bilangan bulat, sehingga kita tidak selalu bisa mencapai nilai ini tepat β tetapi yang bisa kita lakukan adalah mengambil bilangan bulat terdekat dengan nilai ini, yaitu
Ini adalah jumlah iterasi yang direkomendasikan untuk algoritma Grover. Saat kita melanjutkan analisis, kita akan melihat bahwa kedekatan bilangan bulat ini dengan nilai target secara alami mempengaruhi kinerja algoritma.
(Sebagai catatan tambahan, jika nilai target kebetulan tepat di tengah antara dua bilangan bulat, ekspresi ini adalah yang kita dapatkan dengan membulatkan ke atas. Kita bisa secara alternatif membulatkan ke bawah, yang masuk akal karena berarti satu kueri lebih sedikit β tetapi ini bersifat sekunder dan tidak penting untuk keperluan pelajaran.)
Mengingat bahwa nilai sudut diberikan oleh rumus
kita melihat bahwa jumlah iterasi yang direkomendasikan bergantung pada jumlah string di Ini menimbulkan tantangan jika kita tidak tahu berapa banyak solusi yang kita miliki, seperti yang akan kita bahas nanti.
Pencarian unikβ
Pertama, mari kita fokus pada situasi di mana ada satu string sedemikian sehingga Cara lain untuk menyatakannya adalah bahwa kita sedang mempertimbangkan contoh masalah Pencarian Unik. Dalam kasus ini kita memiliki
yang dapat didekati secara nyaman sebagai
ketika menjadi besar. Jika kita substitusi ke dalam ekspresi
kita mendapatkan
Mengingat bahwa bukan hanya jumlah kali operasi dilakukan, tetapi juga jumlah kueri ke fungsi yang diperlukan oleh algoritma, kita melihat bahwa kita sedang menuju untuk mendapatkan algoritma yang memerlukan kueri .
Sekarang kita akan menyelidiki seberapa baik pilihan yang direkomendasikan bekerja. Probabilitas bahwa pengukuran akhir menghasilkan solusi unik dapat diekspresikan secara eksplisit sebagai
Argumen pertama, mengacu pada jumlah item yang dicari, dan argumen kedua, yang dalam hal ini adalah mengacu pada jumlah solusi. Sedikit kemudian kita akan menggunakan notasi yang sama secara lebih umum, di mana ada beberapa solusi.
Berikut adalah tabel probabilitas keberhasilan untuk nilai yang meningkat.
Perhatikan bahwa probabilitas ini tidak meningkat secara ketat. Khususnya, kita memiliki anomali menarik ketika di mana kita mendapatkan solusi dengan kepastian. Namun, dapat dibuktikan secara umum bahwa
untuk semua sehingga probabilitas keberhasilan mendekati dalam batas ketika menjadi besar, seperti yang tampaknya disarankan nilai-nilai di atas. Ini bagus!
Tapi perhatikan, bagaimanapun, bahwa bahkan batas lemah seperti menetapkan kegunaan algoritma Grover. Untuk hasil pengukuran apapun yang kita peroleh dari menjalankan prosedur, kita selalu bisa memeriksa apakah menggunakan satu kueri ke Dan jika kita gagal mendapatkan string unik di mana dengan probabilitas paling banyak dengan menjalankan prosedur sekali, maka setelah jalankan independen dari prosedur kita akan gagal mendapatkan string unik ini dengan probabilitas paling banyak Artinya, menggunakan kueri ke kita akan mendapatkan solusi unik dengan probabilitas setidaknya Menggunakan batas yang lebih baik mengungkapkan bahwa probabilitas menemukan menggunakan metode ini sebenarnya setidaknya
Beberapa solusiβ
Saat jumlah elemen di bervariasi, begitu pula sudut yang bisa memiliki efek signifikan pada probabilitas keberhasilan algoritma. Untuk singkatnya, mari kita tulis untuk menyatakan jumlah solusi, dan seperti sebelumnya kita akan asumsikan bahwa
Sebagai contoh motivasi, bayangkan kita memiliki solusi daripada solusi tunggal, seperti yang kita pertimbangkan di atas. Ini berarti bahwa
yang kira-kira dua kali lipat sudut yang kita miliki dalam kasus ketika besar. Misalkan kita tidak tahu lebih baik, dan memilih nilai yang sama seperti dalam pengaturan solusi unik:
Efeknya akan bencana seperti yang diungkapkan tabel probabilitas berikut.
Kali ini probabilitas keberhasilan mendekati saat mendekati tak hingga. Ini terjadi karena kita secara efektif berputar dua kali lebih cepat dari yang kita lakukan saat ada solusi unik, sehingga kita melewati target dan mendarat di dekat
Namun, jika sebaliknya kita menggunakan pilihan yang direkomendasikan, yaitu
untuk
maka kinerjanya akan lebih baik. Lebih tepatnya, menggunakan pilihan ini mengarah pada keberhasilan dengan probabilitas tinggi.
Menggeneralisasi apa yang diklaim sebelumnya, dapat dibuktikan bahwa
di mana kita menggunakan notasi yang disarankan sebelumnya: menyatakan probabilitas bahwa algoritma Grover yang dijalankan untuk iterasi mengungkapkan solusi ketika ada solusi dari kemungkinan secara total.
Batas bawah pada probabilitas keberhasilan ini sedikit aneh karena lebih banyak solusi berarti batas bawah yang lebih buruk β tetapi dengan asumsi bahwa jauh lebih kecil dari kita tetap menyimpulkan bahwa probabilitas keberhasilan cukup tinggi. Seperti sebelumnya, fakta sederhana bahwa cukup besar menyiratkan kegunaan algoritma.
Kebetulan juga berlaku bahwa
Batas bawah ini mendeskripsikan probabilitas bahwa string yang dipilih secara seragam acak adalah solusi β jadi algoritma Grover selalu setidaknya sebaik tebakan acak. (Faktanya, ketika algoritma Grover adalah tebakan acak.)
Sekarang mari kita lihat jumlah iterasi (dan karenanya jumlah kueri)
untuk
Untuk setiap berlaku bahwa sehingga
Ini berarti bahwa