I Tikslai

Eksperimento tikslai

  • Isnagrineti tyrimo eksperimento darbo eiga nuo grandines projektavimo iki rezultatu analizes
  • Suprasti tikros kvantines sistemos ir kvantinio simuliatoriaus skirtumus ir pranasumas
  • Ismokti konstruoti kvantines grandines naudojant grafine sasaja (GUI)
  • Ismokti programuoti kvantines grandines naudojant SpinQit SDK kodo sasaja
  • Suprasti grandines metrikas: gylis, vartu skaicius, plotis ir jungiamumo reikalavimai
  • Atlikti integruota tyrima: suprojektuoti, simuliuoti ir ivykdyti kvantine grandine

II Teorija: Tyrimo darbo eiga

Integruotas tyrimo eksperimentas sujungia visus ankstesniuose eksperimentuose isgytus iguddzius i visa darbo eiga. Tyrimo procesas prasideda nuo uzduoties formulavimo, pereina per grandines projektavima ir simuliavima, ir baigiasi vykdymu tikroje kvantineje sistemoje.

1. Formulavimas

Uzduoties apibreztis ir tikslo nustatymas

→
2. Projektavimas

Kvantines grandines sukurimas

→
3. Simuliavimas

Grandines patikrinimas simuliatoriumi

→
4. Vykdymas

Paleidimas tikroje sistemoje

→
5. Analize

Rezultatu palyginimas ir isvados

Tikra kvantine sistema vs simuliatorius

SpinQ Gemini platforma suteikia du veikimo rezimus: tikra kvantine sistema (Real Quantum System) ir kvantini grandiniu simuliatoriu (Quantum Circuit Simulator). Kiekvienas rezimas turi savitu pranasumu ir apribojimu.

Tikra kvantine sistema

Naudoja fizinius kubitus (BMR branduolius). Rezultatai atspindi tikra kvantine elgsena su dekoherencija ir triuksmu. Ribota iki 2 kubitu SpinQ Gemini platformoje. Reikia impulsu kalibravimo.

Kvantinis simuliatorius

Klasikinis kompiuteris emuliuoja kvantine elgsena. Idealus rezultatai be triuksmo. Gali simuliuoti daugiau kubitu. Tinka grandines tikrinimui pries vykdyma tikroje sistemoje.

Grandines metrikos

Kuriant ir analizuojant kvantines grandines, svarbu ivertinti kelias pagrindines metrikas, kurios lemia grandines sudeguinga ir vykdymo galimybes.

Metrika Aprasymas Svarba
Grandines gylis (depth) Ilgiausias nuosekliu vartu sluoksniu skaicius grandineje Tiesiogiai lemia vykdymo laika ir dekoherencijos poveiki
Vartu skaicius (gate count) Bendras vieno ir dvieju kubitu vartu skaicius Kiekvienas vartas ideda paklaida, daugiau vartu = daugiau triuksmo
Grandines plotis (width) Kubitu skaicius, naudojamu grandineje Riboja kokioje aparaturoje grandine galima vykdyti
Dvieju kubitu vartu skaicius CNOT, CZ ir kitu dvieju kubitu vartu skaicius Dvieju kubitu vartai yra daugiausiai triuksmo sukeliantys vartai
Jungiamumo reikalavimai Kurie kubitai turi tiesiogiai saveikaut Aparatura gali tureti ribota kubitu jungiamumo topologija

III Interaktyvus grandines konstruktorius

Kvantines grandines konstravimas

Pasirinkite varta is paletes ir spustelekite ant grandines vietos, kad pridatumete. Stebakite busenu vektoriu ir tikimybes realiuoju laiku.

Vieno kubito: | Dvieju kubitu: | |
Gylis
0
Vartu sk.
0
2-kubitu vartai
0
Plotis
2
Busena
|00>

IV Grandines sablonai

Dazniausiai naudojamos grandines

Pasirinkite sabloninini grandini ir stebakite kaip ji konstruojama. Kiekvienas sablonas demonstruoja svarbu kvantinio skaiciavimo principa.

Sablonas
Bell busena
Gylis
2
Vartu sk.
2
Aprasymas
—

V Teorija: Grafine ir programine sasajos

Grafine sasaja (GUI)

SpinQ Gemini programine iranga leidzia konstruoti grandines naudojant grafine sasaja. Vartai tempiami is paletes i grandines diagramas lauka. Sis budas yra intuityvus ir tinkamas mazoms grandinems su keliais vartais.

GUI pranasymai

Vizualus grandines atvaizdavimas, greitas prototipavimas, nereikia programavimo ziniu, lengva mokytis pradininkams.

GUI apribojimai

Sunku kurti sudetingas grandines, nera ciklo logikos, ribota automatizavimas, netinka didelems grandinems.

Programine sasaja (SpinQit SDK)

SpinQit SDK leidzia programuoti kvantines grandines naudojant Python kalba. Sis metodas yra galingesnis — galima naudoti kilpas, salyginius sakinius, parametrizuotas grandines ir hibridini klasikini-kvantini programavima.

from spinqit import get_basic_simulator, get_compiler from spinqit import Circuit, H, CNOT, Measure # Sukurti grandine circuit = Circuit(2) # Prideti vartus circuit.h(0) # Hadamard ant kubito 0 circuit.cnot(0, 1) # CNOT: kontrole=0, tikslas=1 circuit.measure([0, 1]) # Ismatuoti abu kubitus # Kompiliuoti ir simuliuoti compiler = get_compiler("native") simulator = get_basic_simulator() result = simulator.execute(circuit, shots=1024) print(result.counts) # {'00': 512, '11': 512}
Savybe GUI sasaja Kodo sasaja (SpinQit)
Mokymosi kreive Lengva — tempk ir mesk Vidutine — reikia Python ziniu
Grandines sudetingumas Mazas iki vidutinis Neribojamas
Kilpos ir salyginiai sakiniai Nepalaikomi Pilnai palaikomi
Parametrizuotos grandines Ribotos Pilnai palaikomos
Hibridinis skaiciavimas Nepalaikomas Palaikomas (VQE, QAOA ir kt.)
Grandines eksportavimas JSON formatas JSON arba QASM formatai

VI Kvantinio kodo simuliatorius

SpinQit stiliaus programavimas

Iveskite kvantini koda naudodami palaikomas komandas. Spuskite "Vykdyti" kad pamatytumete rezultatus.

quantum_program.py
Spustelekite "Vykdyti" kad paleistumete grandine...

VII Tikros kvantines sistemos veikimas

Tikroje kvantineje sistemoje grandine kompiliuojama i fizini impulsu seka, kuri siunuciama i BMR aparatura. Procesas apima kelis etapus:

1. Grandines kompiliavimas

Kvantine grandine issklaidzama i bazini vartu rinkini (H, CNOT, Rz, Rx), kuriuos tiesiogiai galima realizuoti BMR sistemoje kaip RF impulsus.

2. Impulsu generavimas

Kiekvienas loginis vartas paverciamas i RF impulsu seka su tiksliai nustatytomis amplitudemis, fazems ir trukmemis.

3. Vykdymas

Impulsu seka siunuciama i BMR aparatura. Branduoliai reaguoja i RF impulsus pagal kvantiniu vartu logika.

4. Matavimas

Po grandines vykdymo uzfiksuojamas BMR signalas (FID). Is signalo atkuriamas busenu tikimybiu pasisirstymas.

Triuksmo ir idealiuju rezultatu palyginimas

Idealus vs tikri rezultatai

Palyginkite idealias simuliatoriaus tikimybes su triuksmingais tikros sistemos rezultatais. Keiskite triuksmo lygi.

Triuksmo lygis 5%
Grandine
Bell
Idealus fidelity
1.0000
Tikras fidelity
—
TVD atstumas
—

VIII SpinQ Gemini realizacija

SpinQ Gemini platformoje tyrimo eksperimentas vykdomas dviem etapais: pirma grandine tikrinama simuliatoriuje, paskui vykdoma tikroje BMR sistemoje.

Parametras GUI rezimas Kodo rezimas
Palaikomi vartai H, X, Y, Z, S, T, Rx, Ry, Rz, CNOT, SWAP, CZ Visi GUI vartai + parametrizuoti ir pritaikyti vartai
Kubitu skaicius (tikra sistema) 2 2
Kubitu skaicius (simuliatorius) iki 10 iki 25 (ribojamas RAM)
Matavimu skaicius (shots) 1 (vienkartinis BMR matavimas) 1-10000 (simuliatorius), 1 (tikra sistema)
Rezultatu formatas Tikimybiu stulpeline diagrama Counts zodyne + busenos vektorius

SpinQit kodo pavyzdziai

# 1. Paprasta Bell busena from spinqit import Circuit qc = Circuit(2) qc.h(0) qc.cnot(0, 1) # 2. Parametrizuota grandine (VQE stiliaus) import numpy as np theta = np.pi / 4 qc = Circuit(2) qc.ry(theta, 0) qc.cnot(0, 1) qc.rz(theta, 1) # 3. Matavimas ir rezultatu nuskaitymas result = simulator.execute(qc, shots=1024) print(f"Counts: {result.counts}") print(f"State: {result.state_vector}")

IX Eksperimento procedura

Sistemos paruosimas ir uzduoties pasirinkimas

Ijunkite SpinQ Gemini ir pasirinkite tyrimo tema. Apibrezkite kokia kvantine grandine norite realizuoti ir kokiu rezultatu tikites.

Grandines projektavimas GUI aplinkoje

Atidarykite grafine sasaja ir sukonstruokite pasirinkta grandine tempdami vartus is paletes. Patikrinkite grandines metrikus (gylis, vartu skaicius).

Simuliavimas ir tikinimas

Paleiskite grandine simuliatoriaus rezimu. Patikrinkite ar rezultatu tikimybiu pasiskirstymas atitinka laukiamus teorinius rezultatus.

Kodo versijos sukurimas

Parasykit ta pacia grandine naudojant SpinQit SDK. Patikrinkite ar kodo ir GUI grandines simuliacijos rezultatai sutampa.

Vykdymas tikroje sistemoje

Perjunkite i tikros kvantines sistemos rezima ir ivykdykite grandine. Uzfiksuokite gautus tikimybiu pasiskirstymus.

Rezultatu palyginimas

Palyginkite tris rezultatus: teorini, simuliuota ir tikra. Apskaiciuokite fidelity ir TVD (Total Variation Distance) metrikas.

Analize ir isvados

Aptarkite triuksmo saltnius, dekoherencijos poveiki ir vartu paklaidu itaka. Pasiulykite budu kaip pagerinti tikros sistemos rezultatus.

X Savikontrol

1. Koks pagrindinis skirtumas tarp kvantinio simuliatoriaus ir tikros kvantines sistemos?

Teisingai! Tikra kvantine sistema patiria dekoherencija, vartu paklaidas ir aplinkos triuksma, todel rezultatai skiriasi nuo idealiuju.
Neteisingai. Pagrindinis skirtumas — tikra sistema turi fizini triuksma ir dekoherencija, kuriu simuliatorius neturi.

2. Ka reiskia grandines gylis (depth)?

Teisingai! Grandines gylis — tai ilgiausia nuosekliu vartu sluoksniu seka nuo pradzios iki galo. Jis lemia minimalu vykdymo laika.
Neteisingai. Gylis yra ilgiausias kelias per nuoseklius sluoksnius, ne vartu ar kubitu skaicius.

3. Kodel dvieju kubitu vartai yra problemiskesni nei vieno kubito vartai?

Teisingai! Dvieju kubitu vartai (pvz., CNOT) reikalauja saveikos tarp kubitu, kas yra sudtingiau realizuoti fiziskai ir sukelia daugiau paklaidu.
Neteisingai. Dvieju kubitu vartai yra fiziskai sudtingesni realizuoti, reikalauja tikslesnio kalibravimo ir sukelia daugiau triuksmo.

4. Ka leidzia programine sasaja (SpinQit SDK), ko negali grafine sasaja?

Teisingai! SpinQit SDK leidzia naudoti Python kilpas, if/else salygas ir kintamuosius parametrams, kas yra butina sudetingiems algoritmams kaip VQE ar QAOA.
Neteisingai. Programine sasaja suteikia ciklu, salyginiu sakiniu ir parametrizuotu grandziniu galimybes.

5. Kas yra TVD (Total Variation Distance) metrika?

Teisingai! TVD = (1/2)*Sum|p_i - q_i| matuoja skirtuma tarp dvieju tikimybiu pasiskirsymu. TVD=0 reiskia identiski pasiskirstymai, TVD=1 — visikai skirtingi.
Neteisingai. TVD yra tikimybiu pasiskirstymu skirtumo metrika: TVD = (1/2)*Sum|p_i - q_i|.

XI Santrauka

Pagrindiniai rezultatai

  • Integruotas tyrimo eksperimentas apjungia grandines projektavima, simuliavima ir vykdyma tikroje sistemoje
  • GUI sasaja yra intuityvi ir tinka prototipavimui, kodo sasaja (SpinQit) — sudetingesnems uzduotims
  • Grandines metrikos (gylis, vartu sk., plotis) lemia grandines sudetinguma ir vykdymo kokybe
  • Tikros sistemos rezultatai skiriasi nuo idealiuju del dekoherencijos, vartu paklaidu ir triuksmo
  • Fidelity ir TVD metrikos leidzia kiekybiskai ivertinti tikru rezultatu kokybe
  • Dvieju kubitu vartai sukelia daugiausiai paklaidu — ju mazinimas pagerina grandines tiksluma
  • SpinQ Gemini platforma palaiko iki 2 kubitu tikroje sistemoje ir iki 25 kubitu simuliatoriuje

XII Programinis pavyzdys ir RQmod alternatyva

Integruotas tyrimo eksperimentas — grandines konstravimas, simuliavimas ir vykdymas tikroje SpinQ Gemini sistemoje — gali būti realizuotas tiek tiesiogiai Python kalboje (SpinQit), tiek deklaratyviai .rqmod aprasyme. RQmod aprašyme tas pats šaltinio failas taip pat fiksuoja audito ir QARS-NI kontekstą — tai naudinga, kai eksperimentas yra edukacinė platesnės kriptografinės rizikos analizės dalis.

Pythonas: pilnas darbo srautas su SpinQit

Pavyzdys parengia Bell pora, paleidžia ja simuliatoriuje ir, esant prisijungimui, tikroje SpinQ Gemini sistemoje. Skaičiuojami fidelity ir TVD vertinimai.

# integrated_run.py — Bell paruosimas ir vykdymas (SpinQit)
from spinqit import Circuit, get_compiler, BasicSimulator
from spinqit.model import H, CX, MEASURE
import math

# 1) Grandine
qc = Circuit(2)
qc.append(H,  [0])
qc.append(CX, [0, 1])
qc.append(MEASURE, [0, 1])

# 2) Lokalus simuliavimas (idealas)
exe = get_compiler("native").compile(qc, 0)
sim = BasicSimulator().run(exe, 2048).counts
print("sim:", sim)

# 3) Vykdymas tikroje sistemoje (jei prisijungta prie SpinQ Gemini)
try:
    from spinqit import NMRBackend
    real = NMRBackend().run(exe, 2048).counts
    print("real:", real)
except Exception as e:
    print("Tikra sistema nepasiekiama:", e)

# 4) Total Variation Distance tarp simuliacijos ir tikru rezultatu
def tvd(p, q, keys):
    return 0.5 * sum(abs(p.get(k, 0) - q.get(k, 0)) for k in keys)

Alternatyva: .rqmod modelis

Integruotas RQmod modelis vienu šaltinio failu apjungia audito sluoksnių aprašymą, QARS-NI vertinimą (Mosca formulę), CBOM įrodymų generavimą ir SpinQ kvantinį eksperimentą. Tinka demonstruoti, kad tas pats šaltinis duoda ir saugumo audito artefaktus, ir kvantinį eksperimentą.

// lab11-integrated.rqmod
audit "lab11-integrated-experiment" {
  targets = ["10.0.0.0/24", "edge.example.lt"]

  layers {
    transit { tls, ssh, dnssec, certs }
    use     { openssl, jwt, hsm, runtime }
    rest    { luks, tde, backups, kms }
  }

  score qars_ni {
    mosca { t_protect="24mo";
            t_data   ="10y";
            t_quantum="96mo" }
  }

  experiment bell_demo {
    qubits  = [q0, q1]
    circuit { h(q0); cx(q0, q1) }
    measure = z_basis
    shots   = 2048
    verify  { fidelity_min = 0.90 }
  }

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

  constraint {
    max_runtime   = "72h"
    evidence      = signed
    local_changes = forbidden
  }

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

resilq-q compile lab11-integrated.rqmod --out build/lab11-integrated
resilq-q run lab11-integrated.rqmod --backend spinqit-basic --out build/lab11-run

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