KVANTNO PROGRAMIRANJE I — Osnove Onlajn
Praktični kurs za programere i inženjere
Kvantno programiranje I — Osnove
Kvantno programiranje I — Osnove: prvi je od dva povezana kursa i namenjen je programerima i inženjerima koji nemaju prethodno iskustvo sa kvantnom fizikom. Cilj kursa je da polaznik od nule stigne do samostalnog pisanja, vizualizacije i debagovanja kvantnih programa, ovladavajući ključnim kvantnim resursima — superpozicijom i entanglovanjem.
Pristup učenju je inženjerski: kubit se tretira kao memorijska jedinica, gejt kao operacija, a kvantno kolo kao program. Matematika je svedena na neophodan minimum i uvek je predstavljena kroz kod i vizualizaciju.
Već od četvrtog časa polaznici pišu i izvršavaju sopstvene programe u Pythonu i Qiskitu, koristeći pomoćnu biblioteku quantum_utils za analizu i vizualizaciju kvantnih stanja.
Kurs se završava obradom entanglovanja i Belovih stanja, čime polaznik stiče sve preduslove za drugi kurs: Kvantno programiranje II — Algoritmi. U drugom kursu obrađuju se kvantna teleportacija, kvantni orakl i kvantni algoritmi.
Po završetku prvog kursa polaznici će moći da:
- razumeju šta kvantni računar realno može, a šta ne može, i kako se uklapa u hibridni klaud model;
- pišu, izvršavaju i tumače rezultate kvantnih programa u Qiskitu;
- koriste superpoziciju kao programerski resurs, uključujući generator pravih slučajnih brojeva;
- provere i vizualizuju kvantno stanje pomoću biblioteke
quantum_utils; - rade sa višekubitnim sistemima i dvokubitnom logikom, uključujući CNOT gejt;
- kreiraju entanglovana Belova stanja.
Potrebno predznanje: osnovno poznavanje Pythona. Kvantna fizika i napredna matematika nisu potrebne.
Program kursa
Nova računarska paradigma i arhitektura sistema
Šta kvantni računar zaista jeste i gde se uklapa u postojeći tehnološki svet?
Cilj časa je da poruši marketinške mitove i postavi realan model kvantnog računarstva pre nego što se napiše ijedna linija koda.
Teme koje se obrađuju
- Šta su zapravo kvantni računari i po čemu se suštinski razlikuju od klasičnih računara (poglavlja 1.1 i 1.2).
- Odakle dolazi kvantna moć: eksponencijalni prostor stanja i zašto kvantni računar nije samo „brži procesor“ (1.2.3).
- Zašto kvantni računari neće zameniti standardne PC računare i koja su njihova realna ograničenja (1.3.1–1.3.3).
- Moderni hibridni klaud model: kako klasičan CPU/GPU poziva i upravlja kvantnom procesorskom jedinicom, odnosno QPU (1.4 i 1.4.2).
- Klase problema kod kojih kvantni računar može da donese prednost: faktorizacija, simulacije i optimizacija (1.5 i 1.6).
- Zašto se kvantno računarstvo tiče upravo programera i inženjera: najava razbijanja RSA enkripcije kao motiva za drugi kurs (1.7).
- Demo uživo: IBM Quantum platforma i pogled na pravi kvantni računar preko klauda.
Praktični ishod: polaznik ima realnu sliku o tome šta kvantni računar jeste, razume hibridnu arhitekturu kvantnog računarstva i otvorio je nalog na IBM Quantum platformi.
Logička kola i uvod u reverzibilnost
Most od poznatog ka nepoznatom — klasična logika kao odskočna daska
Polaznici polaze od nečega što već poznaju — klasičnih logičkih kola — i otkrivaju ključno svojstvo koje razdvaja klasični od kvantnog sveta: reverzibilnost.
Teme koje se obrađuju
- Brzi podsetnik: klasična logička kola NOT, AND, OR i XOR, kao i njihove tablice istinitosti (5.1.1–5.1.4).
- Univerzalnost: kako se sva logička kola mogu izgraditi pomoću NAND kola (5.1.5).
- Ključni problem: klasična kola gube informaciju — iz izlaza se ne može uvek rekonstruisati ulaz (5.1.6).
- Landauerov princip: brisanje informacije troši energiju — fizika koja diktira dizajn računarskih sistema (5.1.6.2).
- Zašto kvantni svet zahteva reverzibilnost: svaka kvantna operacija mora biti poništiva (5.1.6.1).
- Prva najava: kako će klasična kola biti prevedena u reverzibilne kvantne verzije, što će biti detaljnije obrađeno na času 7 i u drugom kursu.
Praktični ishod: polaznik razume pojam reverzibilnosti i Landauerov princip, kao i zašto je reverzibilnost obavezna u kvantnom računarstvu.
Anatomija kubita i programerski minimalna matematika
Kubit kao memorijska jedinica — vizuelno, bez teškog formalizma
Sva neophodna matematika koncentrisana je u ovom času i predstavljena programerskim jezikom, kroz vektore stanja, bra-ket notaciju i vizualizaciju kvantnih stanja.
Teme koje se obrađuju
- Koncept kubita: šta kubit „pamti“ i po čemu je bogatiji od klasičnog bita (5.2 i 4.3.1).
- Kompleksne amplitude kao „težine“ mogućih ishoda — minimalan uvod u kompleksne brojeve, samo u meri u kojoj je potreban za razumevanje kubita (3.1 i 5.2.2.1).
- Vektor stanja kao struktura podataka i bra-ket notacija kao njegova sintaksa: |0⟩, |1⟩ i |ψ⟩ (3.2 i 3.5).
- Blohova sfera: kubit kao tačka na sferi, klasična stanja kao polovi, a superpozicija kao stanje koje se može prikazati na površini sfere (5.2.3).
- Q-sfera: vizualizacija sistema sa više kubita (5.4).
- Kratak pregled fizičkih realizacija kubita: superprovodnici, zarobljeni joni i fotoni (4.3.1.1).
Praktični ishod: polaznik razume kubit kao vektor stanja, čita osnovnu bra-ket notaciju i ume da protumači prikaz kubita na Blohovoj sferi, kao i prikaz višekubitnog sistema pomoću Q-sfere.
Hello Quantum World! Prvi Qiskit program
Odmah u kod — prvi izvršeni kvantni program
Ovo je prvi praktičan čas na kursu. Polaznici postavljaju razvojno okruženje i pišu kompletan, funkcionalan kvantni program od nule.
Teme koje se obrađuju
- Postavka razvojnog okruženja: Python, Qiskit i pomoćna biblioteka
quantum_utils(7.2). - Anatomija kvantnog programa: kreiranje objekta
QuantumCircuiti definisanje kvantnih i klasičnih registara (7.2 i 7.6). - Primena prvog kvantnog gejta: Pauli X-gejt kao kvantni ekvivalent logičke operacije NOT (5.5.1.1 i 5.6.1).
- Merenje kubita i mapiranje rezultata merenja na klasične bitove.
- Izvršavanje kvantnog programa na simulatoru i tumačenje rezultata pomoću histograma merenja.
- Generalna struktura svakog kvantnog programa kao šablon za dalji rad (7.6).
Praktični ishod: svaki polaznik samostalno je napisao, pokrenuo i protumačio rezultate svog prvog kvantnog programa.
Superpozicija, TRNG i transformacija Z-gejta u X-gejt
Prvi program sa praktičnom kvantnom prednošću
Na ovom času uvodi se najvažniji jednokubitni gejt — Hadamardov gejt, odnosno H-gejt — i odmah se primenjuje na praktičan projekat: generisanje pravih slučajnih brojeva pomoću kvantnog računara.
Teme koje se obrađuju
- Hadamardov (H) gejt: ulazak kubita u superpoziciju i formiranje stanja sa verovatnoćom merenja 50/50 (5.5.2 i 6.1).
- Projekat: generator pravih slučajnih brojeva, odnosno TRNG (true random number generator) — zašto kvantni random može biti istinski slučajan, dok su klasični algoritamski generatori slučajnih brojeva pseudo-slučajni (6.1.3).
- Proširenje ideje: više kubita omogućava generisanje više slučajnih bitova odjednom (6.1.4).
- Pauli Z-gejt i pojam faze u kvantnom stanju (5.5.1.3 i 5.3).
- Glavni koncept časa: „sendvič“ od H-gejtova pretvara fazni Z-gejt u bit-flip X-gejt, odnosno H–Z–H = X (6.1.1).
- Računarska baza i fazna baza: prelazak iz jedne baze u drugu i nazad kao jedan od temeljnih trikova kvantnih algoritama koji će biti obrađeni u drugom kursu.
Praktični ishod: polaznik je izgradio kvantni generator pravih slučajnih brojeva i razume odnos između računarske i fazne baze — koncept koji je ključan za kasnije razumevanje kvantnih algoritama.
Napredni alati za debaging i analiza kvantnog stanja
Kako „zaviriti“ u kvantni registar pre nego što ga merenje promeni?
Ovo je praktičan čas posvećen alatima bez kojih je ozbiljan razvoj kvantnih programa gotovo nemoguć. Polaznici uče kako da analiziraju, prate i vizualizuju kvantno stanje tokom izvršavanja kvantnog kola.
Teme koje se obrađuju
- Problem merenja: zašto merenje menja kvantno stanje i zašto nam je potreban poseban „debager“ za kvantne programe (4.3.6).
- Biblioteka
quantum_utils: pregled, namena i mesto u procesu razvoja kvantnih programa (7.3). - Metode za analizu kvantnog stanja:
get_state,get_full_stateiprint_state(7.3.1.1–7.3.1.3). - Verovatnoće ishoda merenja:
get_probabilitiesiprint_probabilities(7.3.1.4 i 7.3.1.5). - Vizuelni alati za razumevanje kvantnog kola i kvantnog stanja:
show_bloch_sphere,show_qsphere,show_qcishow_measurement(7.3.2). - Vežba: praćenje evolucije kvantnog stanja kroz kolo, korak po korak, kombinovanjem svih prethodno naučenih gejtova.
Praktični ishod: polaznik ume da inspektuje i vizualizuje kvantno stanje u bilo kojoj tački kvantnog kola i ovladao je osnovnim „debagerom“ kvantnih programa.
Višekubitni sistemi i prva dvokubitna logika (CNOT)
Kombinovanje kubita i prvi gejt koji povezuje dva kubita
Na ovom času prelazi se sa jednog kubita na sisteme sa više kubita. Uvodi se prvi dvokubitni gejt — CNOT — koji omogućava povezivanje kubita i predstavlja osnovu za razumevanje složenijih kvantnih kola.
Teme koje se obrađuju
- Kako se stanja više kubita softverski kombinuju: intuitivno razumevanje tenzorskog, odnosno Kronekerovog proizvoda (3.8 i 3.8.2).
- Rast prostora stanja: n kubita → 2n amplituda, kao direktna veza sa pojmom „kvantne moći“ obrađenim na času 1.
- Little-endian redosled kubita u Qiskitu — praktična zamka koja često dovodi do pogrešnog tumačenja rezultata i način kako je izbeći (7.1).
- CNOT gejt: prvi dvokubitni gejt, uslovna kvantna logika, kontrolni kubit i ciljni kubit (5.5.5).
- CNOT kao kvantni oblik operacije XOR i njegova uloga u prenosu informacije između kubita (5.6.2).
- Vežba: izrada kvantnog kola sa dva kubita i CNOT gejtom, kao i provera tablice istinitosti u Qiskitu.
Praktični ishod: polaznik ume da radi sa višekubitnim sistemima, razume tenzorski proizvod i little-endian raspored kubita, i samostalno koristi CNOT gejt u kvantnom kolu.
Kvantno entanglovanje (preplitanje) i Belova stanja
Najčudniji i najmoćniji resurs u kvantnoj informatici — i most ka drugom kursu
Završni čas prvog kursa temeljno uvodi entanglovanje, koje je temelj za teleportaciju i algoritme u nastavku.
Definicija entanglovanja iz ugla programera, bez mistike (6.2.1) Entanglovanje nasuprot klasične korelacije: zašto to nisu "dve promenljive sa istom vrednošću" (6.2.1.1) Kvantno kolo za entanglovanje: H + CNOT, evolucija stanja korak po korak (6.2.2) Fenomen: merenje jednog kubita trenutno određuje stanje drugog (4.3.5, 6.2.4) Belova stanja: četiri maksimalno entanglovana stanja (6.2.3) Vežba: kreiranje Belovog stanja i softverska verifikacija zavisnosti kroz statistiku merenja Kratka digresija: Ajnštajnovo neslaganje i "spooky action at a distance" (2.6) — kao zanimljivost, 2–3 min Pregled pređenog i najava drugog kursa: teleportacija, orakli i kvantni algoritmi
Praktični ishod: polaznik ume da kreira, izmeri i verifikuje entanglovano Belovo stanje i razume po čemu se ono razlikuje od klasične korelacije — spreman je za drugi kurs.
Prijavite se na kurs
Iskažite interesovanje ili se prijavite na „KVANTNO PROGRAMIRANJE I — Osnove“ — kontaktiraćemo vas radi potvrde i daljih koraka.
Kako prijava funkcioniše
- Izaberite da li samo iskazujete interesovanje ili se prijavljujete.
- Ostavite kontakt podatke da bismo vam se javili.
- Prijava nije obavezujuća — sve detalje dogovaramo naknadno.