Quantum algorithms: Pagtatantya ng phase
Kento Ueda (15 Mayo 2024)
Ang notebook na ito ay nagbibigay ng mga pangunahing konsepto at implementasyon ng Quantum Fourier Transformation (QFT) at Quantum Phase Estimation (QPE).
I-download ang pdf ng orihinal na lektura. Tandaan na ang ilang code snippet ay maaaring maging deprecated dahil ito ay mga static na larawan.
Ang tinatayang QPU time para patakbuhin ang eksperimentong ito ay 7 segundo.
1. Panimulaβ
Quantum Fourier Transformation (QFT)
Ang Quantum Fourier Transformation ay ang quantum na katumbas ng klasikal na discrete Fourier transform. Ito ay isang linear na transformasyon na inilalapat sa mga quantum state, na nag-map ng mga computational basis patungo sa kanilang mga representasyon sa Fourier basis. Mahalaga ang QFT sa maraming quantum algorithm, dahil nagbibigay ito ng mahusay na paraan upang makuha ang impormasyon ng periodicity mula sa mga quantum state. Maaaring ipatupad ang QFT gamit ang na operasyon sa pamamagitan ng mga quantum gate tulad ng Hadamard gate at Control-Phase gate para sa qubit, na nagbibigay ng exponential na pagbilis kumpara sa klasikal na Fourier transformation.
- Mga Aplikasyon: Ito ay isang pundasyon ng mga quantum algorithm tulad ng Shor's algorithm para sa pag-factor ng malalaking integer at discrete logarithm.
Quantum Phase Estimation (QPE)
Ang Quantum Phase Estimation ay isang quantum algorithm na ginagamit upang matantya ang phase na nauugnay sa eigenvector ng isang unitary operator. Ang algorithm na ito ay nagsisilbing tulay sa pagitan ng mga abstract na mathematical na katangian ng mga quantum state at ng kanilang mga computational na aplikasyon.
- Mga Aplikasyon: Kaya nitong lutasin ang mga problema tulad ng paghanap ng mga eigenvalue ng unitary matrix at pag-simulate ng mga quantum system.
Sama-sama, ang QFT at QPE ang bumubuo ng mahahalagang pundasyon ng maraming quantum algorithm na nalulutas ng mga problemang hindi magagawa ng mga klasikal na computer. Sa pagtatapos ng notebook na ito, magkakaroon ka ng pag-unawa kung paano ipinapatupad ang mga pamamaraang ito.
2. Mga Pangunahing Kaalaman sa Quantum Fourier Transformation (QFT)β
# Added by doQumentation β required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram, plot_bloch_multivector
from qiskit.quantum_info import Statevector
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import Sampler
from numpy import pi
Mula sa pagkakatulad sa discrete Fourier transform, ang QFT ay kumikilos sa isang quantum state na para sa qubit at nima-map ito sa quantum state na .
kung saan ang .
O ang representasyon sa unitary matrix:
2.1. Intuisyonβ
Ang quantum Fourier transform (QFT) ay nagtatransforma sa pagitan ng dalawang basis: ang computational (Z) basis, at ang Fourier basis. Pero ano ang ibig sabihin ng Fourier basis sa kontekstong ito? Malamang na naalala mo na ang Fourier transform na ng isang function na ay naglalarawan ng convolution ng sa isang sinusoidal function na may frequency na . Sa simpleng salita: ang Fourier transform ay isang function na naglalarawan kung gaano karaming bawat frequency ang kailangan natin upang bumuo ng isang function na mula sa mga sine function (o cosine function). Upang mas maunawaan ang ibig sabihin ng QFT sa kontekstong ito, tingnan ang mga step na larawan sa ibaba na nagpapakita ng isang numerong naka-encode sa binary gamit ang apat na qubit:
Sa computational basis, iniimbak natin ang mga numero sa binary gamit ang mga state na at .
Pansinin ang frequency kung saan nagbabago ang iba't ibang qubit; ang pinakakaliwa na qubit ay nag-i-flip sa bawat dagdag ng numero, ang susunod ay bawat 2 na dagdag, ang ikatlo ay bawat 4 na dagdag, at iba pa.
Kung mag-apply tayo ng quantum Fourier transform sa mga state na ito, magma-map tayo:
(Kadalasang tinutukoy natin ang mga state sa Fourier basis gamit ang tilde (~)).
Sa Fourier basis, iniimbak natin ang mga numero gamit ang iba't ibang rotasyon sa paligid ng Z-axis:
IFRAME
Ang numerong gusto nating itago ang nagdidikta ng anggulo kung saan inii-rotate ang bawat qubit sa paligid ng Z-axis. Sa state na , lahat ng qubit ay nasa state na . Gaya ng nakikita sa halimbawa sa itaas, upang i-encode ang state na sa 4 na qubit, ini-rotate natin ang pinakakaliwang qubit ng na buong ikot ( radian). Ang susunod na qubit ay double nito ( radian, o na buong ikot), at doble rin ang anggulo para sa qubit pagkatapos, at iba pa.
Muli, pansinin ang frequency kung saan nagbabago ang bawat qubit. Ang pinakakaliwang qubit (qubit 0) sa kasong ito ay may pinakamababang frequency, at ang pinakakanan ang may pinakamataas.
2.2 Halimbawa: 1-qubit QFTβ
Isaalang-alang natin ang kaso ng .
Ang unitary matrix ay maaaring isulat: