I Eksperimento tikslai
Ko isimoksite
- Suprasti rysį tarp klasikines diskreciosios Furje transformacijos (DFT) ir kvantines Furje transformacijos (QFT)
- Issiaiskinti QFT grandines struktura: Hadamard ir valdomi fazes vartai R_k
- Ismokti kvantinio fazes ivertinimo (QPE) algoritma -- kaip nustatyti unitaraus operatoriaus tikrine verte
- Suprasti HHL algoritma tiesiniu lygciu sistemoms spresti
- Realizuoti 2-kubitu QFT ir QPE SpinQ Gemini platformoje
- Istirti fazes tiksluma priklausomai nuo registru dydzio
II Teorija
Diskrecioji Furje transformacija (DFT)
Klasikine DFT transformuoja N tasku seka x_0, ..., x_{N-1} i daznines komponentes. Kvantine Furje transformacija (QFT) atlieka ta pacia operacija, bet su kvantiniais busenu vektoriais eksponentiskai greiciau.
N = 2^n atveju, kur n -- kubitu skaicius, QFT isardo busena i tensorini fazoriniu busenu sandauga:
Hadamard vartai H
Sukuria superpozicija su faze 0 arba pi. QFT grandineje kiekvienas kubitas pirmiausiai praeina per H vartus: H|0> = (|0>+|1>)/sqrt(2), H|1> = (|0>-|1>)/sqrt(2).
Valdomi fazes vartai R_k
Prideda faze e^(2*pi*i/2^k) prie |1> busenos, jei valdantis kubitas yra |1>. R_1 = Z, R_2 = S, R_3 = T. Sie vartai sukuria smulkius fazes posumius, reikalingus QFT tikslumui.
SWAP vartai
QFT grandines pabaigoje kubitu tvarka apverciama SWAP vartais, nes QFT isvedimo kubitu eile yra atvirkstine. 2-kubitu atveju: vienas SWAP.
O(n^2) vs O(N*log N)
QFT naudoja O(n^2) vartu n kubitams (kur N=2^n). Tai eksponentiskai greiciau nei klasikine FFT su O(N*log N) operacijomis. Taciau QFT tiesiai neduoda amplitudzių -- reikia matavimo.
2-kubitu QFT grandine
2-kubitu sistemoje (N=4) QFT grandine susideda is:
Cia R2 yra valdomas S vartas (faze = pi/2 = 90 laipsniu), valdomas Q1 kubitu. Galutine SWAP operacija apvercia kubitu tvarka.
Kvantinis fazes ivertinimas (QPE)
QPE algoritmas nustato faze phi unitaraus operatoriaus U tikrinio vektoriaus |psi>: U|psi> = e^(2*pi*i*phi)|psi>. Algoritmas naudoja:
Valdomi U^(2^k) vartai
Kiekvienas registrinis kubitas k valdo U^(2^k) operacija ant taikinio kubito. Tai "kopijuoja" fazes informacija i registra: kubitas k gauna faze 2^k * phi.
Atvirkstine QFT
Po valdomu operaciju registre uzkoduota faze Furje erdveje. Atvirkstine QFT (QFT^-1) transformuoja ja atgal i skaiciavimo baze, kur matavimas tiesiogiai duoda phi bitus.
HHL algoritmas
HHL (Harrow-Hassidim-Lloyd) algoritmas sprencia tiesiniu lygciu sistema Ax = b kvantiskai. Jis naudoja QPE kaip surutina:
1. QPE ant e^(iAt)
Uzkoduoja A tikrines vertes lambda_j i registra. Jei A = SUM lambda_j |u_j>
2. Valdomas sukimas
Pritaiko valdoma R_y sukima: |lambda_j> -> C/lambda_j. Tai realizuoja A^(-1) operacija -- esmine HHL dalis.
3. Atvirkstinis QPE
Atvirkstinis QPE grazina registra i |0> busena, palikdamas rezultata |x> proporcinga A^(-1)|b> taikiniame kubite.
III QFT simuliatorius (2 kubitai)
Pasirinkite pradine 2-kubitu busena ir stebkite, kaip QFT transformuoja amplitudes ir fazes. Vizualizacija rodo amplitudes ir fazes kiekvienai isejimo busenai.
2-kubitu kvantine Furje transformacija
IV QFT zingsnis po zingsnio
Issamiai stebkite, kaip kiekvienas QFT grandines vartas keicia sistemos busena.
QFT grandines etapai
V Fazes ivertinimo (QPE) simuliatorius
Pasirinkite faze phi ir stebkite, kaip QPE algoritmas ja nustato. 2-kubitu registras gali tiksliai uzkoduoti fazes phi = k/4, kur k = 0, 1, 2, 3.
Kvantinis fazes ivertinimas (2-kubitu registras)
VI QPE tikslumo analize
Isnagrinekite, kaip registru skaicius n itakoja QPE tiksluma. Daugiau kubitu -- didesnis tikslumas, bet sudetingesne grandine.
Tikslumas vs. kubitu skaicius
VII HHL algoritmo vizualizacija
HHL algoritmas sprencia Ax = b. Stebkite, kaip QPE issklaido vektoriu b pagal tikrinius vektorius, o valdomas sukimas realizuoja A^(-1) operacija.
HHL: tiesinių lygciu sprendimas
VIII SpinQ Gemini realizacija
SpinQ Gemini 2-kubitu sistemoje QFT realizuojama tiesiogiai, o QPE ir HHL -- supaprastintomis versijomis su 1 registriniu kubitu.
QFT grandines NMR atitikmenys
| QFT vartas | NMR realizacija | Parametrai |
|---|---|---|
| H (Hadamard) | R_y(90) + R_x(180) | 90 laipsniu Y sukimas, po to 180 laipsniu X |
| Valdomas R2 (c-S) | J-rysio evoliucija + Z sukimas | Laisva evoliucija tau = 1/(4J) + vieno kubito fazinis sukimas |
| SWAP | 3 x CNOT | SWAP = CNOT_01 * CNOT_10 * CNOT_01 |
QPE 2-kubitu versija
Su vienu registriniu kubitu galima atskirti fazes phi = 0 ir phi = 1/2 (t.y. tikrines vertes +1 ir -1). Daugiau tikslumo reikalauja daugiau kubitu.
HHL 2-kubitu versija
SpinQ Gemini sistemoje HHL algoritmas realizuojamas supaprastintai: vienas kubitas -- registras (QPE), kitas -- duomenu kubitas (b vektorius). Tai leidzia spresti 2x2 diagonalines sistemas.
| HHL etapas | SpinQ realizacija |
|---|---|
| QPE (fazes uzrasymas) | H + c-U ant Q0 kubito |
| Valdomas sukimas | c-R_y(theta) ant pagalbinio kubito (arba islauktinis kubitas) |
| Atvirkstinis QPE | c-U^(-1) + H ant Q0 |
IX Eksperimento procedura
QFT bazine patikra
Paruoskite kiekviena pradine busena |00>, |01>, |10>, |11>. Pritaikykite 2-kubitu QFT grandine (H, c-R2, H, SWAP). Ismatuokite isejimo tikimybes ir palyginkite su teorinemis.
QFT faziu patikra
Naudokite kvantines busenos tomografija (is 7 eksperimento) ismatuoti isejimo busenos fazems. Patikrinkite, ar fazes atitinka e^(2*pi*i*j*k/4) reikmes.
Atvirkstine QFT
Pritaikykite QFT ir po to QFT^(-1) (atvirkstine tvarka su konjuguotomis fazems). Patikrinkite, ar gaunama pradine busena (tapatumo testas).
QPE su Z vartu faze
Naudokite U = Z (faze phi = 1/2) su tikriniais vektoriais |0> ir |1>. Paleiskite QPE ir patikrinkite registrinio kubito matavima: |0> -> phi=0, |1> -> phi=1/2.
QPE su R_z(theta) vartais
Pakeiskite U i R_z(theta) su skirtingomis theta reiksmemis. Stebkite, kaip registro matavimo tikimybes kinta priklausomai nuo fazes. Nubraizikite tikimybes vs. theta grafika.
HHL eksperimentas
Sukonstruokite HHL grandine diagonalinei 2x2 matricai. Paleiskite su skirtingais b vektoriais. Palyginkite kvantini sprendini su klasikiniu (tiesiogine inversija).
X Kontroliniai klausimai
1. Kiek vartu reikia n-kubitu QFT grandinei?
2. Ka QPE registrinis kubitas "koduoja" po valdomu U operaciju?
3. Kokia valdomu R_k vartu faze QFT grandineje?
4. HHL algoritme, kuris etapas realizuoja A^(-1) operacija?
5. Kodel QFT grandines pabaigoje reikia SWAP operacijos?
XI Apibendrinimas
Pagrindiniai rezultatai
- QFT -- kvantine DFT versija, naudojanti O(n^2) vartu vietoj O(N*log N) klasikiniu operaciju
- QFT grandine susideda is Hadamard vartu, valdomu fazes vartu R_k ir SWAP
- QPE nustato unitaraus operatoriaus tikrine faze phi su n-bitu tikslumu
- QPE yra daugelio kvantiniu algoritmu pagrindas: Shor, HHL, kvantine chemija
- HHL algoritmas sprencia Ax = b su eksponentiniu pagreitinimu tam tikromis salygomis
- SpinQ Gemini leidzia realizuoti 2-kubitu QFT, supaprastinta QPE ir bazine HHL versija
XII Programinis pavyzdys ir RQmod alternatyva
QFT, QPE ir HHL galima atkartoti tiek tiesiogine grandine Python kalboje
(SpinQit / Qiskit / NumPy), tiek deklaratyviai aprasius
.rqmod modelyje, kuri ResilQ Studio
kompiliuoja i ResilQ IR ir QASM2 / SpinQit darba.
Pythonas: 2-kubitu QFT (SpinQit)
Pavyzdys realizuoja 2 kubitu kvantine Furje transformacija: H, valdomas R2 (kontroliuojama S faze) ir SWAP, kad isvesties tvarka atitiktu kvantine konvencija.
# qft_2q.py — 2 kubitu kvantine Furje transformacija (SpinQit) from spinqit import Circuit, BasicSimulator, get_compiler from spinqit.model import H, S, CX, SWAP, MEASURE import math qc = Circuit(2) # Pradine busena |10⟩ — testavimui qc.append(H, [0]) # QFT: H, valdomas R₂ (S kontroliuojama), SWAP qc.append(H, [0]) # Kontroliuojamas R_k = diag(1, exp(2πi/2^k)) realizuojamas per # H, CX ir vieno kubito S vartus — supaprastinta seka: qc.append(S, [1]) qc.append(CX, [0, 1]) qc.append(S, [1]) qc.append(CX, [0, 1]) qc.append(H, [1]) qc.append(SWAP, [0, 1]) qc.append(MEASURE, [0, 1]) backend = BasicSimulator() exe = get_compiler("native").compile(qc, 0) print(backend.run(exe, 1024).counts)
Alternatyva: .rqmod modelis
Tas pats QFT/QPE eksperimentas iśreiškiamas auksciau abstrakcijos lygmeniu — modelyje paruosiama testavimo busena ir nurodoma QFT veiksmu seka. ResilQ Studio sugeneruoja QASM2 grandine ir CBOM iroduma.
// lab9-qft.rqmod audit "lab9-qft-qpe" { targets = ["spinq-gemini-lab"] layers { use { runtime, openssl } } experiment qft_2q { qubits = [q0, q1] prepare { circuit { x(q0) } } // |10⟩ transform = qft measure = z_basis shots = 1024 } experiment qpe_basic { qubits = [q0, q1] unitary = "diag(1, exp(2πi*0.25))" counting_qubits = [q0] eigenstate = q1 shots = 1024 } backend quantum { provider = spinqit emit = qasm2 max_width = 2 } output { formats = [json, cbom, qasm] } }
resilq-q compile lab9-qft.rqmod --out build/lab9
Apie RQmod
RQmod (ResilQ Studio) — autorius prof. dr. Šarūnas
Grigaliūnas — yra deklaratyvi .rqmod kalba ir integruota
aplinka postkvantinės kriptografijos rizikai modeliuoti. Vienu šaltinio failu
aprašomi audito tikslai, sluoksniai (transit / use / rest), QARS-NI
vertinimo langai (Mosca formulė), išvesties formatai (JSON, CBOM, PDF, QASM2)
ir pasirinktinai — kvantinis bekendas (SpinQit, OpenQASM2). Tas pats šaltinio
failas naudojamas tiek saugumo auditui, tiek edukaciniam SpinQ Gemini
eksperimentui.
Daugiau: https://www.rqmod.com