Lumaktaw sa pangunahing nilalaman

Paglalarawan ng algorithm ni Grover

Sa seksyong ito, ilalarawan natin ang algorithm ni Grover. Magsisimula tayo sa pagtalakay sa phase query gates at kung paano itayo ang mga ito, kasunod ng paglalarawan ng algorithm mismo. Sa huli, tatalakayin natin nang maikli kung paano natural na inilalapat ang algorithm na ito sa paghahanap.

Mga phase query gate​

Gumagamit ang algorithm ni Grover ng mga operasyong kilala bilang phase query gates. Kaiba sa isang ordinaryong query gate na Uf,U_f, na tinukoy para sa isang ibinigay na function na ff sa karaniwang paraan na inilarawan dati, ang phase query gate para sa function na ff ay tinukoy bilang

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

para sa bawat string na x∈Σn.x\in\Sigma^n.

Ang operasyong ZfZ_f ay maaaring ipatupad gamit ang isang query gate na UfU_f gaya ng iminumungkahi ng diagram na ito:

A quantum circuit implementing a Z_f gate using one query gate together with the phase kickback phenomenon

Gumagamit ang implementasyong ito ng phenomenon na phase kickback, at kailangan nitong magkaroon ng isang workspace qubit, na sinimulan sa βˆ£βˆ’βŸ©\vert -\rangle na estado. Nananatili ang qubit na ito sa βˆ£βˆ’βŸ©\vert - \rangle na estado pagkatapos makumpleto ang implementasyon, at maaaring gamitin ulit (para ipatupad ang mga kasunod na ZfZ_f gate, halimbawa) o basta itapon na lang.

Bukod sa operasyong Zf,Z_f, gagamitin din natin ang isang phase query gate para sa nn-bit OR function, na tinukoy tulad ng sumusunod para sa bawat string na 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}

Partikular, ang phase query gate para sa nn-bit OR function ay gumagana nang ganito:

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}

Para maging malinaw, ito ang paraan ng paggugunapawa ng ZORZ_{\mathrm{OR}} sa mga standard basis state; ang gawi nito sa mga arbitrary na estado ay natutukoy mula sa expression na ito sa pamamagitan ng linearity.

Ang operasyong ZORZ_{\mathrm{OR}} ay maaaring ipatupad bilang isang quantum circuit sa pamamagitan ng pagsisimula sa isang Boolean circuit para sa OR function, pagkatapos ay gumawa ng operasyong UORU_{\mathrm{OR}} (iyon ay, isang standard query gate para sa nn-bit OR function) gamit ang pamamaraang inilarawan sa aralin na Quantum algorithmic foundations, at sa wakas ang operasyong ZORZ_{\mathrm{OR}} gamit ang phase kickback phenomenon gaya ng inilarawan sa itaas. Pansinin na ang operasyong ZORZ_{\mathrm{OR}} ay walang depensya sa function na ff kaya maaari itong ipatupad ng isang quantum circuit na walang mga query gate.

Paglalarawan ng algorithm​

Ngayong mayroon na tayong dalawang operasyong ZfZ_f at ZOR,Z_{\mathrm{OR}}, maaari na nating ilarawan ang algorithm ni Grover.

Binabanggit ng algorithm ang isang bilang na t,t, na siyang bilang ng mga iteration na ginagawa nito (at samakatuwid ang bilang ng mga query sa function na ff na kailangan nito). Hindi tinutukoy ng algorithm ni Grover ang bilang na tt na ito ayon sa ating paglalarawan, at tatalakayin natin sa ibang pagkakataon sa aralin kung paano ito pipiliin.

Algorithm ni Grover
  1. I-initialize ang isang nn qubit register na Q\mathsf{Q} sa all-zero state na ∣0n⟩\vert 0^n \rangle at pagkatapos ay mag-apply ng Hadamard operation sa bawat qubit ng Q.\mathsf{Q}.
  2. I-apply nang tt beses ang unitary operation na G=HβŠ—nZORHβŠ—nZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f sa register na Q\mathsf{Q}
  3. Sukatin ang mga qubit ng Q\mathsf{Q} gamit ang mga standard basis measurement at i-output ang resultang string.

Ang operasyong G=HβŠ—nZORHβŠ—nZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f na paulit-ulit sa hakbang 2 ay tatawagin na Grover operation sa natitirang bahagi ng araling ito. Narito ang isang quantum circuit na representasyon ng Grover operation kapag n=7 ⁣:n=7\!:

A quantum circuit representation of the Grover operation

Sa diagram na ito, ang operasyong ZfZ_f ay inilalarawan na mas malaki kaysa sa ZORZ_{\mathrm{OR}} bilang isang impormal na biswal na pahiwatig na malamang na ito ang mas mahal na operasyon. Partikular, kapag nagtatrabaho tayo sa loob ng query model, ang ZfZ_f ay nangangailangan ng isang query habang ang ZORZ_{\mathrm{OR}} ay hindi nangangailangan ng mga query. Kung sa halip mayroon tayong Boolean circuit para sa function na f,f, at pagkatapos ay i-convert ito sa isang quantum circuit para sa Zf,Z_f, maaari tayong makatwirang asahan na ang resultang quantum circuit ay magiging mas malaki at mas kumplikado kaysa sa isang para sa ZOR.Z_{\mathrm{OR}}.

Narito ang isang diagram ng isang quantum circuit para sa buong algorithm kapag n=7n=7 at t=3.t=3. Para sa mas malalaking halaga ng tt maaari tayong magsingit ng mga karagdagang instance ng Grover operation agad bago ang mga sukat.

A quantum circuit for Grover's algorithm when t=3

Ang algorithm ni Grover ay maaaring ilapat sa problemang Search tulad ng sumusunod:

  • Pumili ng bilang na tt sa hakbang 2. (Ito ay tatalakayin sa ibang pagkakataon sa aralin.)
  • Patakbuhin ang algorithm ni Grover sa function na f,f, gamit ang anumang pagpili na ginawa natin para sa t,t, para makakuha ng string na x∈Σn.x\in\Sigma^n.
  • I-query ang function na ff sa string na xx para malaman kung ito ay valid na solusyon:
    • Kung f(x)=1,f(x) = 1, nakahanap na tayo ng solusyon, kaya maaari tayong huminto at i-output ang x.x.
    • Kung hindi, kung f(x)=0,f(x) = 0, maaari tayong muling patakbuhin ang pamamaraan, posibleng may ibang pagpili para sa t,t, o maaari tayong magpasyang sumuko at i-output ang "walang solusyon."

Kapag nasuri na natin kung paano gumagana ang algorithm ni Grover, makikita natin na sa pag-take ng t=O(N),t = O(\sqrt{N}), makakakuha tayo ng solusyon sa ating search problem (kung mayroon) nang may mataas na posibilidad.