Langkau ke kandungan utama

Penerangan algoritma Grover

Dalam bahagian ini, kita akan menerangkan algoritma Grover. Kita akan mulakan dengan membincangkan gate pertanyaan fasa dan cara membinanya, diikuti dengan penerangan algoritma Grover itu sendiri. Akhirnya, kita akan membincangkan secara ringkas bagaimana algoritma ini secara semulajadi digunakan untuk pencarian.

Gate pertanyaan fasa​

Algoritma Grover menggunakan operasi yang dikenali sebagai gate pertanyaan fasa. Berbeza dengan gate pertanyaan biasa Uf,U_f, yang ditakrifkan untuk fungsi ff yang diberikan dengan cara biasa yang telah diterangkan sebelum ini, gate pertanyaan fasa untuk fungsi ff ditakrifkan sebagai

Zf∣x⟩=(βˆ’1)f(x)∣x⟩Z_f \vert x\rangle = (-1)^{f(x)} \vert x\rangle

untuk setiap rentetan x∈Σn.x\in\Sigma^n.

Operasi ZfZ_f boleh dilaksanakan menggunakan satu gate pertanyaan UfU_f seperti yang dicadangkan oleh rajah ini:

Litar kuantum yang melaksanakan gate Z_f menggunakan satu gate pertanyaan bersama fenomena tendangan fasa

Pelaksanaan ini menggunakan fenomena tendangan fasa, dan memerlukan satu Qubit ruang kerja yang diinisialisasi kepada keadaan βˆ£βˆ’βŸ©\vert -\rangle tersedia. Qubit ini kekal dalam keadaan βˆ£βˆ’βŸ©\vert - \rangle selepas pelaksanaan selesai, dan boleh digunakan semula (untuk melaksanakan gate ZfZ_f berikutnya, misalnya) atau hanya dibuang.

Selain operasi Zf,Z_f, kita juga akan menggunakan gate pertanyaan fasa untuk fungsi OR nn-bit, yang ditakrifkan seperti berikut untuk setiap rentetan x∈Σn.x\in\Sigma^n.

OR(x)={0x=0n1x≠0n\mathrm{OR}(x) = \begin{cases} 0 & x = 0^n\\[0.5mm] 1 & x \neq 0^n \end{cases}

Secara eksplisit, gate pertanyaan fasa untuk fungsi OR nn-bit beroperasi seperti ini:

ZOR∣x⟩={∣x⟩x=0nβˆ’βˆ£x⟩xβ‰ 0n.Z_{\mathrm{OR}} \vert x\rangle = \begin{cases} \vert x\rangle & x = 0^n \\[0.5mm] - \vert x\rangle & x \neq 0^n. \end{cases}

Untuk jelaskan, inilah cara ZORZ_{\mathrm{OR}} beroperasi pada keadaan asas standard; tingkah lakunya pada keadaan sewenang-wenangnya ditentukan daripada ungkapan ini melalui kelelurusan.

Operasi ZORZ_{\mathrm{OR}} boleh dilaksanakan sebagai litar kuantum dengan memulakan dengan litar Boolean untuk fungsi OR, kemudian membina operasi UORU_{\mathrm{OR}} (iaitu gate pertanyaan standard untuk fungsi OR nn-bit) menggunakan prosedur yang diterangkan dalam pelajaran Asas algoritmik kuantum, dan akhirnya operasi ZORZ_{\mathrm{OR}} menggunakan fenomena tendangan fasa seperti yang diterangkan di atas. Perhatikan bahawa operasi ZORZ_{\mathrm{OR}} tidak bergantung pada fungsi ff dan oleh itu boleh dilaksanakan oleh litar kuantum tanpa gate pertanyaan.

Penerangan algoritma​

Sekarang kita sudah mempunyai kedua-dua operasi ZfZ_f dan ZOR,Z_{\mathrm{OR}}, kita boleh menerangkan algoritma Grover.

Algoritma ini merujuk kepada nombor t,t, iaitu bilangan lelaran yang dilakukan (dan oleh itu bilangan pertanyaan kepada fungsi ff yang diperlukan). Nombor tt ini tidak ditetapkan oleh algoritma Grover seperti yang kita terangkan di sini, dan kita akan membincangkan kemudian dalam pelajaran ini bagaimana ia boleh dipilih.

Algoritma Grover
  1. Inisialisasi daftar nn Qubit Q\mathsf{Q} kepada keadaan semua-sifar ∣0n⟩\vert 0^n \rangle kemudian gunakan operasi Hadamard pada setiap Qubit dalam Q.\mathsf{Q}.
  2. Gunakan tt kali operasi uniter G=HβŠ—nZORHβŠ—nZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f pada daftar Q\mathsf{Q}
  3. Ukur Qubit dalam Q\mathsf{Q} berkenaan dengan pengukuran asas standard dan keluarkan rentetan yang terhasil.

Operasi G=HβŠ—nZORHβŠ—nZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f yang diulang dalam langkah 2 akan dipanggil operasi Grover sepanjang baki pelajaran ini. Berikut ialah representasi litar kuantum bagi operasi Grover apabila n=7 ⁣:n=7\!:

Representasi litar kuantum bagi operasi Grover

Dalam rajah ini, operasi ZfZ_f digambarkan lebih besar daripada ZORZ_{\mathrm{OR}} sebagai petunjuk visual tidak formal untuk mencadangkan bahawa ia kemungkinan besar merupakan operasi yang lebih mahal. Khususnya, apabila kita bekerja dalam model pertanyaan, ZfZ_f memerlukan satu pertanyaan manakala ZORZ_{\mathrm{OR}} tidak memerlukan sebarang pertanyaan. Sebaliknya, jika kita mempunyai litar Boolean untuk fungsi f,f, dan kemudian menukarnya kepada litar kuantum untuk Zf,Z_f, kita boleh menjangka bahawa litar kuantum yang terhasil akan lebih besar dan lebih rumit berbanding litar untuk ZOR.Z_{\mathrm{OR}}.

Berikut ialah rajah litar kuantum untuk keseluruhan algoritma apabila n=7n=7 dan t=3.t=3. Untuk nilai tt yang lebih besar, kita boleh memasukkan contoh tambahan operasi Grover tepat sebelum pengukuran.

Litar kuantum untuk algoritma Grover apabila t=3

Algoritma Grover boleh digunakan untuk masalah Carian seperti berikut:

  • Pilih nombor tt dalam langkah 2. (Ini dibincangkan kemudian dalam pelajaran.)
  • Jalankan algoritma Grover pada fungsi f,f, menggunakan pilihan yang kita buat untuk t,t, untuk mendapatkan rentetan x∈Σn.x\in\Sigma^n.
  • Tanya fungsi ff pada rentetan xx untuk melihat sama ada ia adalah penyelesaian yang sah:
    • Jika f(x)=1,f(x) = 1, maka kita telah menemui penyelesaian, jadi kita boleh berhenti dan mengeluarkan x.x.
    • Jika tidak, jika f(x)=0,f(x) = 0, maka kita boleh sama ada menjalankan prosedur sekali lagi, mungkin dengan pilihan yang berbeza untuk t,t, atau kita boleh memutuskan untuk berhenti dan mengeluarkan "tiada penyelesaian."

Setelah kita menganalisis cara algoritma Grover berfungsi, kita akan lihat bahawa dengan mengambil t=O(N),t = O(\sqrt{N}), kita mendapat penyelesaian kepada masalah pencarian kita (jika ada) dengan kebarangkalian yang tinggi.

Source: IBM Quantum docs β€” updated 15 Jan 2026
English version on doQumentation β€” updated 7 Mei 2026
This translation based on the English version of approx. 26 Mac 2026