Deskripsi algoritma Grover
Di bagian ini, kita akan mendeskripsikan algoritma Grover. Kita akan mulai dengan mendiskusikan Gate query fase dan cara membuatnya, diikuti dengan deskripsi algoritma Grover itu sendiri. Terakhir, kita akan secara singkat mendiskusikan bagaimana algoritma ini secara alami diterapkan untuk pencarian.
Gate query faseβ
Algoritma Grover menggunakan operasi yang dikenal sebagai Gate query fase. Berbeda dengan Gate query biasa yang didefinisikan untuk fungsi tertentu dengan cara biasa yang dijelaskan sebelumnya, Gate query fase untuk fungsi didefinisikan sebagai
untuk setiap string
Operasi bisa diimplementasikan menggunakan satu Gate query seperti yang disarankan diagram ini:
Implementasi ini memanfaatkan fenomena phase kickback, dan membutuhkan satu qubit ruang kerja, diinisialisasi ke state , untuk tersedia. Qubit ini tetap dalam state setelah implementasi selesai, dan bisa digunakan kembali (untuk mengimplementasikan Gate berikutnya, misalnya) atau sekadar dibuang.
Selain operasi kita juga akan menggunakan Gate query fase untuk fungsi OR -bit, yang didefinisikan sebagai berikut untuk setiap string
Secara eksplisit, Gate query fase untuk fungsi OR -bit beroperasi seperti ini:
Untuk memperjelas, inilah cara beroperasi pada state basis standar; perilakunya pada state sembarang ditentukan dari ekspresi ini oleh linearitas.
Operasi bisa diimplementasikan sebagai Circuit kuantum dengan dimulai dari Circuit Boolean untuk fungsi OR, kemudian membangun operasi (yaitu, Gate query standar untuk fungsi OR -bit) menggunakan prosedur yang dijelaskan di pelajaran Quantum algorithmic foundations, dan akhirnya operasi menggunakan fenomena phase kickback seperti yang dijelaskan di atas. Perhatikan bahwa operasi tidak memiliki ketergantungan pada fungsi dan karenanya bisa diimplementasikan oleh Circuit kuantum yang tidak memiliki Gate query.
Deskripsi algoritmaβ
Sekarang kita sudah memiliki dua operasi dan kita bisa mendeskripsikan algoritma Grover.
Algoritma ini mengacu pada angka yaitu jumlah iterasi yang dilakukan (dan karenanya jumlah query ke fungsi yang diperlukan). Angka ini tidak ditentukan oleh algoritma Grover seperti yang kita deskripsikan, dan kita akan membahas nanti dalam pelajaran bagaimana cara memilihnya.
Operasi yang diiterasi di langkah 2 akan disebut operasi Grover sepanjang sisa pelajaran ini. Berikut adalah representasi Circuit kuantum dari operasi Grover ketika
Dalam diagram ini, operasi digambarkan lebih besar dari sebagai petunjuk visual informal untuk menyarankan bahwa operasi itu kemungkinan merupakan operasi yang lebih mahal biayanya. Secara khusus, ketika kita bekerja dalam model query, membutuhkan satu query sementara tidak membutuhkan query. Jika sebaliknya kita memiliki Circuit Boolean untuk fungsi dan kemudian mengubahnya menjadi Circuit kuantum untuk kita bisa dengan wajar mengharapkan bahwa Circuit kuantum yang dihasilkan akan lebih besar dan lebih rumit dari satu untuk
Berikut adalah diagram Circuit kuantum untuk seluruh algoritma ketika dan Untuk nilai yang lebih besar kita cukup menyisipkan instance tambahan dari operasi Grover tepat sebelum pengukuran.
Aplikasi untuk pencarianβ
Algoritma Grover bisa diterapkan pada masalah Search sebagai berikut:
- Pilih angka di langkah 2. (Ini dibahas nanti dalam pelajaran.)
- Jalankan algoritma Grover pada fungsi menggunakan pilihan yang kita buat untuk untuk mendapatkan string
- Query fungsi pada string untuk melihat apakah itu solusi yang valid:
- Jika maka kita telah menemukan solusi, jadi kita bisa berhenti dan mengeluarkan
- Jika tidak, jika maka kita bisa menjalankan prosedur lagi, mungkin dengan pilihan berbeda untuk atau kita bisa memutuskan untuk menyerah dan mengeluarkan "tidak ada solusi."
Setelah kita menganalisis bagaimana algoritma Grover bekerja, kita akan melihat bahwa dengan mengambil kita mendapatkan solusi untuk masalah pencarian kita (jika ada) dengan probabilitas tinggi.