Mga quantum algorithm: Grover Search at mga aplikasyon
Atsushi Matsuo (Mayo 10, 2024)
I-download ang pdf ng orihinal na lektura. Tandaan na ang ilang code snippet ay maaaring maging deprecated dahil mga static na larawan ang mga ito.
Ang tinatayang QPU time para patakbuhin ang eksperimentong ito ay 2 segundo.
1. Panimula sa algoritmo ni Groverβ
Ang notebook na ito ang ikaapat sa isang serye ng mga lektura sa Path to Utility in Quantum Computing. Sa notebook na ito, matututunan natin ang tungkol sa algoritmo ni Grover.
Ang algoritmo ni Grover ay isa sa pinaka-kilalang quantum algorithm dahil sa quadratic speedup nito kumpara sa mga klasikal na paraan ng paghahanap. Sa klasikal na computing, ang paghahanap sa isang unsorted na database na may na elemento ay nangangailangan ng na time complexity, ibig sabihin, sa pinakamasamang kaso, maaaring kailanganin pang suriin ang bawat elemento nang isa-isa. Gayunpaman, ang algoritmo ni Grover ay nagbibigay-daan sa atin na makamit ang paghahanap na ito sa loob ng na oras, gamit ang mga prinsipyo ng quantum mechanics upang mas mahusay na matukoy ang target na elemento.
Gumagamit ang algoritmo ng amplitude amplification β isang proseso na nagpapataas ng probability amplitude ng tamang state sa isang quantum superposition, na nagbibigay-daan dito na masukat nang may mas mataas na posibilidad. Ang speedup na ito ay ginagawang mahalaga ang algoritmo ni Grover sa iba't ibang aplikasyon lampas sa simpleng paghahanap sa database, lalo na kapag malaki ang sukat ng dataset. Ang detalyadong paliwanag ng algoritmo ay makikita sa notebook ng algoritmo ni Grover.
Ang Pangunahing Estruktura ng Algoritmo ni Groverβ
Ang algoritmo ni Grover ay binubuo ng apat na pangunahing bahagi:
- Initialization: Pag-set up ng superposition sa lahat ng posibleng estado.
- Oracle: Pag-apply ng oracle function na nagtatanda sa target na estado sa pamamagitan ng pag-flip ng phase nito.
- Diffusion Operator: Pag-apply ng serye ng mga operasyon upang palakasin ang posibilidad ng namarkahang estado.
Ang bawat isa sa mga hakbang na ito ay may mahalagang papel sa epektibong paggana ng algoritmo. Ang detalyadong paliwanag para sa bawat hakbang ay makikita sa ibaba.
2. Pag-implement ng Algoritmo ni Groverβ
2.1 Paghahandaβ
I-import ang mga kinakailangang library at i-set up ang kapaligiran para sa pagpapatakbo ng quantum circuit.
# Added by doQumentation β required packages for this notebook
!pip install -q qiskit qiskit-aer qiskit-ibm-runtime
%config InlineBackend.figure_format = 'svg' # Makes the images look nice
# importing Qiskit
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
# import basic plot tools
from qiskit.visualization import plot_histogram
Hakbang 1: I-map ang problema sa mga quantum circuit at operatorβ
Isaalang-alang ang isang listahan ng 4 na elemento, kung saan ang ating layunin ay tukuyin ang index ng elementong nakakatugon sa isang tiyak na kondisyon. Halimbawa, gusto nating hanapin ang index ng elementong katumbas ng 2. Sa halimbawang ito, ang quantum state na ay kumakatawan sa index ng elementong nakakatugon sa kondisyong ito, dahil itinuturo nito ang posisyon kung saan matatagpuan ang value na 2.
Hakbang 2: I-optimize para sa target na hardwareβ
1: Initializationβ
Sa hakbang ng initialization, gumagawa tayo ng superposition ng lahat ng posibleng estado. Nakamit ito sa pamamagitan ng pag-apply ng Hadamard gate sa bawat qubit sa isang n-qubit register, na magreresulta sa pantay na superposition ng na estado. Sa matematika, maaari itong ilarawan bilang: