Memilih bilangan iterasi
Kita telah menetapkan bahawa vektor keadaan daftar dalam algoritma Grover kekal dalam subruang dua dimensi yang dijangkau oleh dan setelah langkah inisialisasi dilakukan.
Matlamatnya adalah untuk mencari unsur dan matlamat ini akan dicapai jika kita dapat memperoleh keadaan β kerana jika kita mengukur keadaan ini, kita dijamin mendapat hasil ukuran Memandangkan keadaan selepas iterasi dalam langkah 2 adalah
kita harus memilih supaya
sedekat mungkin kepada dalam nilai mutlak, untuk memaksimumkan kebarangkalian memperoleh daripada pengukuran. Untuk mana-mana sudut nilai berosilasi apabila meningkat, walaupun ia tidak semestinya berkala β tiada jaminan kita akan mendapat nilai yang sama dua kali.
Sudah tentu, selain daripada menjadikan kebarangkalian memperoleh unsur daripada pengukuran besar, kita juga ingin memilih sekecil mungkin, kerana penggunaan operasi memerlukan pertanyaan kepada fungsi Kerana kita bertujuan untuk menjadikan hampir kepada dalam nilai mutlak, cara semula jadi untuk melakukan ini adalah dengan memilih supaya
Menyelesaikan untuk menghasilkan
Sudah tentu, mesti berupa integer, jadi kita tidak semestinya dapat mencapai nilai ini dengan tepat β tetapi apa yang boleh kita lakukan adalah mengambil integer yang paling hampir dengan nilai ini, iaitu
Ini adalah bilangan iterasi yang disyorkan untuk algoritma Grover. Apabila kita meneruskan analisis, kita akan lihat bahawa kedekatan integer ini dengan nilai sasaran secara semula jadi mempengaruhi prestasi algoritma.
(Sebagai catatan tambahan, jika nilai sasaran kebetulan tepat di tengah-tengah antara dua integer, ungkapan ini adalah apa yang kita dapat dengan membundarkan ke atas. Kita boleh membundarkan ke bawah sebagai alternatif, yang masuk akal dilakukan kerana ia bermakna satu pertanyaan lebih sedikit β tetapi ini adalah perkara kedua dan tidak penting untuk tujuan pelajaran.)
Dengan mengingat bahawa nilai sudut diberikan oleh formula
kita melihat bahawa bilangan iterasi yang disyorkan bergantung kepada bilangan rentetan dalam Ini menimbulkan cabaran jika kita tidak tahu berapa banyak penyelesaian yang ada, seperti yang akan kita bincangkan kemudian.
Carian unikβ
Pertama, mari kita fokus pada situasi di mana terdapat satu rentetan tunggal sedemikian rupa sehingga Cara lain untuk menyatakannya ialah kita sedang mempertimbangkan suatu contoh masalah carian Unik. Dalam kes ini kita ada
yang boleh dianggarkan secara mudah sebagai
apabila menjadi besar. Jika kita gantikan ke dalam ungkapan
kita memperoleh
Dengan mengingat bahawa bukan sahaja bilangan kali operasi dilakukan, tetapi juga bilangan pertanyaan kepada fungsi yang diperlukan oleh algoritma, kita melihat bahawa kita sedang menuju kepada algoritma yang memerlukan pertanyaan.
Sekarang kita akan menyiasat seberapa baik pilihan yang disyorkan berfungsi. Kebarangkalian bahawa pengukuran akhir menghasilkan penyelesaian unik boleh dinyatakan secara eksplisit sebagai
Hujah pertama, merujuk kepada bilangan item yang kita cari, dan hujah kedua, yang merupakan dalam kes ini, merujuk kepada bilangan penyelesaian. Sedikit kemudian kita akan menggunakan notasi yang sama secara lebih umum, di mana terdapat pelbagai penyelesaian.
Berikut adalah jadual kebarangkalian kejayaan untuk nilai yang semakin meningkat.
Perhatikan bahawa kebarangkalian ini tidak meningkat secara ketat. Khususnya, kita mempunyai anomali menarik apabila di mana kita mendapat penyelesaian dengan kepastian. Namun, secara umum boleh dibuktikan bahawa
untuk semua jadi kebarangkalian kejayaan menuju kepada dalam had apabila menjadi besar, seperti yang dicadangkan oleh nilai di atas. Ini bagus!
Tapi perhatikan, walau bagaimanapun, bahawa walaupun sempadan lemah seperti membuktikan kegunaan algoritma Grover. Untuk apa jua hasil ukuran yang kita peroleh daripada menjalankan prosedur, kita sentiasa boleh menyemak sama ada menggunakan satu pertanyaan kepada Dan jika kita gagal memperoleh rentetan unik yang dengan kebarangkalian paling banyak dengan menjalankan prosedur sekali, maka selepas jalan bebas prosedur kita akan gagal memperoleh rentetan unik ini dengan kebarangkalian paling banyak Iaitu, menggunakan pertanyaan kepada kita akan memperoleh penyelesaian unik dengan kebarangkalian sekurang-kurangnya Menggunakan sempadan yang lebih baik mendedahkan bahawa kebarangkalian untuk mencari menggunakan kaedah ini sebenarnya sekurang-kurangnya
Pelbagai penyelesaianβ
Apabila bilangan unsur dalam berubah, begitu juga sudut yang boleh memberi kesan ketara kepada kebarangkalian kejayaan algoritma. Untuk ringkas, mari kita tulis untuk menandakan bilangan penyelesaian, dan seperti sebelum ini kita akan anggap bahawa
Sebagai contoh motivasi, mari kita bayangkan kita mempunyai penyelesaian berbanding satu penyelesaian tunggal, seperti yang kita pertimbangkan di atas. Ini bermakna
yang kira-kira dua kali ganda sudut yang kita ada dalam kes apabila besar. Andaikan kita tidak tahu lebih baik, dan memilih nilai yang sama seperti dalam tetapan penyelesaian unik:
Kesannya akan menjadi bencana seperti yang ditunjukkan oleh jadual kebarangkalian berikut.
Kali ini kebarangkalian kejayaan menuju kepada apabila menuju kepada infiniti. Ini berlaku kerana kita secara efektifnya berputar dua kali lebih cepat berbanding apabila terdapat penyelesaian unik, jadi kita terlepas sasaran dan mendarat berhampiran
Namun, jika sebaliknya kita menggunakan pilihan yang disyorkan, iaitu
untuk
maka prestasinya akan lebih baik. Untuk lebih tepat, menggunakan pilihan ini membawa kepada kejayaan dengan kebarangkalian tinggi.
Mengeneralisasikan apa yang dituntut sebelum ini, boleh dibuktikan bahawa
di mana kita menggunakan notasi yang dicadangkan sebelum ini: menandakan kebarangkalian bahawa algoritma Grover yang dijalankan selama iterasi mendedahkan satu penyelesaian apabila terdapat penyelesaian secara keseluruhan daripada kemungkinan.
Sempadan bawah pada kebarangkalian kejayaan ini agak pelik dalam erti kata bahawa lebih banyak penyelesaian bermakna sempadan bawah yang lebih lemah β tetapi dengan andaian bahawa jauh lebih kecil daripada kita tetap menyimpulkan bahawa kebarangkalian kejayaan agak tinggi. Seperti sebelum ini, hakikat semata-mata bahawa agak besar menyiratkan kegunaan algoritma.
Ia juga berlaku bahawa
Sempadan bawah ini menerangkan kebarangkalian bahawa rentetan yang dipilih secara rawak seragam adalah satu penyelesaian β jadi algoritma Grover selalu melakukan sekurang-kurangnya sebaik meneka secara rawak. (Sebenarnya, apabila algoritma Grover adalah meneka secara rawak.)
Sekarang mari kita lihat bilangan iterasi (dan seterusnya bilangan pertanyaan)
untuk
Untuk setiap adalah benar bahawa dan oleh itu
Ini menyiratkan bahawa
Ini diterjemahkan kepada penjimatan dalam bilangan pertanyaan apabila bertumbuh. Khususnya, bilangan pertanyaan yang diperlukan adalah
Bilangan penyelesaian yang tidak diketahuiβ
Jika bilangan penyelesaian adalah tidak diketahui, maka pendekatan yang berbeza diperlukan, kerana dalam situasi ini kita tidak mempunyai pengetahuan tentang untuk memaklumkan pilihan kita. Sebenarnya, terdapat pelbagai pendekatan.
Satu pendekatan mudah adalah dengan memilih
secara rawak seragam. Memilih dengan cara ini sentiasa menemukan penyelesaian (dengan mengandaikan terdapat satu) dengan kebarangkalian lebih daripada 40%, walaupun ini tidak jelas dan memerlukan analisis yang tidak akan dimasukkan di sini. Namun ia masuk akal, terutamanya apabila kita memikirkan gambaran geometri: memutar keadaan beberapa kali secara rawak seperti ini tidak jauh berbeza daripada memilih vektor unit rawak dalam ruang yang dijangkau oleh dan yang berkemungkinan besar pekali agak besar. Dengan mengulangi prosedur ini dan menyemak hasilnya dengan cara yang sama seperti yang dihuraikan sebelum ini, kebarangkalian untuk mencari penyelesaian boleh dijadikan sangat hampir kepada
Terdapat kaedah yang lebih halus yang menemukan penyelesaian apabila terdapat satu menggunakan pertanyaan, walaupun apabila bilangan penyelesaian tidak diketahui, dan memerlukan pertanyaan untuk menentukan bahawa tiada penyelesaian apabila
Idea asasnya adalah memilih secara rawak seragam daripada set secara berulang, untuk nilai yang semakin meningkat. Khususnya, kita boleh mulakan dengan dan meningkatkannya secara eksponen, sentiasa menamatkan proses sebaik sahaja penyelesaian ditemui dan mengehadkan supaya tidak membuang pertanyaan apabila tiada penyelesaian. Proses ini memanfaatkan hakikat bahawa lebih sedikit pertanyaan diperlukan apabila lebih banyak penyelesaian wujud. Namun diperlukan sedikit kehati-hatian untuk mengimbangi kadar pertumbuhan dengan kebarangkalian kejayaan untuk setiap iterasi. (Mengambil berfungsi, misalnya, seperti yang ditunjukkan oleh analisis. Menggandakan walau bagaimanapun, tidak β ini ternyata terlalu cepat untuk meningkat.)
Kes-kes remehβ
Sepanjang analisis yang baru kita lalui, kita telah mengandaikan bahawa bilangan penyelesaian adalah bukan sifar. Memang, dengan merujuk kepada vektor-vektor
kita secara tersirat mengandaikan bahawa dan kedua-duanya tidak kosong. Di sini kita akan mempertimbangkan secara ringkas apa yang berlaku apabila salah satu daripada set ini kosong.
Sebelum kita sibuk dengan analisis, mari kita perhatikan yang jelas: jika setiap rentetan adalah penyelesaian, maka kita akan melihat penyelesaian apabila kita mengukur; dan apabila tiada penyelesaian, kita tidak akan melihat satu. Dalam sesetengah hal tidak perlu pergi lebih jauh daripada ini.
Namun, kita boleh mengesahkan matematik untuk kes-kes remeh ini dengan cepat. Situasi di mana salah satu daripada dan kosong berlaku apabila adalah malar; kosong apabila untuk setiap dan kosong apabila untuk setiap Ini bermakna
dan oleh itu
Jadi, tanpa mengira bilangan iterasi yang kita lakukan dalam kes-kes ini, pengukuran akan sentiasa mendedahkan rentetan rawak seragam