I Eksperimento tikslai

Ko ismoksite siame eksperimente

  • Suprasti vieno kubito loginius vartus (I, X, Y, Z, H, S, T) ir ju matricines israiskas
  • Ismanyti dvieju kubitu vartus: CNOT, SWAP ir kontroliuojama-Z (CZ)
  • Konstruoti kvantines grandines is atskiru vartu
  • Suprasti universaliuosius vartu rinkinius ir grandiniu tapatumus
  • Igyvendinti Deutsch-Jozsa algoritma SpinQ Gemini platformoje
  • Patikrinti vartu veikima matuojant baigtines busenas

II Teorinis pagrindas

Vieno kubito loginiai vartai

Kvantiniai loginiai vartai yra unitarios transformacijos, veikiancios kubitu busenas. Vieno kubito vartai atitinka 2x2 unitarias matricas U, kurios tenkina salyga U*U = I. Kiekvienas vieno kubito vartas gali buti interpretuojamas kaip sukimas Blocho sferoje.

I (Tapatybe)

[ 1 0 ]
[ 0 1 ]
Nepakeicia busenos

X (Pauli-X / NOT)

[ 0 1 ]
[ 1 0 ]
|0> ↔ |1>, sukimas apie X asi

Y (Pauli-Y)

[ 0 -i ]
[ i 0 ]
Sukimas apie Y asi

Z (Pauli-Z)

[ 1 0 ]
[ 0 -1 ]
Fazes apvertimas |1> busenai

H (Hadamard)

1/sqrt(2) *
[ 1 1 ]
[ 1 -1 ]
Sukuria superpozicija

S (Fazes vartai)

[ 1 0 ]
[ 0 i ]
pi/2 fazes sukimas, S^2 = Z

T (pi/8 vartai)

[ 1 0 ]
[ 0 e^(ipi/4) ]
pi/4 fazes sukimas, T^2 = S

Dvieju kubitu vartai

Dvieju kubitu vartai veikia dvieju kubitu busenu erdveje ir atitinka 4x4 unitarias matricas. Svarbiausias dvieju kubitu vartas yra CNOT (kontroliuojamas-NOT), kuris kartu su vieno kubito vartais sudaro universaluji vartu rinkini.

CNOT (CX) vartai

Kontrolinis kubitas nustato, ar taikomas X vartas tiksliniam kubitui. Jei kontrolinis = |1>, tikslinis kubitas apverciamas. CNOT vartai yra esminiai kvantiniam susipynimui sukurti.

SWAP vartai

Sukeicia dvieju kubitu busenas vietomis. Gali buti issklaidyti i tris CNOT vartus: SWAP = CNOT(1,2) * CNOT(2,1) * CNOT(1,2).

CZ (Kontroliuojamas-Z)

Taiko Z vartus tiksliniam kubitui, kai kontrolinis kubitas yra |1> busenoje. CZ vartai yra simetriski — abu kubitai vaidina vienoda vaidmeni.

Universalusis rinkinys

Rinkinys {CNOT, H, T} yra universalusis — is siu vartu galima sudaryti bet kuria unitaria transformacija su norima tikslumu.

CNOT tiesos lentele

KontrolinisTikslinis (iejimas)Tikslinis (isejimas)
|0>|0>|0>
|0>|1>|1>
|1>|0>|1>
|1>|1>|0>

CNOT tiesos lentele rodo, kad tikslinis kubitas apverciamas (XOR operacija) tik kai kontrolinis kubitas yra |1> busenoje.

Grandiniu tapatumai

Svarbiausi kvantiniai tapatumai

  • HXH = Z — Hadamard konvertuoja X i Z ir atvirksciai
  • HZH = X — Hadamard konvertuoja Z i X
  • HYH = -Y — Y vartai keicia zenkla per Hadamard
  • SS = Z — du S vartai sudaro Z vartus
  • TT = S — du T vartai sudaro S vartus
  • TTTT = Z — keturi T vartai sudaro Z vartus
  • XX = YY = ZZ = I — Pauli vartu kvadratai yra tapatybe
  • HH = I — du Hadamard vartai grazina pradine busena
  • CNOT(H kron I)|00> = Bell busena — susipynusiu kubitu sukurimas

III Vieno kubito vartu simuliatorius

Taikykite ivairius loginius vartus vieno kubito busenai ir stebekite, kaip keiciasi busenos vektorius Blocho sferoje bei tikimybiu paskirstymas.

Interaktyvus vieno kubito simuliatorius

Busena
|0>
Pritaikyti vartai
—
|0>
100%
|1>
0%

IV Dvieju kubitu grandiniu konstruktorius

Konstruokite kvantines grandines is vieno ir dvieju kubitu vartu. Pasirinkite vartu mygtuka ir stebekite, kaip keiciasi dvieju kubitu sistemos busena bei tikimybiu paskirstymas.

Grandiniu konstruktorius

Vieno kubito (q0):
Vieno kubito (q1):
Dvieju kubitu:
Busenos vektorius
1.000|00> + 0.000|01> + 0.000|10> + 0.000|11>
Vartu seka
—
|00>
100%
|01>
0%
|10>
0%
|11>
0%

V Grandiniu tapatumu demonstracija

Pasirinkite grandines tapatuma ir patikrinkite, kaip skirtingos vartu sekos duoda ta pati rezultata. Kiekviena tapatuma galima patikrinti taikant vartu sekos bet kuriai pradinei busenai.

Tapatumu tikrintuvas

Hadamard-X-Hadamard seka ekvivalenti Z vartams. Tai rodo, kad H transformuoja Pauli X operatoriu i Pauli Z operatoriu.

VI Deutsch-Jozsa algoritmas

Deutsch-Jozsa algoritmas yra vienas is pirmuoju kvantiniu algoritmu, demonstruojanciu kvantini pranasuma pries klasikinius algoritmus. Uzduotis: nustatyti, ar funkcija f:{0,1} -> {0,1} yra konstante (visada grazina ta pati) ar subalansuota (grazina 0 pusei iejimu ir 1 kitai pusei).

Algoritmo privalumas

  • Klasikinis: reikia 2 uzklausu (patikrinti abu iejimus)
  • Kvantinis: pakanka 1 uzklausos — eksponentinis pagreitejimas
  • Naudoja superpozicija ir interferencija, kad vienu mejimu nustatytu atsakyma

Keturios galimos funkcijos (1 bito)

Funkcijaf(0)f(1)TipasOrakulo vartai (Uf)
f100KonstanteI (tapatybe)
f211KonstanteX tiksliniam kubitui
f301SubalansuotaCNOT
f410SubalansuotaCNOT + X tiksliniam

Deutsch-Jozsa simuliatorius

Pasirinkite orakulo funkcija ir stebekite, kaip algoritmas vienu mejimu nustato, ar funkcija konstante ar subalansuota.

Matavimo rezultatas
q0 = |0> : Konstante
Funkcijos tipas
Konstante
|psi> = H|0> kron H|1> --> Uf --> H kron I --> Matuoti q0 Deutsch-Jozsa algoritmo grandine (1 bito versija)

Jei matavimo metu q0 = |0>, funkcija yra konstante. Jei q0 = |1>, funkcija yra subalansuota. Tai veikia del konstruktyvios ir destruktyvios interferencijos tarp kvantiniu amplitudziu.

VII Realizacija SpinQ Gemini platformoje

SpinQ Gemini platformoje kvantiniai vartai realizuojami radijo dazniu (RD) impulsais ir laisva J-rysio evoliucija. Vieno kubito vartai atitinka selektyvius RD impulsus, o CNOT vartai issklaidomi i vieno kubito sukimu ir J-rysio evoliucijos seka.

Kvantiniai vartaiBMR realizacijaParametrai
X (NOT) pi impulsas apie x asi Rx(pi) = -iX
Y pi impulsas apie y asi Ry(pi) = -iY
Z Fazes sukimas arba HXH Rz(pi) = -iZ
Hadamard (H) Ry(pi/2) + Rz(pi) Kompozitinis impulsas
S (fazes) Rz(pi/2) pi/2 fazes sukimas
T (pi/8) Rz(pi/4) pi/4 fazes sukimas
CNOT J-rysio evoliucija + vieno kubito sukimai t_J = 1/(2J) ~ 3.1 ms
SWAP 3 CNOT vartai CNOT(1,2)*CNOT(2,1)*CNOT(1,2)

CNOT issklaidymas BMR sistemoje

SpinQ Gemini platformoje CNOT vartai realizuojami naudojant naturalu J-rysi (~160 Hz) tarp ¹H ir ¹⁹F branduoliu. CNOT dekompozicija:

CNOT = Rz1(-pi/2) * Rz2(pi/2) * Ry2(pi/2) * exp(-i*pi*J*t*Iz1*Iz2) * Ry2(-pi/2)

VIII Eksperimento procedura

Sistemos paruosimas

Inicializuokite SpinQ Gemini sistema ir paruoskite pseudogrynaja busena (PPS) |00> naudodami laikinio vidurkinimo metoda.

Vieno kubito vartu tikrinimas

Taikykite X, Y, Z, H vartus atskirai kiekvienam kubitui (¹H ir ¹⁹F). Ismatuokite busena ir palyginkite su teoriniais laukiamais rezultatais.

Hadamard superpozicijos tikrinimas

Taikykite H|0> ir patvirtinkite, kad gaunama vienoda |0> ir |1> tikimybe (~50/50). Taikykite HH ir patikrinkite, kad grizta pradine busena.

CNOT vartu realizacija

Igyvendinkite CNOT vartus naudodami J-rysio evoliucija. Patikrinkite su visais keturiais bazinemis busenu kombinacijomis (|00>, |01>, |10>, |11>).

Bell busenos sukurimas

Sukurkite Bell busena |Phi+> = (|00> + |11>)/sqrt(2) taikydami H(q0) ir CNOT(q0,q1). Patikrinkite susipynima matuojant koreliuotus rezultatus.

SWAP vartu tikrinimas

Paruoskite busena |10>, taikykite SWAP vartus ir patikrinkite, kad gauname |01>. Palyginkite su tris CNOT realizacija.

Deutsch-Jozsa algoritmo realizacija

Igyvendinkite Deutsch-Jozsa algoritma su visais keturiais orakulo variantais (f1-f4). Kiekvienam atvejui patikrinkite matavimo rezultata.

Rezultatu analize

Surinkite visus matavimo duomenis, palyginkite su teorinemis prognozemis ir apskaiciuokite vartu tiksluma (fidelity).

IX Kontroliniai klausimai

1. Kokia Hadamard vartu veikimo busena |0>?

Teisingai! Hadamard vartai transformuoja |0> i vienoda superpozicija (|0> + |1>)/sqrt(2), kur abi busenos turi vienoda 50% tikimybe.
Neteisingai. Hadamard vartai sukuria superpozicija: H|0> = (|0> + |1>)/sqrt(2).

2. Kiek CNOT vartu reikia SWAP vartams realizuoti?

Teisingai! SWAP = CNOT(1,2) * CNOT(2,1) * CNOT(1,2). Reikia tris CNOT vartu su kintancia kontrolinio kubito pozicija.
Neteisingai. SWAP vartams reikia 3 CNOT vartu.

3. Ka Deutsch-Jozsa algoritme rodo matavimo rezultatas q0 = |1>?

Teisingai! Deutsch-Jozsa algoritme q0 = |1> rodo, kad funkcija yra subalansuota. Jei q0 = |0>, funkcija yra konstante.
Neteisingai. Deutsch-Jozsa algoritme: q0 = |0> — konstante, q0 = |1> — subalansuota.

4. Kuris vartu rinkinys yra universalusis?

Teisingai! {CNOT, H, T} yra universalusis vartu rinkinys — is siu vartu galima sudaryti bet kuria unitaria transformacija su norima tikslumu.
Neteisingai. Universalusis rinkinys yra {CNOT, H, T}, apimantis ir vieno kubito (H, T), ir dvieju kubitu (CNOT) vartus.

5. Kokia busena gaunama pritaikius H(q0) ir CNOT(q0,q1) busenai |00>?

Teisingai! H|0> = (|0>+|1>)/sqrt(2), tada CNOT kopijuoja kontrolini kubita i tikslini: gauname Bell busena (|00>+|11>)/sqrt(2).
Neteisingai. H sukuria superpozicija, o CNOT sukuria susipynima: (|00>+|11>)/sqrt(2) — tai Bell busena Phi+.

X Santrauka

Pagrindiniai rezultatai

  • Vieno kubito vartai (X, Y, Z, H, S, T) yra unitarios 2x2 matricos, atliekancios sukimus Blocho sferoje
  • CNOT vartai — esminis dvieju kubitu vartas, kartu su H ir T sudarantys universaluji rinkini
  • SWAP vartai issklaidomi i 3 CNOT vartus, o CZ — i CNOT su Hadamard vartais
  • Grandiniu tapatumai (HXH=Z, SS=Z, HH=I) padeda supaprastinti kvantines grandines
  • Deutsch-Jozsa algoritmas demonstruoja kvantini pranasuma: 1 uzklausos vietoj 2
  • SpinQ Gemini platformoje vartai realizuojami RD impulsais ir J-rysio evoliucija

XI Programinis pavyzdys ir RQmod alternatyva

Kvantines grandines galima konstruoti tiek tiesiogiai SpinQit/Qiskit kalboje Python aplinkoje, tiek deklaratyviai aprasyti .rqmod modelyje, kuri ResilQ Studio kompiliuoja i ResilQ IR ir QASM2 / SpinQit darba.

Pythonas: Deutsch-Jozsa 2 kubitams

Pavyzdys realizuoja Deutsch-Jozsa algoritma tikrinant subalansuota oraku f(x) = x (CNOT). Vieno uzklausos rezultato pakanka isvadai, ar funkcija konstantine ar subalansuota.

# dj_spinqit.py — Deutsch-Jozsa 2 kubitams (SpinQit)
from spinqit import Circuit, BasicSimulator, get_compiler
from spinqit.model import H, X, CX, MEASURE

qc = Circuit(2)

# Inicializacija: |0⟩|1⟩
qc.append(X, [1])
qc.append(H, [0]); qc.append(H, [1])

# Orakulas: f(x) = x  →  CNOT(q0 → q1)  (subalansuota)
qc.append(CX, [0, 1])

# Galutinis Hadamardas tik darbiniam kubitui
qc.append(H, [0])
qc.append(MEASURE, [0])

backend = BasicSimulator()
exe     = get_compiler("native").compile(qc, 0)
result  = backend.run(exe, 1024)

print(result.counts)
# tikimasi: q0 = |1⟩  →  funkcija subalansuota

Alternatyva: .rqmod modelis

Tas pats algoritmas aprasomas RQmod kalba; modelyje matomi visi vartai, max_width = 2 ribojimas atitinka SpinQ Gemini, o ResilQ Studio sugeneruoja QASM2 darba ir CBOM iroduma.

// lab6-deutsch-jozsa.rqmod
audit "lab6-deutsch-jozsa" {
  targets = ["spinq-gemini-lab"]

  layers {
    use { runtime, openssl }
  }

  experiment deutsch_jozsa {
    qubits  = [q0, q1]
    circuit {
      x(q1)
      h(q0); h(q1)
      cx(q0, q1)        // subalansuotas orakulas
      h(q0)
    }
    measure = [q0]
    shots   = 1024
  }

  backend quantum {
    provider  = spinqit
    emit      = qasm2
    max_width = 2
  }

  output { formats = [json, cbom, qasm] }
}

resilq-q compile lab6-deutsch-jozsa.rqmod --out build/lab6

Apie RQmod

RQmod (ResilQ Studio) — autorius prof. dr. Sarunas Grigaliunas — yra deklaratyvi .rqmod kalba ir integruota aplinka postkvantines kriptografijos rizikai modeliuoti. Vienu saltinio failu aprasomi audito tikslai, sluoksniai (transit / use / rest), QARS-NI vertinimo langai (Mosca formule), isvesties formatai (JSON, CBOM, PDF, QASM2) ir pasirinktinai — kvantinis bekendas (SpinQit, OpenQASM2). Tas pats saltinio failas naudojamas tiek saugumo auditui, tiek edukaciniam SpinQ Gemini eksperimentui.

Daugiau: https://www.rqmod.com