KET STUDIO
DOCUMENTATION · COMPLETE USER GUIDE

KET Studio’ni noldan o‘rganing.

O‘rnatish, Python muhitini sozlash, birinchi circuit run’i, vizual API, real terminal, sig‘im chegaralari va research arxivigacha bo‘lgan amaliy yo‘l.

Bu dastur nimaga xizmat qiladi?

KET Studio Python tajribasini lokal Windows desktop’da yozish, ishga tushirish, terminal oqimini ko‘rish va natijani tushunarli vizual event’lar bilan tekshirish uchun mo‘ljallangan. Quyidagi oqim dasturning asosiy modelidir:

Python script→Run launcher→stdout / KET_VIZ→Panels + history
BUGUNWindows 10/11 x64Tekshirilgan desktop release, MSIX va EXE
WEB PREVIEWUI demoPython, local file va shell yo‘q
CHEGARABackend emasSDK, remote queue va hardware alohida
Kim uchun:Python va quantum SDK bilan ishlaydigan talaba, contributor yoki researcher. Bu qo‘llanma avval deterministic demo, keyin real backend bilan ishlashni tavsiya qiladi.

15 daqiqada birinchi natija.

Birinchi setup internetga va kompyuterda Python’ga muhtoj. KET Studio core quantum paketlarni o‘zi yaratgan izolyatsiyalangan muhitga o‘rnatishga urinadi; bu jarayon birinchi marta bir necha daqiqa olishi mumkin.

  1. Downloads sahifasidan Windows x64 MSIX’ni oling. Self-signed paket bo‘lsa, certificate’ni Trusted People store’ga o‘rnating; trust muammosida EXE fallback’dan foydalaning.
  2. KET Studio’ni oching va Settings → Environment’da Python interpreter’ni tekshiring. `python`, `python3`, `py` yoki aniq `python.exe` manzilidan foydalanish mumkin.
  3. Rebuild environment tugmasini bosing. Dastur `ket_venv` yaratadi, `qiskit[visualization]`, `qiskit-aer` va `numpy` core paketlarini o‘rnatadi hamda verification circuit ishga tushiradi.
  4. Yangi project papkasini oching, `.py` fayl yarating va Editor’da kod yozing.
  5. Run yoki F5 ni bosing. stdout/stderr Terminal’da, `KET_VIZ` event’lari esa Visualization, Metrics, Inspector, Estimator yoki History panellarida ko‘rinadi.
Muhim:`ket_viz` KET Studio launcher’i tomonidan faqat Run/F5 jarayonida vaqtincha ineksiya qilinadi. Uni `pip install ket_viz` qilib qidirmang.

Papka va interpreter qanday ishlaydi?

Script joylashgan papka project root bo‘ladi. Internal Python environment esa loyiha ichida emas, application support ichidagi `ket_venv`da saqlanadi. Bu loyiha papkasini toza qoldiradi, lekin archive uchun environment ma’lumotini alohida yozib borish kerak.

my-project/
├── experiment.py       # your source
├── requirements-lock.txt
└── .ket/
    ├── out/             # PNG/SVG and other artifacts
    └── temp/            # launcher and temporary runtime files
Path / controlVazifasi
Settings → EnvironmentInterpreter path, setup status, Qiskit version va optional package boshqaruvi.
.ket/out/Matplotlib image, rendered circuit va archive qilish kerak bo‘lgan artifact’lar.
.ket/temp/Launcher va vaqtinchalik runtime fayllari; user source emas.
Run / F5Tanlangan Python file’ni alohida process’da, `ket_viz` injection bilan bajaradi.

Qiskit’dan tashqari paket kerak bo‘lsa Settings → Environment → package action orqali o‘rnating. Optional paketlar avtomatik o‘rnatilmaydi; package o‘rnatilishi internet, disk joyi va Python versiyasiga bog‘liq.

Ishlaydigan to‘liq Bell misoli.

Quyidagi template Qiskit circuit’ni yaratadi, AerSimulator’da 1024 shot bajaradi, histogram va metadata yuboradi, so‘ng circuit rasmini `.ket/out`ga saqlaydi. Bu docs oqimini tekshirish uchun eng yaxshi birinchi reproducer.

from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
import ket_viz

shots = 1024
seed = 7
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])

backend = AerSimulator(seed_simulator=seed)
result = backend.run(qc, shots=shots).result()
counts = result.get_counts()

ket_viz.metrics({
    'backend': 'AerSimulator',
    'qubits': qc.num_qubits,
    'depth': qc.depth(),
    'shots': shots,
    'seed': seed,
    'status': 'completed',
})
ket_viz.histogram(dict(counts), title='Bell-state measurement')

qc.draw(output='mpl', filename='.ket/out/bell-circuit.png')
ket_viz.circuit('.ket/out/bell-circuit.png', title='Bell circuit')

Kutiladigan natija: Terminal’da process chiqishi; Visualization’da metrics va histogram; artifact ko‘rinishida esa Bell circuit PNG. `counts` qiymatlari seed va simulator versiyasiga qarab ozgina farq qilishi mumkin.

Agar import xato bersa:Settings → Environment’da setup status va Qiskit version’ni tekshiring, Rebuild environment’ni qayta ishga tushiring. Terminal’da oddiy `python` system interpreter bo‘lishi mumkin; KET Studio Run tanlangan environment’ni ishlatadi.

Natijani qaysi panelga qanday uzatish kerak?

Quyidagi API’lar Run/F5 jarayonida to‘g‘ridan-to‘g‘ri ishlaydi. Payload JSON-safe bo‘lsin: string, number, boolean, list yoki object. Scientific object’ni avval oddiy Python qiymatlariga aylantiring.

Histogram: o‘lchov taqsimoti

Bitstring, probability yoki klassifikatsiya natijalarini bucket’lar orqali ko‘rsating.

import ket_viz

counts = {'00': 510, '01': 2, '10': 4, '11': 508}
ket_viz.histogram(counts, title='Measurement distribution')

Heatmap: matrix yoki landscape

Korrelyatsiya, cost landscape yoki zichlik matritsasi uchun qatorlari teng bo‘lgan sonli matrix yuboring.

import ket_viz

matrix = [[1.0, 0.2, 0.0],
          [0.2, 0.8, 0.1],
          [0.0, 0.1, 0.4]]
ket_viz.heatmap(matrix, title='Qubit correlation')

Chart: convergence yoki vaqt qatori

Energiya, loss, fidelity yoki boshqa numeric series’ni vaqt bo‘yicha chizing.

import ket_viz

energies = [0.50, 0.31, 0.18, 0.09, 0.04]
ket_viz.chart(energies, title='VQE convergence')

Table: parametr va qisqa report

Ikki xil signature mavjud: `table(rows)` yoki `table(title, rows)`.

import ket_viz

rows = [['Metric', 'Value'],
        ['Qubits', 4],
        ['Shots', 1024],
        ['Fidelity', 0.998]]
ket_viz.table('Experiment summary', rows)

Statevector: amplitude va phase

Har bir holat uchun `label`, `mag` va radians’dagi `phase` yuboring.

import ket_viz

amplitudes = [
  {'label': '00', 'mag': 0.707, 'phase': 0.0},
  {'label': '11', 'mag': 0.707, 'phase': 3.14159},
]
ket_viz.statevector(amplitudes, title='Bell amplitudes')

Inspector va Bloch: qadamlar

Gate, state description va Bloch koordinatalari bilan muhim qadamlarni hujjatlashtiring.

import ket_viz

frames = [
  {'gate': 'H(0)', 'state_description': 'Superposition',
   'bloch': [{'theta': 1.57, 'phi': 0.0}]},
]
ket_viz.inspector('Algorithm steps', frames)
ket_viz.bloch({'theta': 1.57, 'phi': 0.0})

Metrics: live progress va provenance

Status, seed, backend, parametrlar va iteration’ni arbitrary JSON object sifatida yuboring.

import ket_viz

ket_viz.metrics({
  'status': 'optimizing',
  'step': 12, 'energy': -1.1372,
  'seed': 20260914, 'backend': 'AerSimulator'
})

Text: izoh va status

Odam o‘qiydigan qisqa xabarni alohida text event sifatida chiqaring; exception uchun oddiy Python error’ni ham Terminal’da qoldiring.

import ket_viz

ket_viz.text('Simulation started')
# Real exception bo‘lsa uni yashirmang:
# raise RuntimeError('backend failed')

Estimator: ish boshlashdan oldingi baho

Qubit, depth, gate count va gate_counts orqali tajriba hajmini oldindan tushuntiring.

import ket_viz

ket_viz.estimator({
  'qubits': 8, 'depth': 42,
  'total_gates': 180,
  'gate_counts': {'H': 8, 'CX': 64, 'RZ': 108}
})
Tanlash qoidasi:Bir xil run’da histogram’ni o‘lchov taqsimoti, chart’ni ketma-ket metric, table’ni qisqa report, metrics’ni provenance/status, inspector’ni esa algoritm qadamlariga ajrating.

Rasm, circuit va Matplotlib natijalarini ko‘rsatish.

KET Studio circuit object’ni o‘zi parse qilmaydi. Qiskit yoki boshqa library avval fayl yaratadi, keyin `ket_viz.circuit` yoki `ket_viz.image` shu faylni panelga olib kiradi. Relative path project root’dan hisoblanadi.

from qiskit import QuantumCircuit
import matplotlib.pyplot as plt
import ket_viz

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.draw(output='mpl', filename='.ket/out/circuit.png')
ket_viz.circuit('.ket/out/circuit.png', title='Rendered circuit')

plt.plot([0, 1, 2, 3], [0.8, 0.4, 0.2, 0.1])
plt.title('Loss')
plt.savefig('.ket/out/loss.png', bbox_inches='tight')
ket_viz.image('.ket/out/loss.png', title='Loss curve')
  • Event yuborishdan oldin fayl yozilib bo‘lgan bo‘lsin.
  • Artifact publication yoki review uchun muhim bo‘lsa `.ket/out`ni project bilan birga commit yoki archive qiling.
  • Katta raw figure’ni diskka saqlang, UI’ga esa kerakli preview’ni yuboring.

Har qanday Python yoki boshqa process bilan.

`ket_viz` ishlamaydigan adapter, subprocess yoki boshqa til uchun stdout’ga bitta UTF-8 qator qilib `KET_VIZ ` + JSON chiqaring. JSON boshqa log bilan bir qatorga aralashmasin.

import json
import time

event = {
  'kind': 'histogram',
  'payload': {
    'histogram': {'0': 490, '1': 534},
    'title': 'Raw protocol'
  },
  'ts': int(time.time() * 1000)
}
print('KET_VIZ ' + json.dumps(event, ensure_ascii=False), flush=True)
  • `KET_VIZ ` prefiksi, JSON va newline bitta to‘liq qatorda bo‘lsin.
  • `kind`ga mos `payload` yuboring; real-time oqim uchun `flush=True` ishlating.
  • Rasm path event’idan oldin fayl haqiqatda yozilgan bo‘lsin.
  • Noma’lum `kind` rendererga ega emas va UI’da ko‘rsatilmaydi; malformed yoki oversize event warning bilan tashlanadi.
Formal event schema’ni ochish ↗

Qancha data foydali bo‘lib qoladi?

Limitlar ilmiy hisobni to‘xtatish uchun emas, UI’ni katta oqimda muzlab qolishidan himoya qilish uchun. Katta result’ni JSON/CSV yoki image sifatida diskka saqlang, panelga sparse yoki agregatsiyalangan preview yuboring.

PayloadLimitWhen exceeded
Bitta event8 MiBIgnore + warning
Pending queue100 eventOldest events dropped
Session / history50 / 50Bounded memory
Matrix128 × 128Limit notice
Histogram64 bucketExtra values → other
Chart2,000 pointsFirst points shown
Table100 × 32Limit notice
Statevector64 amplitudesFirst amplitudes shown
Inspector / Bloch100 itemsExtra items bounded
Circuit tavsiyasi:Circuit image uchun qat’iy qubit limiti yo‘q, chunki native parser yo‘q. Lekin o‘qilishi uchun taxminan 20 qubit va 100 depth ichida chizing; undan katta circuit’ni bo‘lib yoki muhim qadamlar bilan ko‘rsating.

VS Code’ga yaqin local shell.

Windows desktop’dagi Terminal paneli xterm3 UI va ConPTY native host bilan ishlaydi. Shell komandalarini yozing, ANSI ranglarni ko‘ring, resize qiling, input bering yoki Ctrl+C bilan process’ni to‘xtating.

python --version
where python
python -c "print('stdout OK')"
python -m pip freeze
  • Terminal’dagi `python` va Settings’da tanlangan interpreter har doim bir xil bo‘lmasligi mumkin; `where python` bilan tekshiring.
  • Run action script process’ini alohida boshqaradi; Terminal qo‘lda berilgan komandalar uchun qoladi.
  • Web preview shell ochmaydi — bu local process va fayl tizimini brauzerdan ajratadigan xavfsizlik chegarasi.
  • Process tugagach event’lar bounded session/history’da qoladi; doimiy research archive’ni project fayllari bilan o‘zingiz saqlang.

Natijani qayta tiklanadigan qiling.

KET Studio visualization’ni ko‘rsatadi, lekin ilmiy xulosani o‘zi tasdiqlamaydi. Har bir muhim run bilan source, muhit, parametr, raw result va artifact’ni birga saqlang.

research-run/
├── experiment.py
├── requirements-lock.txt
├── metadata.json          # backend, shots, seed, versions
├── raw/                    # counts, arrays, CSV/JSON
├── logs/                   # stdout and stderr
└── .ket/out/               # images and rendered circuits
  1. KET Studio version, Git commit va script SHA-256’ni yozing.
  2. OS, Python version, backend/library version va dependency lockfile’ni saqlang.
  3. Qubit, depth, gate count, shots, optimizer va seed’ni metadata’ga qo‘shing.
  4. Raw counts, logs, event JSON va `.ket/out` artifact’larini arxivlang.
  5. Rerun qilib, exit code, warning/error va natija farqini yozib qo‘ying.
Research uchun izoh:Session history qulay, ammo u bounded va doimiy registry emas. Doimiy dalil sifatida Git, raw files va `.ket/out` archive’iga tayaning.

Ishlamasa qayerdan boshlash kerak?

SymptomTekshiruv va yechim
Python topilmadiSettings → Environment’da `python.exe` yo‘lini tanlang; Terminal’da `python --version` va `where python`ni tekshiring.
Core package o‘rnatilmadiInternet, disk joyi va Python’ni tekshiring; setup log’ini o‘qing va Rebuild environment’ni qayta bosing.
`ket_viz` import xatosiScript’ni oddiy terminaldan emas, KET Studio Run/F5 orqali ishga tushiring. Raw protocol ishlatsangiz `KET_VIZ ` qatorini o‘zingiz chiqaring.
Event panelda ko‘rinmadiPrefix, valid JSON, `flush=True`, `kind` va payload shape’ni tekshiring. Noma’lum kind ko‘rsatilmaydi.
Matplotlib/circuit rasm yo‘qFayl `.ket/out`da mavjudligini, path project root’ga nisbatan to‘g‘ri ekanini va event fayl yaratilgandan keyin yuborilganini tekshiring.
MSIX yoki EXE bloklandiMSIX uchun test certificate’ni Trusted People’ga o‘rnating. EXE’da SmartScreen yangi yoki unsigned publisher sabab ogohlantirishi mumkin; SHA-256 hash’ni tekshiring.
UI sekinlashdiMatrix, chart, table, statevector va event limitlarini saqlang; raw data’ni diskka yozib, UI’ga downsample qilingan ko‘rinishni yuboring.

Muammo report qilganda KET Studio version’i, OS, Python path/version, minimal reproducer, terminal log’i va event JSON’ini birga yuboring.

Tutorial template’lariga o‘tish →

Yangi foydalanuvchi bilishi kerak bo‘lgan javoblar.

`ket_viz` alohida o‘rnatiladimi?

Yo‘q. KET Studio Run action vaqtida bu modulni launcher orqali vaqtincha process ichiga beradi. Kodni oddiy terminalda `python experiment.py` qilib ishga tushirsangiz, `ket_viz` topilmasligi tabiiy; vizual event uchun Run/F5’dan foydalaning yoki raw protocol yuboring.

Qiskit, NumPy va Matplotlib bormi?

Birinchi desktop setup izolyatsiyalangan `ket_venv` yaratadi va core paketlar — `qiskit[visualization]`, `qiskit-aer`, `numpy` — ni o‘rnatishga urinadi. `matplotlib`, `pandas`, `scipy` va IBM runtime kabi optional paketlar avtomatik o‘rnatilmaydi; kerak bo‘lsa Settings → Environment orqali qo‘shing.

Katta circuit’larni nechagacha ko‘rsatadi?

KET Studio circuit obyektini parse qilmaydi — u render qilingan PNG/SVG artifact’ni ko‘rsatadi. Shuning uchun qat’iy qubit limiti yo‘q, ammo o‘qilishi uchun taxminan 20 qubit va 100 depth ichida saqlash tavsiya etiladi. Katta circuit’ni bo‘lib chizing yoki faqat muhim qadamlarini yuboring.

Bu production research backend’mi?

Yo‘q. KET Studio lokal execution, terminal, visualization va provenance workflow’idir. U quantum backend aniqligini mustaqil tasdiqlamaydi, credential vault, remote job queue yoki hardware calibration’ni native boshqarmaydi. Ilmiy xulosani raw data va mustaqil baseline bilan tekshiring.

Repository’dagi chuqur hujjatlar

O‘rganish tartibi:Avval Tutorials’dagi deterministic template’ni Run qiling, keyin yuqoridagi Bell misolini o‘zgartiring, so‘ng API va Event Schema bilan o‘z backend natijangizni ulang.