Lumaktaw sa pangunahing nilalaman

Pagpili ng bilang ng iterations

Napatunayan na natin na ang state vector ng register Q\mathsf{Q} sa Grover's algorithm ay nananatili sa two-dimensional subspace na sinasaklaw ng ∣A0⟩\vert A_0\rangle at ∣A1⟩\vert A_1\rangle kapag natapos na ang initialization step.

Ang layunin ay mahanap ang isang elemento x∈A1,x\in A_1, at maaabot ito kung makukuha natin ang state ∣A1⟩\vert A_1\rangle β€” dahil kapag sinukat natin ang state na ito, garantisadong makukuha natin ang measurement outcome na x∈A1.x\in A_1. Dahil ang state ng Q\mathsf{Q} pagkatapos ng tt iterations sa step 2 ay

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,

dapat nating piliin ang tt upang

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

ay maging kalapit ng 11 hangga't maaari sa absolute value, para mapalaki ang probabilidad na makakuha ng x∈A1x\in A_1 mula sa measurement. Para sa anumang anggulo θ∈(0,2Ο€),\theta \in (0,2\pi), ang halaga ng sin⁑((2t+1)ΞΈ)\sin((2t + 1)\theta) ay nag-o-oscillate habang tumataas ang tt, kahit hindi ito kailangang peryodiko β€” walang garantiya na makukuha natin ang parehong halaga ng dalawang beses.

Natural na, bukod sa pagiging malaki ng probabilidad na makakuha ng elemento x∈A1x\in A_1 mula sa measurement, nais din nating piliin ang pinakamaliit na tt hangga't maaari, dahil ang tt na aplikasyon ng operasyon GG ay nangangailangan ng tt na queries sa function f.f. Dahil layunin nating gawing malapit sa 11 ang sin⁑((2t+1)θ)\sin( (2t + 1) \theta) sa absolute value, isang natural na paraan ay ang pumili ng tt upang

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

Kapag sinolve para sa tt makukuha natin ang

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

Siyempre, dapat integer ang tt, kaya hindi natin palaging maaabot nang eksakto ang halagang ito β€” ngunit ang magagawa natin ay ang kumuha ng pinakamalapit na integer sa halagang ito, na kung saan ay

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

Ito ang inirerekomendang bilang ng iterations para sa Grover's algorithm. Habang tinatapusin ang pagsusuri, makikita natin na ang pagiging malapit ng integer na ito sa target na halaga ay natural na nakakaapekto sa performance ng algorithm.

(Bilang paalala, kung ang target na halaga na Ο€/(4ΞΈ)βˆ’1/2\pi/(4\theta) - 1/2 ay eksaktong nasa kalagitnaan ng dalawang integer, ang expression na ito ng tt ang makukuha sa pamamagitan ng pag-round up. Maaari ring i-round down, na mas makatuwirang gawin dahil nangangahulugang isang query na mas kaunti β€” ngunit ito ay pangalawa at hindi mahalaga para sa layunin ng aralin.)

Alalahanin na ang halaga ng anggulo ΞΈ\theta ay ibinibigay ng formula

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

makikita natin na ang inirerekomendang bilang ng iterations na tt ay nakasalalay sa bilang ng mga string sa A1.A_1. Nagdudulot ito ng hamon kung hindi natin alam kung gaano karaming solusyon mayroon tayo, tulad ng tatalakayin natin sa ibang pagkakataon.

Una, tukuyin natin ang sitwasyon kung saan mayroon lamang isang string na xx na f(x)=1.f(x)=1. Isa pang paraan ng pagsabi nito ay isinasaalang-alang natin ang isang instance ng problema ng Unique search. Sa kasong ito mayroon tayong

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

na maaaring maginhawang i-approximate bilang

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

kapag nagiging malaki ang N.N. Kung papalitan natin ng ΞΈ=1/N\theta = 1/\sqrt{N} sa expression na

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

makukuha natin

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

Alalahanin na ang tt ay hindi lamang ang bilang ng beses na ginagawa ang operasyon GG, kundi pati na rin ang bilang ng queries sa function ff na kailangan ng algorithm, kaya nakikita nating papalapit na tayo sa pagkuha ng algorithm na nangangailangan ng O(N)O(\sqrt{N}) na queries.

Ngayon ay susuriin natin kung gaano kahusay ang inirerekomendang pagpili ng t.t. Ang probabilidad na ang panghuling measurement ay magreresulta sa natatanging solusyon ay maaaring ipahayag nang malinaw bilang

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

Ang unang argument, N,N, ay tumutukoy sa bilang ng mga item na hinahanap natin, at ang pangalawang argument, na 11 sa kasong ito, ay tumutukoy sa bilang ng mga solusyon. Kalaunan ay gagamitin natin ang parehong notasyon nang mas pangkalahataan, kung saan may maramihang solusyon.

Narito ang isang talahanayan ng mga probabilidad ng tagumpay para sa mga tumataas na halaga ng N=2n.N = 2^n.

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}

Pansinin na ang mga probabilidad na ito ay hindi mahigpit na tumataas. Partikular na, may kagiliw-giliw na anomalya kapag N=4,N=4, kung saan nakakakuha tayo ng solusyon nang may katiyakan. Ngunit maaaring mapatunayan sa pangkalahatan na

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

para sa lahat ng N,N, kaya ang probabilidad ng tagumpay ay papalapit sa 11 sa limitasyon habang nagiging malaki ang N,N, tulad ng iminumungkahi ng mga halagang nabanggit sa itaas. Maganda ito!

Ngunit pansinin, gayunpaman, na kahit isang mahinang hangganan tulad ng p(N,1)β‰₯1/2p(N,1) \geq 1/2 ay nagpapatunay ng utility ng Grover's algorithm. Para sa anumang measurement outcome na xx na makukuha natin mula sa pagpapatakbo ng pamamaraan, palagi nating masusuri kung f(x)=1f(x) = 1 gamit ang isang query sa f.f. At kung mabigo tayong makuha ang natatanging string xx na f(x)=1f(x) = 1 na may probabilidad na hindi hihigit sa 1/21/2 sa isang pagpapatakbo ng pamamaraan, pagkatapos ng mm na magkakalayong pagpapatakbo ng pamamaraan ay mabibigo tayong makuha ang natatanging string xx na ito na may probabilidad na hindi hihigit sa 2βˆ’m.2^{-m}. Ibig sabihin, gamit ang O(mN)O(m \sqrt{N}) na queries sa f,f, makukuha natin ang natatanging solusyon xx na may probabilidad na hindi bababa sa 1βˆ’2βˆ’m.1 - 2^{-m}. Gamit ang mas mahusay na hangganan na p(N,1)β‰₯1βˆ’1/Np(N,1) \geq 1 - 1/N makikita na ang probabilidad ng paghanap ng x∈A1x\in A_1 gamit ang pamamaraang ito ay talagang hindi bababa sa 1βˆ’Nβˆ’m.1 - N^{-m}.

Maramihang solusyon​

Habang nagbabago ang bilang ng mga elemento sa A1A_1, nagbabago rin ang anggulo ΞΈ,\theta, na maaaring magkaroon ng malaking epekto sa probabilidad ng tagumpay ng algorithm. Para sa brevity, isulat natin ang s=∣A1∣s = \vert A_1 \vert upang tukuyin ang bilang ng mga solusyon, at tulad ng dati ay ipagpalagay nating sβ‰₯1.s\geq 1.

Bilang motivating example, isipin natin na mayroon tayong s=4s = 4 na solusyon sa halip na isang solusyon, tulad ng tiningnan natin sa itaas. Ibig sabihin nito

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

na halos doble ng anggulo na mayroon tayo sa kaso ng ∣A1∣=1\vert A_1 \vert = 1 kapag malaki ang N.N. Ipagpalagay nating hindi natin alam nang mas mabuti, at pinili ang parehong halaga ng tt tulad sa setting ng natatanging solusyon:

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

Ang epekto ay magiging mapaminsala tulad ng ipinapakita ng sumusunod na talahanayan ng mga probabilidad.

NSuccessΒ probability41.000000000080.5000000000160.2500000000320.0122070313640.02038076891280.01445307582560.00007050585120.001931074110240.002300908320480.000007750640960.000230150281920.0003439882163840.0000007053327680.0000533810655360.0000472907\begin{array}{ll} N & \text{Success probability}\\ \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}

Sa pagkakataong ito ang probabilidad ng tagumpay ay papalapit sa 00 habang lumalaki ang N.N. Nangyayari ito dahil epektibo tayong umiikot nang doble ang bilis kumpara sa noong may natatanging solusyon, kaya nalalampasan natin ang target na ∣A1⟩\vert A_1\rangle at napupunta malapit sa βˆ’βˆ£A0⟩.-\vert A_0\rangle.

Gayunpaman, kung gagamitin natin ang inirerekomendang pagpili ng t,t, na kung saan ay

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

para sa

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

mas maganda ang magiging performance. Upang maging mas tiyak, ang paggamit ng pagpiling ito ng tt ay nagdudulot ng tagumpay na may mataas na probabilidad.

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}

Ginagawang pangkalahataan ang nabanggit nang mas maaga, maaaring mapatunayan na

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

kung saan ginagamit natin ang notasyong iminungkahi nang mas maaga: ang p(N,s)p(N,s) ay tumutukoy sa probabilidad na ang Grover's algorithm na pinatakbo para sa tt na iterations ay magsisiwalat ng solusyon kapag mayroon ss na solusyon sa kabuuan mula sa NN na posibilidad.

Ang lower bound na ito na 1βˆ’s/N1 - s/N sa probabilidad ng tagumpay ay medyo kakaiba dahil ang mas maraming solusyon ay nagbibigay ng mas masamang lower bound β€” ngunit sa ilalim ng pagpapalagay na ang ss ay makabuluhang mas maliit kaysa N,N, maaari pa ring masabi natin na ang probabilidad ng tagumpay ay medyo mataas. Tulad ng dati, ang katotohanan lamang na ang p(N,s)p(N,s) ay medyo malaki ay nagpapatunay ng utility ng algorithm.

Nangyayari rin na

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

Ang lower bound na ito ay naglalarawan ng probabilidad na ang isang string na x∈Σnx\in\Sigma^n na pinili nang random ay isang solusyon β€” kaya ang Grover's algorithm ay palaging hindi bababa sa random guessing. (Sa katunayan, kapag t=0,t=0, ang Grover's algorithm ay random guessing.)

Ngayon tingnan natin ang bilang ng iterations (at samakatuwid ang bilang ng queries)

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

para sa

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

Para sa bawat α∈[0,1],\alpha \in [0,1], totoo na ang sinβ‘βˆ’1(Ξ±)β‰₯Ξ±,\sin^{-1}(\alpha)\geq \alpha, kaya

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

Ipinapahiwatig nito na

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

Nagdudulot ito ng pagtitipid sa bilang ng queries habang lumalaki ang s.s. Partikular na, ang kinakailangang bilang ng queries ay

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

Hindi kilalang bilang ng solusyon​

Kung ang bilang ng mga solusyon na s=∣A1∣s = \vert A_1 \vert ay hindi kilala, kailangan ng ibang diskarte, dahil sa sitwasyong ito wala tayong kaalaman sa ss na magbibigay-impormasyon sa ating pagpili ng t.t. Sa katunayan, mayroon pang maraming diskarte.

Isang simpleng diskarte ay ang pumili ng

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

nang random na pantay-pantay. Ang pagpili ng tt sa ganitong paraan ay palaging nakakahanap ng solusyon (kung mayroon man) na may probabilidad na higit sa 40%, kahit hindi ito halata at nangangailangan ng pagsusuri na hindi isasama dito. Makatuwiran naman ito, partikular na kapag iniisip natin ang geometric na larawan: ang pag-ikot ng state ng Q\mathsf{Q} nang random na bilang ng beses tulad nito ay hindi iba sa pagpili ng random na unit vector sa space na sinasaklaw ng ∣A0⟩\vert A_0\rangle at ∣A1⟩,\vert A_1\rangle, na para sa mga iyon ay malamang na malaki ang coefficient ng ∣A1⟩.\vert A_1\rangle. Sa pamamagitan ng pag-uulit ng pamamaraang ito at pagsusuri ng outcome sa parehong paraan tulad ng inilarawan nang mas maaga, ang probabilidad na mahanap ang solusyon ay maaaring gawing malapit sa 1.1.

Mayroong isang pinahusay na pamamaraan na nakakahanap ng solusyon kapag mayroon gamit ang O(N/s)O(\sqrt{N/s}) na queries, kahit hindi kilala ang bilang ng solusyon na ss, at nangangailangan ng O(N)O(\sqrt{N}) na queries upang matukoy na walang solusyon kapag s=0.s=0.

Ang pangunahing ideya ay ang pumili ng tt nang random mula sa set na {1,…,T}\{1,\ldots,T\} nang paulit-ulit, para sa mga tumataas na halaga ng T.T. Partikular na, maaari tayong magsimula sa T=1T = 1 at taasan ito nang exponential, palaging tinatatapos ang proseso sa sandaling mahanap ang solusyon at nililimitahan ang TT upang hindi masayang ang mga queries kapag walang solusyon. Ginagamit ng proseso ang katotohanan na mas kaunting queries ang kailangan kapag mas maraming solusyon. Ngunit kailangan ng ilang pag-iingat upang balansehin ang rate ng paglaki ng TT sa probabilidad ng tagumpay para sa bawat iteration. (Ang paggamit ng Tβ†βŒˆ54TβŒ‰T \leftarrow \lceil \frac{5}{4}T\rceil ay gumagana, halimbawa, tulad ng ipinapakita ng pagsusuri. Ang pag-double ng T,T, gayunpaman, ay hindi gumagana β€” ito pala ay masyadong mabilis na pagtaas.)

Ang mga trivial na kaso​

Sa buong pagsusuri na ginawa natin ngayon, ipinagpalagay natin na ang bilang ng mga solusyon ay hindi zero. Sa katunayan, sa pamamagitan ng pagtukoy sa mga vector

∣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}

impliside nating ipinagpalagay na ang A0A_0 at A1A_1 ay parehong hindi walang laman. Dito natin titingnan nang maikli kung ano ang nangyayari kapag isa sa mga set na ito ay walang laman.

Bago pa man natin simulan ang pagsusuri, pansinin ang halata: kung bawat string na x∈Σnx\in\Sigma^n ay isang solusyon, makikita natin ang solusyon kapag nasukat natin; at kapag walang solusyon, hindi natin makikita ang isa. Sa ilang paraan ay hindi na kailangang pumunta pa nang mas malalim kaysa dito.

Maaari nating, gayunpaman, mabilis na i-verify ang matematika para sa mga trivial na kasong ito. Ang sitwasyon kung saan isa sa A0A_0 at A1A_1 ay walang laman ay nangyayari kapag constant ang ff; ang A1A_1 ay walang laman kapag f(x)=0f(x) = 0 para sa bawat x∈Σn,x\in\Sigma^n, at ang A0A_0 ay walang laman kapag f(x)=1f(x) = 1 para sa bawat x∈Σn.x\in\Sigma^n. Ibig sabihin nito

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

at samakatuwid

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}

Kaya, anuman ang bilang ng iterations na tt na ginagawa natin sa mga kasong ito, ang mga measurement ay palaging magsisiwalat ng uniform random string na x∈Σn.x\in\Sigma^n.