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)
[ 0 1 ]
X (Pauli-X / NOT)
[ 1 0 ]
Y (Pauli-Y)
[ i 0 ]
Z (Pauli-Z)
[ 0 -1 ]
H (Hadamard)
[ 1 1 ]
[ 1 -1 ]
S (Fazes vartai)
[ 0 i ]
T (pi/8 vartai)
[ 0 e^(ipi/4) ]
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
| Kontrolinis | Tikslinis (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
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
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
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)
| Funkcija | f(0) | f(1) | Tipas | Orakulo vartai (Uf) |
|---|---|---|---|---|
| f1 | 0 | 0 | Konstante | I (tapatybe) |
| f2 | 1 | 1 | Konstante | X tiksliniam kubitui |
| f3 | 0 | 1 | Subalansuota | CNOT |
| f4 | 1 | 0 | Subalansuota | CNOT + X tiksliniam |
Deutsch-Jozsa simuliatorius
Pasirinkite orakulo funkcija ir stebekite, kaip algoritmas vienu mejimu nustato, ar funkcija konstante ar subalansuota.
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 vartai | BMR realizacija | Parametrai |
|---|---|---|
| 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>?
2. Kiek CNOT vartu reikia SWAP vartams realizuoti?
3. Ka Deutsch-Jozsa algoritme rodo matavimo rezultatas q0 = |1>?
4. Kuris vartu rinkinys yra universalusis?
5. Kokia busena gaunama pritaikius H(q0) ir CNOT(q0,q1) busenai |00>?
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