Quantum Fourier transform
Para sa Qiskit in Classrooms module na ito, kailangan ng mga estudyante ng gumaganang Python environment na may mga sumusunod na naka-install na package:
qiskitv2.1.0 o mas bagoqiskit-ibm-runtimev0.40.1 o mas bagoqiskit-aerv0.17.0 o mas bagoqiskit.visualizationnumpypylatexenc
Para i-set up at i-install ang mga package sa itaas, tingnan ang gabay na I-install ang Qiskit. Para makapagpatakbo ng mga job sa tunay na quantum computer, kailangan ng mga estudyante na mag-set up ng account sa IBM Quantum® sa pamamagitan ng pagsunod sa mga hakbang sa gabay na I-set up ang iyong IBM Cloud account.
Ang module na ito ay nasubok at gumamit ng 13 segundo ng oras ng QPU. Ito ay isang magandang-loob na pagtatantya; ang iyong aktwal na paggamit ay maaaring mag-iba.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'
Panimula
Ang Fourier transform ay isang ubiquitous na kasangkapan na may mga aplikasyon sa matematika, pisika, signal processing, data compression, at napakaraming iba pang larangan. Ang quantum na bersyon ng Fourier transform, na angkop na pinangalanang quantum Fourier transform, ang pundasyon ng ilan sa mga pinakamahalagang quantum algorithm.
Ngayon, pagkatapos ng isang paalala tungkol sa klasikal na Fourier transform, pag-uusapan natin kung paano natin isinasagawa ang quantum Fourier transform sa isang quantum computer. Pagkatapos, tatalakayin natin ang isa sa mga aplikasyon ng quantum Fourier transform sa isang algorithm na tinatawag na phase estimation algorithm. Ang quantum phase estimation ay isang subroutine sa sikat na factoring algorithm ni Shor, na kung minsan ay tinutukoy bilang "crown jewel" ng quantum computing. Ang module na ito ay nagtatayo patungo sa isa pang module tungkol sa Shor's algorithm, ngunit nilalayon din itong maging nagsasarili. Ang quantum Fourier transform ay isang kahanga-hangang at kapaki-pakinabang na algorithm sa sarili nito!
Ang klasikal na Fourier transform
Bago tayo sumabak sa quantum Fourier transform, unahin nating alalahanin ang klasikal na bersyon. Ang Fourier transform ay isang paraan ng pag-transform mula sa isang tinatawag na "basis" patungo sa isa pa. Maaari mong isipin ang dalawang basis bilang iba't ibang pananaw ng parehong problema — parehong may bisa na paraan upang ipahayag ang isang function, ngunit ang isa o ang isa pa ay maaaring mas kapaki-pakinabang, depende sa problemang nararapit. Ilang halimbawa ng mga pares ng basis na konektado ng Fourier transform ay posisyon at momentum, at oras at dalas.
Tingnan natin ang isang halimbawa kung paano ang Fourier transform ay makakatulong sa atin na malaman kung anong nota ang tinutugtog ng isang instrumento batay sa audio waveform nito. Karaniwan, nakikita natin ang mga waveform na kinakatawan sa time basis — iyon ay, ang amplitude ng alon ay ipinahahayag bilang isang function ng oras.

Maaari tayong mag-Fourier transform ng waveform na ito para lumipat mula sa time basis patungo sa frequency basis:

Sa frequency basis, madali tayong makakakita ng malinaw na tuktok sa humigit-kumulang 260 Hz. Iyon ay isang middle C!
Ngayon, maaaring nagawa mong matukoy na ang isang middle C ay tinutugtog nang hindi gumagamit ng Fourier transform, ngunit paano kung maraming nota ang tinutugtog nang sabay-sabay? Ang waveform ay nagiging mas kumplikado kapag ini-plot natin ito sa time basis:

Ngunit ang frequency spectrum ay malinaw na nagtatukoy ng tatlong tuktok:

Ito ay isang C-major chord, na tumutugtog ng mga nota C, E, at G.
Ang ganitong uri ng Fourier analysis ay makakatulong sa atin na kunin ang mga frequency component ng anumang uri ng kumplikadong signal.
Discrete Fourier transform
Ang Fourier transform ay kapaki-pakinabang para sa anumang bilang ng mga aplikasyon sa signal-processing. Ngunit sa karamihan ng mga totoong aplikasyon na ito (kasama ang halimbawa ng musika na ginamit natin sa itaas), gusto nating i-transform ang isang discrete na hanay ng data points — hindi isang tuloy-tuloy na function. Sa kasong ito, ginagamit natin ang discrete Fourier transform. Ang discrete Fourier transform (DFT) ay kumikilos sa isang vector at ini-map ito sa vector ayon sa formula:
kung saan kinukuha natin ang . (Tandaan na may iba pang mga convention na may negatibong tanda sa exponential, kaya mag-ingat kapag nakita mo ang DFT sa labas.) Alalahanin na ang ay isang periodic na function, na may period na . Kaya, sa pamamagitan ng pagpaparami ng function na ito, ang Fourier transform ay essentially isang paraan upang masira ang (discrete) function na sa isang linear na kumbinasyon ng mga bumubuo nitong periodic na function, bawat isa ay may period na .
Ang quantum Fourier transform
Kaya ngayon, nakita na natin kung paano ginagamit ang Fourier transform upang kumatawan sa isang function bilang isang linear na kumbinasyon ng isang bagong hanay ng tinatawag na "basis functions." Ang mga basis transformation ay regular na ginagawa rin sa mga estado ng Qubit. Halimbawa, ang estado ng isang solong Qubit ay maaaring ipahayag sa computational basis , na may mga basis state na at , o sa basis na may mga basis state na at