Langkau ke kandungan utama

Memilih bilangan iterasi

Kita telah menetapkan bahawa vektor keadaan daftar Q\mathsf{Q} dalam algoritma Grover kekal dalam subruang dua dimensi yang dijangkau oleh ∣A0⟩\vert A_0\rangle dan ∣A1⟩\vert A_1\rangle setelah langkah inisialisasi dilakukan.

Matlamatnya adalah untuk mencari unsur x∈A1,x\in A_1, dan matlamat ini akan dicapai jika kita dapat memperoleh keadaan ∣A1⟩\vert A_1\rangle β€” kerana jika kita mengukur keadaan ini, kita dijamin mendapat hasil ukuran x∈A1.x\in A_1. Memandangkan keadaan Q\mathsf{Q} selepas tt iterasi dalam 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 supaya

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

sedekat mungkin kepada 11 dalam nilai mutlak, untuk memaksimumkan kebarangkalian memperoleh x∈A1x\in A_1 daripada pengukuran. Untuk mana-mana sudut θ∈(0,2Ο€),\theta \in (0,2\pi), nilai sin⁑((2t+1)ΞΈ)\sin((2t + 1)\theta) berosilasi apabila tt meningkat, walaupun ia tidak semestinya berkala β€” tiada jaminan kita akan mendapat nilai yang sama dua kali.

Sudah tentu, selain daripada menjadikan kebarangkalian memperoleh unsur x∈A1x\in A_1 daripada pengukuran besar, kita juga ingin memilih tt sekecil mungkin, kerana tt penggunaan operasi GG memerlukan tt pertanyaan kepada fungsi f.f. Kerana kita bertujuan untuk menjadikan sin⁑((2t+1)θ)\sin( (2t + 1) \theta) hampir kepada 11 dalam nilai mutlak, cara semula jadi untuk melakukan ini adalah dengan memilih tt supaya

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

Menyelesaikan untuk tt menghasilkan

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

Sudah tentu, tt 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

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

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

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

kita melihat bahawa bilangan iterasi yang disyorkan tt bergantung kepada bilangan rentetan dalam A1.A_1. Ini menimbulkan cabaran jika kita tidak tahu berapa banyak penyelesaian yang ada, seperti yang akan kita bincangkan kemudian.

Pertama, mari kita fokus pada situasi di mana terdapat satu rentetan tunggal xx sedemikian rupa sehingga f(x)=1.f(x)=1. Cara lain untuk menyatakannya ialah kita sedang mempertimbangkan suatu contoh masalah carian Unik. Dalam kes ini kita ada

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

yang boleh dianggarkan secara mudah sebagai

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

apabila NN menjadi besar. Jika kita gantikan ΞΈ=1/N\theta = 1/\sqrt{N} ke dalam ungkapan

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

kita memperoleh

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

Dengan mengingat bahawa tt bukan sahaja bilangan kali operasi GG dilakukan, tetapi juga bilangan pertanyaan kepada fungsi ff yang diperlukan oleh algoritma, kita melihat bahawa kita sedang menuju kepada algoritma yang memerlukan O(N)O(\sqrt{N}) pertanyaan.

Sekarang kita akan menyiasat seberapa baik pilihan tt yang disyorkan berfungsi. Kebarangkalian bahawa pengukuran akhir menghasilkan penyelesaian unik boleh dinyatakan secara eksplisit sebagai

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

Hujah pertama, N,N, merujuk kepada bilangan item yang kita cari, dan hujah kedua, yang merupakan 11 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 N=2nN = 2^n yang semakin 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 bahawa kebarangkalian ini tidak meningkat secara ketat. Khususnya, kita mempunyai anomali menarik apabila N=4,N=4, di mana kita mendapat penyelesaian dengan kepastian. Namun, secara umum boleh dibuktikan bahawa

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

untuk semua N,N, jadi kebarangkalian kejayaan menuju kepada 11 dalam had apabila NN menjadi besar, seperti yang dicadangkan oleh nilai di atas. Ini bagus!

Tapi perhatikan, walau bagaimanapun, bahawa walaupun sempadan lemah seperti p(N,1)β‰₯1/2p(N,1) \geq 1/2 membuktikan kegunaan algoritma Grover. Untuk apa jua hasil ukuran xx yang kita peroleh daripada menjalankan prosedur, kita sentiasa boleh menyemak sama ada f(x)=1f(x) = 1 menggunakan satu pertanyaan kepada f.f. Dan jika kita gagal memperoleh rentetan unik xx yang f(x)=1f(x) = 1 dengan kebarangkalian paling banyak 1/21/2 dengan menjalankan prosedur sekali, maka selepas mm jalan bebas prosedur kita akan gagal memperoleh rentetan unik xx ini dengan kebarangkalian paling banyak 2βˆ’m.2^{-m}. Iaitu, menggunakan O(mN)O(m \sqrt{N}) pertanyaan kepada f,f, kita akan memperoleh penyelesaian unik xx dengan kebarangkalian sekurang-kurangnya 1βˆ’2βˆ’m.1 - 2^{-m}. Menggunakan sempadan yang lebih baik p(N,1)β‰₯1βˆ’1/Np(N,1) \geq 1 - 1/N mendedahkan bahawa kebarangkalian untuk mencari x∈A1x\in A_1 menggunakan kaedah ini sebenarnya sekurang-kurangnya 1βˆ’Nβˆ’m.1 - N^{-m}.

Pelbagai penyelesaian​

Apabila bilangan unsur dalam A1A_1 berubah, begitu juga sudut ΞΈ,\theta, yang boleh memberi kesan ketara kepada kebarangkalian kejayaan algoritma. Untuk ringkas, mari kita tulis s=∣A1∣s = \vert A_1 \vert untuk menandakan bilangan penyelesaian, dan seperti sebelum ini kita akan anggap bahawa sβ‰₯1.s\geq 1.

Sebagai contoh motivasi, mari kita bayangkan kita mempunyai s=4s = 4 penyelesaian berbanding satu penyelesaian tunggal, seperti yang kita pertimbangkan di atas. Ini bermakna

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

yang kira-kira dua kali ganda sudut yang kita ada dalam kes ∣A1∣=1\vert A_1 \vert = 1 apabila NN besar. Andaikan kita tidak tahu lebih baik, dan memilih nilai tt yang sama seperti dalam tetapan penyelesaian unik:

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

Kesannya akan menjadi bencana seperti yang ditunjukkan oleh jadual kebarangkalian berikut.

NKebarangkalianΒ kejayaan41.000000000080.5000000000160.2500000000320.0122070313640.02038076891280.01445307582560.00007050585120.001931074110240.002300908320480.000007750640960.000230150281920.0003439882163840.0000007053327680.0000533810655360.0000472907\begin{array}{ll} N & \text{Kebarangkalian kejayaan}\\ \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 kebarangkalian kejayaan menuju kepada 00 apabila NN menuju kepada infiniti. Ini berlaku kerana kita secara efektifnya berputar dua kali lebih cepat berbanding apabila terdapat penyelesaian unik, jadi kita terlepas sasaran ∣A1⟩\vert A_1\rangle dan mendarat berhampiran βˆ’βˆ£A0⟩.-\vert A_0\rangle.

Namun, jika sebaliknya kita menggunakan pilihan tt yang disyorkan, iaitu

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 prestasinya akan lebih baik. Untuk lebih tepat, menggunakan pilihan tt ini membawa kepada kejayaan dengan kebarangkalian 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}

Mengeneralisasikan apa yang dituntut sebelum ini, boleh dibuktikan bahawa

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

di mana kita menggunakan notasi yang dicadangkan sebelum ini: p(N,s)p(N,s) menandakan kebarangkalian bahawa algoritma Grover yang dijalankan selama tt iterasi mendedahkan satu penyelesaian apabila terdapat ss penyelesaian secara keseluruhan daripada NN kemungkinan.

Sempadan bawah 1βˆ’s/N1 - s/N pada kebarangkalian kejayaan ini agak pelik dalam erti kata bahawa lebih banyak penyelesaian bermakna sempadan bawah yang lebih lemah β€” tetapi dengan andaian bahawa ss jauh lebih kecil daripada N,N, kita tetap menyimpulkan bahawa kebarangkalian kejayaan agak tinggi. Seperti sebelum ini, hakikat semata-mata bahawa p(N,s)p(N,s) agak besar menyiratkan kegunaan algoritma.

Ia juga berlaku bahawa

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

Sempadan bawah ini menerangkan kebarangkalian bahawa rentetan x∈Σnx\in\Sigma^n yang dipilih secara rawak seragam adalah satu penyelesaian β€” jadi algoritma Grover selalu melakukan sekurang-kurangnya sebaik meneka secara rawak. (Sebenarnya, apabila t=0,t=0, algoritma Grover adalah meneka secara rawak.)

Sekarang mari kita lihat bilangan iterasi (dan seterusnya bilangan pertanyaan)

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], adalah benar bahawa sinβ‘βˆ’1(Ξ±)β‰₯Ξ±,\sin^{-1}(\alpha)\geq \alpha, dan oleh itu

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

Ini menyiratkan bahawa

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

Ini diterjemahkan kepada penjimatan dalam bilangan pertanyaan apabila ss bertumbuh. Khususnya, bilangan pertanyaan yang diperlukan adalah

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

Bilangan penyelesaian yang tidak diketahui​

Jika bilangan penyelesaian s=∣A1∣s = \vert A_1 \vert adalah tidak diketahui, maka pendekatan yang berbeza diperlukan, kerana dalam situasi ini kita tidak mempunyai pengetahuan tentang ss untuk memaklumkan pilihan tt kita. Sebenarnya, terdapat pelbagai pendekatan.

Satu pendekatan mudah adalah dengan memilih

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

secara rawak seragam. Memilih tt 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 Q\mathsf{Q} beberapa kali secara rawak seperti ini tidak jauh berbeza daripada memilih vektor unit rawak dalam ruang yang dijangkau oleh ∣A0⟩\vert A_0\rangle dan ∣A1⟩,\vert A_1\rangle, yang berkemungkinan besar pekali ∣A1⟩\vert A_1\rangle 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 1.1.

Terdapat kaedah yang lebih halus yang menemukan penyelesaian apabila terdapat satu menggunakan O(N/s)O(\sqrt{N/s}) pertanyaan, walaupun apabila bilangan penyelesaian ss tidak diketahui, dan memerlukan O(N)O(\sqrt{N}) pertanyaan untuk menentukan bahawa tiada penyelesaian apabila s=0.s=0.

Idea asasnya adalah memilih tt secara rawak seragam daripada set {1,…,T}\{1,\ldots,T\} secara berulang, untuk nilai TT yang semakin meningkat. Khususnya, kita boleh mulakan dengan T=1T = 1 dan meningkatkannya secara eksponen, sentiasa menamatkan proses sebaik sahaja penyelesaian ditemui dan mengehadkan TT 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 TT dengan kebarangkalian kejayaan untuk setiap iterasi. (Mengambil Tβ†βŒˆ54TβŒ‰T \leftarrow \lceil \frac{5}{4}T\rceil berfungsi, misalnya, seperti yang ditunjukkan oleh analisis. Menggandakan T,T, 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

∣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 tersirat mengandaikan bahawa A0A_0 dan A1A_1 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 x∈Σnx\in\Sigma^n 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 A0A_0 dan A1A_1 kosong berlaku apabila ff adalah malar; A1A_1 kosong apabila f(x)=0f(x) = 0 untuk setiap x∈Σn,x\in\Sigma^n, dan A0A_0 kosong apabila f(x)=1f(x) = 1 untuk setiap x∈Σn.x\in\Sigma^n. Ini bermakna

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

dan oleh 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, tanpa mengira bilangan iterasi tt yang kita lakukan dalam kes-kes ini, pengukuran akan sentiasa mendedahkan rentetan rawak 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. 26 Mac 2026