Lewati ke konten utama

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 Uf,U_f, yang didefinisikan untuk fungsi ff tertentu dengan cara biasa yang dijelaskan sebelumnya, Gate query fase untuk fungsi ff didefinisikan sebagai

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

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

Operasi ZfZ_f bisa diimplementasikan menggunakan satu Gate query UfU_f seperti yang disarankan diagram ini:

Circuit kuantum yang mengimplementasikan Gate Z_f menggunakan satu Gate query bersama dengan fenomena phase kickback

Implementasi ini memanfaatkan fenomena phase kickback, dan membutuhkan satu qubit ruang kerja, diinisialisasi ke state βˆ£βˆ’βŸ©\vert -\rangle, untuk tersedia. Qubit ini tetap dalam state βˆ£βˆ’βŸ©\vert - \rangle setelah implementasi selesai, dan bisa digunakan kembali (untuk mengimplementasikan Gate ZfZ_f berikutnya, misalnya) atau sekadar dibuang.

Selain operasi Zf,Z_f, kita juga akan menggunakan Gate query fase untuk fungsi OR nn-bit, yang didefinisikan sebagai berikut untuk setiap string 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 query fase 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 memperjelas, inilah cara ZORZ_{\mathrm{OR}} beroperasi pada state basis standar; perilakunya pada state sembarang ditentukan dari ekspresi ini oleh linearitas.

Operasi ZORZ_{\mathrm{OR}} bisa diimplementasikan sebagai Circuit kuantum dengan dimulai dari Circuit Boolean untuk fungsi OR, kemudian membangun operasi UORU_{\mathrm{OR}} (yaitu, Gate query standar untuk fungsi OR nn-bit) menggunakan prosedur yang dijelaskan di pelajaran Quantum algorithmic foundations, dan akhirnya operasi ZORZ_{\mathrm{OR}} menggunakan fenomena phase kickback seperti yang dijelaskan di atas. Perhatikan bahwa operasi ZORZ_{\mathrm{OR}} tidak memiliki ketergantungan pada fungsi ff dan karenanya bisa diimplementasikan oleh Circuit kuantum yang tidak memiliki Gate query.

Deskripsi algoritma​

Sekarang kita sudah memiliki dua operasi ZfZ_f dan ZOR,Z_{\mathrm{OR}}, kita bisa mendeskripsikan algoritma Grover.

Algoritma ini mengacu pada angka t,t, yaitu jumlah iterasi yang dilakukan (dan karenanya jumlah query ke fungsi ff yang diperlukan). Angka tt ini tidak ditentukan oleh algoritma Grover seperti yang kita deskripsikan, dan kita akan membahas nanti dalam pelajaran bagaimana cara memilihnya.

Grover's algorithm
  1. Inisialisasi register nn qubit Q\mathsf{Q} ke state all-zero ∣0n⟩\vert 0^n \rangle lalu terapkan operasi Hadamard ke setiap qubit dari Q.\mathsf{Q}.
  2. Terapkan tt kali operasi uniter G=HβŠ—nZORHβŠ—nZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f ke register Q\mathsf{Q}
  3. Ukur qubit-qubit dari Q\mathsf{Q} berdasarkan pengukuran basis standar dan keluarkan string yang dihasilkan.

Operasi G=HβŠ—nZORHβŠ—nZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f yang diiterasi di langkah 2 akan disebut operasi Grover sepanjang sisa pelajaran ini. Berikut adalah representasi Circuit kuantum dari operasi Grover ketika n=7 ⁣:n=7\!:

Representasi Circuit kuantum dari operasi Grover

Dalam diagram ini, operasi ZfZ_f digambarkan lebih besar dari ZORZ_{\mathrm{OR}} sebagai petunjuk visual informal untuk menyarankan bahwa operasi itu kemungkinan merupakan operasi yang lebih mahal biayanya. Secara khusus, ketika kita bekerja dalam model query, ZfZ_f membutuhkan satu query sementara ZORZ_{\mathrm{OR}} tidak membutuhkan query. Jika sebaliknya kita memiliki Circuit Boolean untuk fungsi f,f, dan kemudian mengubahnya menjadi Circuit kuantum untuk Zf,Z_f, kita bisa dengan wajar mengharapkan bahwa Circuit kuantum yang dihasilkan akan lebih besar dan lebih rumit dari satu untuk ZOR.Z_{\mathrm{OR}}.

Berikut adalah diagram Circuit kuantum untuk seluruh algoritma ketika n=7n=7 dan t=3.t=3. Untuk nilai tt yang lebih besar kita cukup menyisipkan instance tambahan dari operasi Grover tepat sebelum pengukuran.

Circuit kuantum untuk algoritma Grover ketika t=3

Algoritma Grover bisa diterapkan pada masalah Search sebagai berikut:

  • Pilih angka tt di langkah 2. (Ini dibahas nanti dalam pelajaran.)
  • Jalankan algoritma Grover pada fungsi f,f, menggunakan pilihan yang kita buat untuk t,t, untuk mendapatkan string x∈Σn.x\in\Sigma^n.
  • Query fungsi ff pada string xx untuk melihat apakah itu solusi yang valid:
    • Jika f(x)=1,f(x) = 1, maka kita telah menemukan solusi, jadi kita bisa berhenti dan mengeluarkan x.x.
    • Jika tidak, jika f(x)=0,f(x) = 0, maka kita bisa menjalankan prosedur lagi, mungkin dengan pilihan berbeda untuk t,t, atau kita bisa memutuskan untuk menyerah dan mengeluarkan "tidak ada solusi."

Setelah kita menganalisis bagaimana algoritma Grover bekerja, kita akan melihat bahwa dengan mengambil t=O(N),t = O(\sqrt{N}), kita mendapatkan solusi untuk masalah pencarian kita (jika ada) dengan probabilitas 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. 27 Mar 2026