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.

QFT|j> = (1/sqrt(N)) * SUM_{k=0}^{N-1} e^(2*pi*i*j*k/N) |k> QFT transformuoja busena |j> i lygiasverte superpozicija su fazes posumiais

N = 2^n atveju, kur n -- kubitu skaicius, QFT isardo busena i tensorini fazoriniu busenu sandauga:

QFT|j> = (1/sqrt(2^n)) (|0> + e^(2*pi*i*0.j_n)|1>) (x) ... (x) (|0> + e^(2*pi*i*0.j_1...j_n)|1>) Tensorinio isdekliojimo forma -- pagrindas efektyviai QFT grandinei

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:

Q0: ──[H]──[R2]──────────[SWAP]── │ x Q1: ─────────●────[H]────[SWAP]── R2 = valdomi fazes vartai (faze pi/2)

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:

|0>^n |psi> --[H^n]--[c-U^(2^k)]--[QFT^(-1)]-- matavimas = |phi_1...phi_n> QPE: n kubitu registras koduoja faze phi = 0.phi_1 phi_2 ... phi_n dvejetainiu skilciu tikslumu

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>|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

Iejimo busena
|00>
Isejimo busena
1/2(|00>+|01>+|10>+|11>)

IV QFT zingsnis po zingsnio

Issamiai stebkite, kaip kiekvienas QFT grandines vartas keicia sistemos busena.

QFT grandines etapai

Pradine busena |j> |00> (j=0)
Etapas
Pradine busena
Busenos vektorius
|00>

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)

Tikroji faze phi 0.000
Tikroji faze phi
0.000
Ivertinta faze
0.000
Paklaida |delta|
0.000
Sekmingumo tikimybe
100%

VI QPE tikslumo analize

Isnagrinekite, kaip registru skaicius n itakoja QPE tiksluma. Daugiau kubitu -- didesnis tikslumas, bet sudetingesne grandine.

Tikslumas vs. kubitu skaicius

Faze phi 0.333 (1/3)
Tikroji faze
0.333
n=2 ivertis
0.250
n=4 ivertis
0.3125
n=8 ivertis
0.332

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

Matrica A
[[2,0],[0,4]]
Vektorius b
|0>
Sprendinys x (normalizuotas)
[1, 0]

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 vartasNMR realizacijaParametrai
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 sukimasLaisva evoliucija tau = 1/(4J) + vieno kubito fazinis sukimas
SWAP3 x CNOTSWAP = CNOT_01 * CNOT_10 * CNOT_01

QPE 2-kubitu versija

Registras Q0: |0> ──[H]──[c-U]──[H]── Matavimas (fazes bitas) │ Taikinys Q1: |psi>─────[U]─────────── (nekintamas)

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 etapasSpinQ realizacija
QPE (fazes uzrasymas)H + c-U ant Q0 kubito
Valdomas sukimasc-R_y(theta) ant pagalbinio kubito (arba islauktinis kubitas)
Atvirkstinis QPEc-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?

Teisingai! QFT naudoja O(n^2) vartu -- kiekvienas kubitas reikalauja 1 Hadamard ir iki n-1 valdomu fazes vartu. Tai eksponentiskai maziau nei klasikine FFT su O(N*log N), kur N=2^n.
Neteisingai. QFT grandine naudoja n Hadamard vartu ir n(n-1)/2 valdomu fazes vartu, is viso O(n^2).

2. Ka QPE registrinis kubitas "koduoja" po valdomu U operaciju?

Teisingai! Po valdomu U^(2^k) operaciju registre uzkoduota faze phi Furje pavidalu. Atvirkstine QFT transformuoja ja i skaiciavimo baze matavimui.
Neteisingai. Registre uzkoduota tikrines vertes faze phi (kur tikrine verte = e^(2*pi*i*phi)) Furje erdveje.

3. Kokia valdomu R_k vartu faze QFT grandineje?

Teisingai! R_k vartu faze yra 2*pi/2^k. Pavyzdziui: R_1 = Z (faze pi), R_2 = S (faze pi/2), R_3 = T (faze pi/4).
Neteisingai. R_k vartu faze yra 2*pi/2^k -- kiekvienas sekantis vartas duoda dvigubai smulkesne faze.

4. HHL algoritme, kuris etapas realizuoja A^(-1) operacija?

Teisingai! Valdomas R_y sukimas atlieka transformacija |lambda> -> (C/lambda), kur C -- normalizavimo konstanta. Tai ivertina 1/lambda -- esmine A^(-1) dalis.
Neteisingai. QPE tik nustato tikrines vertes lambda. A^(-1) realizuojamas per valdoma sukima, kuris pritaiko 1/lambda koeficienta.

5. Kodel QFT grandines pabaigoje reikia SWAP operacijos?

Teisingai! QFT algoritmas naturaliai pateikia kubitus atvirkstine tvarka (maziausia reiksmingo bito kubitas tampa labiausiai reiksmingu). SWAP istaisos sia tvarka.
Neteisingai. QFT grandine pateikia isejimo kubitus atvirkstine tvarka, todel reikia SWAP operacijos kubitu tvarkai atkurti.

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