Lewati ke konten utama

Memilih jumlah iterasi

Kita telah menetapkan bahwa vektor keadaan register Q\mathsf{Q} dalam algoritma Grover tetap berada dalam subruang dua-dimensi yang dibentangkan oleh ∣A0⟩\vert A_0\rangle dan ∣A1⟩\vert A_1\rangle setelah langkah inisialisasi dilakukan.

Tujuannya adalah menemukan elemen x∈A1,x\in A_1, dan tujuan ini akan tercapai jika kita bisa mendapatkan keadaan ∣A1⟩\vert A_1\rangle β€” karena jika kita mengukur keadaan ini, kita dijamin mendapatkan hasil pengukuran x∈A1.x\in A_1. Mengingat bahwa keadaan Q\mathsf{Q} setelah tt iterasi pada langkah 2 adalah

Gt∣u⟩=cos⁑((2t+1)θ)∣A0⟩+sin⁑((2t+1)θ)∣A1⟩,G^t \vert u \rangle = \cos\bigl((2t + 1)\theta\bigr) \vert A_0\rangle + \sin\bigl((2t + 1)\theta\bigr) \vert A_1\rangle,

kita harus memilih tt sedemikian sehingga

⟨A1∣Gt∣u⟩=sin⁑((2t+1)θ)\langle A_1 \vert G^t \vert u \rangle = \sin((2t + 1)\theta)

sedekat mungkin dengan 11 dalam nilai absolut, untuk memaksimalkan probabilitas mendapatkan x∈A1x\in A_1 dari pengukuran. Untuk sudut θ∈(0,2Ο€)\theta \in (0,2\pi) manapun, nilai sin⁑((2t+1)ΞΈ)\sin((2t + 1)\theta) berosilasi seiring tt meningkat, meskipun tidak harus periodik β€” tidak ada jaminan kita akan pernah mendapatkan nilai yang sama dua kali.

Secara alami, selain membuat probabilitas mendapatkan elemen x∈A1x\in A_1 dari pengukuran besar, kita juga ingin memilih tt sekecil mungkin, karena tt aplikasi operasi GG memerlukan tt kueri ke fungsi f.f. Karena kita ingin membuat sin⁑((2t+1)θ)\sin( (2t + 1) \theta) mendekati 11 dalam nilai absolut, cara alami untuk melakukannya adalah memilih tt sehingga

(2t+1)ΞΈβ‰ˆΟ€2.(2t + 1) \theta \approx \frac{\pi}{2}.

Memecahkan untuk tt menghasilkan

tβ‰ˆΟ€4ΞΈβˆ’12.t \approx \frac{\pi}{4\theta} - \frac{1}{2}.

Tentu saja, tt 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

t=βŒŠΟ€4ΞΈβŒ‹.t = \Bigl\lfloor \frac{\pi}{4\theta} \Bigr\rfloor.

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 Ο€/(4ΞΈ)βˆ’1/2\pi/(4\theta) - 1/2 kebetulan tepat di tengah antara dua bilangan bulat, ekspresi tt 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 ΞΈ\theta diberikan oleh rumus

ΞΈ=sinβ‘βˆ’1(∣A1∣N),\theta = \sin^{-1}\biggl(\sqrt{\frac{\vert A_1\vert}{N}}\biggr),

kita melihat bahwa jumlah iterasi yang direkomendasikan tt bergantung pada jumlah string di A1.A_1. Ini menimbulkan tantangan jika kita tidak tahu berapa banyak solusi yang kita miliki, seperti yang akan kita bahas nanti.

Pertama, mari kita fokus pada situasi di mana ada satu string xx sedemikian sehingga f(x)=1.f(x)=1. Cara lain untuk menyatakannya adalah bahwa kita sedang mempertimbangkan contoh masalah Pencarian Unik. Dalam kasus ini kita memiliki

ΞΈ=sinβ‘βˆ’1(1N),\theta = \sin^{-1}\biggl( \sqrt{\frac{1}{N}} \biggr),

yang dapat didekati secara nyaman sebagai

ΞΈ=sinβ‘βˆ’1(1N)β‰ˆ1N\theta = \sin^{-1}\biggl( \sqrt{\frac{1}{N}} \biggr) \approx \sqrt{\frac{1}{N}}

ketika NN menjadi besar. Jika kita substitusi ΞΈ=1/N\theta = 1/\sqrt{N} ke dalam ekspresi

t=βŒŠΟ€4ΞΈβŒ‹t = \Bigl\lfloor \frac{\pi}{4\theta} \Bigr\rfloor

kita mendapatkan

t=βŒŠΟ€4NβŒ‹.t = \Bigl\lfloor \frac{\pi}{4}\sqrt{N} \Bigr\rfloor.

Mengingat bahwa tt bukan hanya jumlah kali operasi GG dilakukan, tetapi juga jumlah kueri ke fungsi ff yang diperlukan oleh algoritma, kita melihat bahwa kita sedang menuju untuk mendapatkan algoritma yang memerlukan kueri O(N)O(\sqrt{N}).

Sekarang kita akan menyelidiki seberapa baik pilihan tt yang direkomendasikan bekerja. Probabilitas bahwa pengukuran akhir menghasilkan solusi unik dapat diekspresikan secara eksplisit sebagai

p(N,1)=sin⁑2((2t+1)θ).p(N,1) = \sin^2 \bigl( (2t + 1) \theta \bigr).

Argumen pertama, N,N, mengacu pada jumlah item yang dicari, dan argumen kedua, yang dalam hal ini adalah 1,1, 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 N=2nN = 2^n yang meningkat.

Np(N,1)20.500000000041.000000000080.9453125000160.9613189697320.9991823155640.99658568081280.99561986572560.99994704215120.999448026210240.999461244720480.999996847840960.999945346181920.9999157752163840.9999997811327680.9999868295655360.9999882596\begin{array}{ll} N & p(N,1)\\ \hline 2 & 0.5000000000\\ 4 & 1.0000000000\\ 8 & 0.9453125000\\ 16 & 0.9613189697\\ 32 & 0.9991823155\\ 64 & 0.9965856808\\ 128 & 0.9956198657\\ 256 & 0.9999470421\\ 512 & 0.9994480262\\ 1024 & 0.9994612447\\ 2048 & 0.9999968478\\ 4096 & 0.9999453461\\ 8192 & 0.9999157752\\ 16384 & 0.9999997811\\ 32768 & 0.9999868295\\ 65536 & 0.9999882596 \end{array}

Perhatikan bahwa probabilitas ini tidak meningkat secara ketat. Khususnya, kita memiliki anomali menarik ketika N=4,N=4, di mana kita mendapatkan solusi dengan kepastian. Namun, dapat dibuktikan secara umum bahwa

p(N,1)β‰₯1βˆ’1Np(N,1) \geq 1 - \frac{1}{N}

untuk semua N,N, sehingga probabilitas keberhasilan mendekati 11 dalam batas ketika NN menjadi besar, seperti yang tampaknya disarankan nilai-nilai di atas. Ini bagus!

Tapi perhatikan, bagaimanapun, bahwa bahkan batas lemah seperti p(N,1)β‰₯1/2p(N,1) \geq 1/2 menetapkan kegunaan algoritma Grover. Untuk hasil pengukuran xx apapun yang kita peroleh dari menjalankan prosedur, kita selalu bisa memeriksa apakah f(x)=1f(x) = 1 menggunakan satu kueri ke f.f. Dan jika kita gagal mendapatkan string unik xx di mana f(x)=1f(x) = 1 dengan probabilitas paling banyak 1/21/2 dengan menjalankan prosedur sekali, maka setelah mm jalankan independen dari prosedur kita akan gagal mendapatkan string unik xx ini dengan probabilitas paling banyak 2βˆ’m.2^{-m}. Artinya, menggunakan kueri O(mN)O(m \sqrt{N}) ke f,f, kita akan mendapatkan solusi unik xx dengan probabilitas setidaknya 1βˆ’2βˆ’m.1 - 2^{-m}. Menggunakan batas yang lebih baik p(N,1)β‰₯1βˆ’1/Np(N,1) \geq 1 - 1/N mengungkapkan bahwa probabilitas menemukan x∈A1x\in A_1 menggunakan metode ini sebenarnya setidaknya 1βˆ’Nβˆ’m.1 - N^{-m}.

Beberapa solusi​

Saat jumlah elemen di A1A_1 bervariasi, begitu pula sudut ΞΈ,\theta, yang bisa memiliki efek signifikan pada probabilitas keberhasilan algoritma. Untuk singkatnya, mari kita tulis s=∣A1∣s = \vert A_1 \vert untuk menyatakan jumlah solusi, dan seperti sebelumnya kita akan asumsikan bahwa sβ‰₯1.s\geq 1.

Sebagai contoh motivasi, bayangkan kita memiliki s=4s = 4 solusi daripada solusi tunggal, seperti yang kita pertimbangkan di atas. Ini berarti bahwa

ΞΈ=sinβ‘βˆ’1(4N),\theta = \sin^{-1}\biggl( \sqrt{\frac{4}{N}} \biggr),

yang kira-kira dua kali lipat sudut yang kita miliki dalam kasus ∣A1∣=1\vert A_1 \vert = 1 ketika NN besar. Misalkan kita tidak tahu lebih baik, dan memilih nilai tt yang sama seperti dalam pengaturan solusi unik:

t=βŒŠΟ€4sinβ‘βˆ’1(1/N)βŒ‹.t = \Biggl\lfloor \frac{\pi}{4\sin^{-1}\bigl(1/\sqrt{N}\bigr)}\Biggr\rfloor.

Efeknya akan bencana seperti yang diungkapkan tabel probabilitas berikut.

NProbabilitasΒ keberhasilan41.000000000080.5000000000160.2500000000320.0122070313640.02038076891280.01445307582560.00007050585120.001931074110240.002300908320480.000007750640960.000230150281920.0003439882163840.0000007053327680.0000533810655360.0000472907\begin{array}{ll} N & \text{Probabilitas keberhasilan}\\ \hline 4 & 1.0000000000\\ 8 & 0.5000000000\\ 16 & 0.2500000000\\ 32 & 0.0122070313\\ 64 & 0.0203807689\\ 128 & 0.0144530758\\ 256 & 0.0000705058\\ 512 & 0.0019310741\\ 1024 & 0.0023009083\\ 2048 & 0.0000077506\\ 4096 & 0.0002301502\\ 8192 & 0.0003439882\\ 16384 & 0.0000007053\\ 32768 & 0.0000533810\\ 65536 & 0.0000472907 \end{array}

Kali ini probabilitas keberhasilan mendekati 00 saat NN 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 ∣A1⟩\vert A_1\rangle dan mendarat di dekat βˆ’βˆ£A0⟩.-\vert A_0\rangle.

Namun, jika sebaliknya kita menggunakan pilihan tt yang direkomendasikan, yaitu

t=βŒŠΟ€4ΞΈβŒ‹t = \Bigl\lfloor \frac{\pi}{4\theta}\Bigr\rfloor

untuk

ΞΈ=sinβ‘βˆ’1(sN),\theta = \sin^{-1}\biggl( \sqrt{\frac{s}{N}} \biggr),

maka kinerjanya akan lebih baik. Lebih tepatnya, menggunakan pilihan tt ini mengarah pada keberhasilan dengan probabilitas tinggi.

Np(N,4)41.000000000080.5000000000161.0000000000320.9453125000640.96131896971280.99918231552560.99658568085120.995619865710240.999947042120480.999448026240960.999461244781920.9999968478163840.9999453461327680.9999157752655360.9999997811\begin{array}{ll} N & p(N,4)\\ \hline 4 & 1.0000000000\\ 8 & 0.5000000000\\ 16 & 1.0000000000\\ 32 & 0.9453125000\\ 64 & 0.9613189697\\ 128 & 0.9991823155\\ 256 & 0.9965856808\\ 512 & 0.9956198657\\ 1024 & 0.9999470421\\ 2048 & 0.9994480262\\ 4096 & 0.9994612447\\ 8192 & 0.9999968478\\ 16384 & 0.9999453461\\ 32768 & 0.9999157752\\ 65536 & 0.9999997811 \end{array}

Menggeneralisasi apa yang diklaim sebelumnya, dapat dibuktikan bahwa

p(N,s)β‰₯1βˆ’sN,p(N,s) \geq 1 - \frac{s}{N},

di mana kita menggunakan notasi yang disarankan sebelumnya: p(N,s)p(N,s) menyatakan probabilitas bahwa algoritma Grover yang dijalankan untuk tt iterasi mengungkapkan solusi ketika ada ss solusi dari NN kemungkinan secara total.

Batas bawah 1βˆ’s/N1 - s/N pada probabilitas keberhasilan ini sedikit aneh karena lebih banyak solusi berarti batas bawah yang lebih buruk β€” tetapi dengan asumsi bahwa ss jauh lebih kecil dari N,N, kita tetap menyimpulkan bahwa probabilitas keberhasilan cukup tinggi. Seperti sebelumnya, fakta sederhana bahwa p(N,s)p(N,s) cukup besar menyiratkan kegunaan algoritma.

Kebetulan juga berlaku bahwa

p(N,s)β‰₯sN.p(N,s) \geq \frac{s}{N}.

Batas bawah ini mendeskripsikan probabilitas bahwa string x∈Σnx\in\Sigma^n yang dipilih secara seragam acak adalah solusi β€” jadi algoritma Grover selalu setidaknya sebaik tebakan acak. (Faktanya, ketika t=0,t=0, algoritma Grover adalah tebakan acak.)

Sekarang mari kita lihat jumlah iterasi (dan karenanya jumlah kueri)

t=βŒŠΟ€4ΞΈβŒ‹,t = \Bigl\lfloor \frac{\pi}{4\theta}\Bigr\rfloor,

untuk

ΞΈ=sinβ‘βˆ’1(sN).\theta = \sin^{-1}\biggl(\sqrt{\frac{s}{N}}\biggr).

Untuk setiap α∈[0,1],\alpha \in [0,1], berlaku bahwa sinβ‘βˆ’1(Ξ±)β‰₯Ξ±,\sin^{-1}(\alpha)\geq \alpha, sehingga

ΞΈ=sinβ‘βˆ’1(sN)β‰₯sN.\theta = \sin^{-1}\left(\sqrt{\frac{s}{N}}\right) \geq \sqrt{\frac{s}{N}}.

Ini berarti bahwa

t≀π4θ≀π4Ns.t \leq \frac{\pi}{4\theta} \leq \frac{\pi}{4}\sqrt{\frac{N}{s}}.

Ini diterjemahkan menjadi penghematan dalam jumlah kueri seiring ss meningkat. Khususnya, jumlah kueri yang diperlukan adalah

O(Ns).O\biggl(\sqrt{\frac{N}{s}}\biggr).

Jumlah solusi yang tidak diketahui​

Jika jumlah solusi s=∣A1∣s = \vert A_1 \vert tidak diketahui, maka diperlukan pendekatan yang berbeda, karena dalam situasi ini kita tidak memiliki pengetahuan tentang ss untuk menginformasikan pilihan tt kita. Sebenarnya ada beberapa pendekatan.

Satu pendekatan sederhana adalah memilih

t∈{1,…,βŒŠΟ€N/4βŒ‹}t \in \Bigl\{ 1,\ldots,\bigl\lfloor\pi\sqrt{N}/4\bigr\rfloor \Bigr\}

secara seragam acak. Memilih tt dengan cara ini selalu menemukan solusi (dengan asumsi ada) dengan probabilitas lebih dari 40%, meskipun ini tidak jelas dan memerlukan analisis yang tidak akan disertakan di sini. Namun masuk akal, terutama ketika kita memikirkan gambaran geometris: merotasi keadaan Q\mathsf{Q} sejumlah acak kali seperti ini tidak jauh berbeda dari memilih vektor satuan acak dalam ruang yang dibentangkan oleh ∣A0⟩\vert A_0\rangle dan ∣A1⟩,\vert A_1\rangle, yang kemungkinan besar koefisien ∣A1⟩\vert A_1\rangle cukup besar. Dengan mengulangi prosedur ini dan memeriksa hasilnya dengan cara yang sama seperti yang dijelaskan sebelumnya, probabilitas menemukan solusi dapat dibuat sangat dekat dengan 1.1.

Ada metode yang lebih baik yang menemukan solusi ketika ada satu menggunakan kueri O(N/s),O(\sqrt{N/s}), bahkan ketika jumlah solusi ss tidak diketahui, dan memerlukan kueri O(N)O(\sqrt{N}) untuk menentukan bahwa tidak ada solusi ketika s=0.s=0.

Ide dasarnya adalah memilih tt secara seragam acak dari himpunan {1,…,T}\{1,\ldots,T\} secara iteratif, untuk nilai TT yang meningkat. Khususnya, kita bisa mulai dengan T=1T = 1 dan meningkatkannya secara eksponensial, selalu menghentikan proses segera setelah solusi ditemukan dan membatasi TT agar tidak membuang kueri ketika tidak ada solusi. Prosesnya memanfaatkan fakta bahwa lebih sedikit kueri diperlukan ketika lebih banyak solusi ada. Namun diperlukan kehati-hatian, untuk menyeimbangkan laju pertumbuhan TT dengan probabilitas keberhasilan setiap iterasi. (Mengambil Tβ†βŒˆ54TβŒ‰T \leftarrow \lceil \frac{5}{4}T\rceil misalnya, bekerja, seperti yang diungkapkan analisis. Menggandakan T,T, bagaimanapun, tidak β€” ini ternyata terlalu cepat peningkatannya.)

Kasus trivial​

Sepanjang analisis yang baru saja kita lakukan, kita telah mengasumsikan bahwa jumlah solusi bukan nol. Memang, dengan mengacu pada vektor

∣A0⟩=1∣A0βˆ£βˆ‘x∈A0∣x⟩∣A1⟩=1∣A1βˆ£βˆ‘x∈A1∣x⟩\begin{aligned} \vert A_0\rangle &= \frac{1}{\sqrt{\vert A_0\vert}} \sum_{x\in A_0} \vert x\rangle \\ \vert A_1\rangle &= \frac{1}{\sqrt{\vert A_1\vert}} \sum_{x\in A_1} \vert x\rangle \end{aligned}

kita secara implisit telah mengasumsikan bahwa A0A_0 dan A1A_1 keduanya tidak kosong. Di sini kita akan secara singkat mempertimbangkan apa yang terjadi ketika salah satu dari himpunan ini kosong.

Sebelum kita repot-repot menganalisis, mari kita amati hal yang jelas: jika setiap string x∈Σnx\in\Sigma^n adalah solusi, maka kita akan melihat solusi ketika kita mengukur; dan ketika tidak ada solusi, kita tidak akan melihat satu pun. Dalam arti tertentu tidak perlu lebih jauh dari ini.

Namun, kita bisa dengan cepat memverifikasi matematika untuk kasus-kasus trivial ini. Situasi di mana salah satu dari A0A_0 dan A1A_1 kosong terjadi ketika ff konstan; A1A_1 kosong ketika f(x)=0f(x) = 0 untuk setiap x∈Σn,x\in\Sigma^n, dan A0A_0 kosong ketika f(x)=1f(x) = 1 untuk setiap x∈Σn.x\in\Sigma^n. Ini berarti bahwa

Zf∣u⟩=±∣u⟩,Z_f \vert u\rangle = \pm \vert u\rangle,

dan oleh karena itu

G∣u⟩=(2∣u⟩⟨uβˆ£βˆ’I)Zf∣u⟩=Β±(2∣u⟩⟨uβˆ£βˆ’I)∣u⟩=±∣u⟩.\begin{aligned} G \vert u \rangle & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) Z_f\vert u\rangle \\ & = \pm \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) \vert u\rangle \\ & = \pm \vert u\rangle. \end{aligned}

Jadi, terlepas dari jumlah iterasi tt yang kita lakukan dalam kasus-kasus ini, pengukuran akan selalu mengungkapkan string acak seragam x∈Σn.x\in\Sigma^n.

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