Sadržaj knjige
Ova knjiga predstavlja sveobuhvatan uvod u kvantno programiranje namenjen inženjerima, programerima, fizičarima i svima koji žele da razumeju kako funkcioniše kvantno računarstvo — ne samo na nivou matematičkog formalizma i programskog koda, već i na nivou dubljeg fizičkog i ontološkog razumevanja.
Od osnovnih pojmova kvantne mehanike i linearne algebre, preko logike kvantnih kola i ključnih mehanizama kvantnog sveta — superpozicije, entanglovanja i interferencije — pa do Qiskit programiranja i najvažnijih kvantnih algoritama, čitalac se postepeno uvodi u način razmišljanja koji stoji iza nove ačunarske paradigme. Knjiga ne prikazuje kvantno programiranje samo kao skup formula i procedura, već kao oblast koja se može razumeti intuitivno, kroz dublje sagledavanje prirode kvantnog sveta.
Preuzmi fajl
Knjiga „Kvantno programiranje" autora Vladimira Ranđelovića vodi čitaoca od osnova kvantne mehanike i matematičkog aparata, preko kvantnih kola i gejtova, do programiranja u Qiskit biblioteci i implementacije poznatih kvantnih algoritama (Groverov, Šorov, kvantna Furijeova transformacija i drugi). U nastavku je kompletan sadržaj knjige, po poglavljima.
1. Uvod
- 1.1 Šta su kvantni računari
- 1.2 Analogija između klasičnog i kvantnog računara
- 1.2.1 Klasično kolo
- 1.2.2 Kvantno kolo
- 1.2.3 Kvantna moć
- 1.3 Da li će kvantni računari zameniti standardne PC računare
- 1.3.1 Kvantni računari nisu univerzalna zamena
- 1.3.2 Koegzistencija kvantnih i klasičnih računara
- 1.3.3 Tehnička ograničenja kvantnih računara
- 1.3.4 Zaključak
- 1.4 Kako se programiraju kvantni računari
- 1.4.1 Izvršavanje kvantnog algoritma unutar kvantnog kola
- 1.4.2 Kvantni računari na internetu i klaudu
- 1.4.3 Zaključak
- 1.5 Računska složenost
- 1.5.1 Notacija velikog O
- 1.5.2 Klase složenosti u klasičnom računarstvu
- 1.5.2.1 Klasa P: Problemi rešivi u polinomijalnom vremenu
- 1.5.2.2 Klasa NP: Nedeterminističko polinomijalno vreme
- 1.5.2.3 NP-potpuni problemi (NP-Complete)
- 1.5.2.4 NP-teški problemi (NP-Hard)
- 1.5.2.5 PSPACE (polinomijalna memorija)
- 1.5.3 Klase složenosti u kvantnom računarstvu
- 1.5.3.1 BQP (Bounded-error Quantum Polynomial time)
- 1.5.4 Zaključak
- 1.6 Superiornost kvantnih računara
- 1.6.1 Klasični i kvantni model računanja
- 1.6.2 Univerzalnost kvantnih računara
- 1.6.2.1 Klasična kontrola toka u kvantnim algoritmima
- 1.6.3 Kvantna supremacija
- 1.6.4 Algoritamska nadmoć: Šorov i drugi algoritmi
- 1.6.5 Kvantne simulacije — prirodna nadmoć
- 1.6.6 Kvantni računari u ekonomiji i poslovnom odlučivanju
- 1.6.7 Ograničenja kvantnih računara danas
- 1.6.8 Perspektive i zaključak
- 1.7 Kvantna i post-kvantna kriptografija
- 1.8 Strategija čitanja knjige
- 1.8.1 Brza strategija: Samo programiranje
- 1.8.2 Programerska strategija: Razumevanje kvantnih algoritama
- 1.8.3 Akademska strategija: Sistematsko razumevanje
- 1.8.4 Poslovna strategija: Strateško razumevanje
- 1.8.5 Filozofska strategija: Ontologija i interpretacije
- 1.9 Citiranje knjige
2. Kratka istorija kvantne fizike
- 2.1 Kvantni eksperimenti
- 2.2 Kvantna čudnost
- 2.3 Solvejeva konferencija
- 2.4 Kopenhaška interpretacija
- 2.5 Fon Nojmanova matematička formulacija
- 2.6 Ajnštajnov pogled
- 2.7 Šredingerova mačka
- 2.8 Bomova interpretacija – pilotski talasi
- 2.9 Everetova interpretacija – višestruki svetovi
- 2.10 Dejvid Dojč i susret sa Everetom
- 2.11 Šta je dovelo do kvantnih kompjutera
- 2.12 Prvi kvantni algoritam
- 2.13 Šorov algoritam
- 2.14 Realni kvantni kompjuteri
- 2.15 Kvantne klaud platforme
3. Matematičke osnove kvantnog računarstva
- 3.1 Kompleksni brojevi
- 3.1.1 Definicija
- 3.1.2 Geometrijska interpretacija
- 3.1.3 Sabiranje i množenje
- 3.1.4 Konjugovano kompleksni broj
- 3.1.5 Modul kompleksnog broja
- 3.1.6 Eksponencijalna forma
- 3.1.7 Primena u kvantnom računarstvu
- 3.2 Vektori
- 3.2.1 Definicija vektora
- 3.2.2 Dimenzionalnost
- 3.2.3 Sabiranje i množenje skalarom
- 3.2.4 Normirani vektori (jedinični vektori)
- 3.2.5 Unutrašnji (skalarni) proizvod
- 3.2.6 Baza vektorskog prostora
- 3.3 Kompleksni vektori
- 3.3.1 Šta je kompleksni vektor?
- 3.3.2 Zbir vektora i množenje skalarom
- 3.3.3 Konjugovani vektor i unutrašnji proizvod
- 3.3.4 Norma vektora
- 3.3.5 Ortogonalnost vektora
- 3.3.6 Hilbertov prostor
- 3.3.6.1 Osobine Hilbertovog prostora
- 3.3.6.2 Zašto je Hilbertov prostor važan u kvantnoj mehanici?
- 3.4 Matrice
- 3.4.1 Transponovane matrice
- 3.4.1.1 Osobine transponovanja
- 3.4.2 Ermitski operatori
- 3.4.2.1 Definicija ermitskih operatora
- 3.4.2.2 Primer ermitske matrice
- 3.4.2.3 Osobine ermitskih operatora
- 3.4.2.4 Fizičko značenje
- 3.4.2.5 Zaključak
- 3.4.3 Normalni operatori
- 3.4.3.1 Definicija i osnovna svojstva
- 3.4.3.2 Spektralna teorema za normalne operatore
- 3.4.3.3 Veza sa kvantnim merenjem
- 3.4.3.4 Normalni operatori koji nisu ermitski
- 3.4.3.5 Zaključak
- 3.4.4 Unitarni operatori
- 3.4.4.1 Definicija
- 3.4.4.2 Primer unitarne matrice
- 3.4.4.3 Fizičko značenje
- 3.4.4.4 Osobine unitarnih operatora
- 3.4.4.5 Važnost u kvantnim algoritmima
- 3.4.5 Paulijeve matrice
- 3.4.5.1 Definicija
- 3.4.5.2 Osobine Paulijevih matrica
- 3.4.6 Razlika između ermitske i klasične adjungovane matrice
- 3.4.6.1 Ermitska adjungovana matrica
- 3.4.6.2 Klasična adjungovana matrica
- 3.4.7 Inverzne matrice
- 3.4.7.1 Inverzna matrica i adjungovana matrica
- 3.4.7.2 Linearne transformacije i inverzne matrice
- 3.4.1 Transponovane matrice
- 3.5 Dirakova bra-ket notacija
- 3.5.1 Osnovni pojmovi
- 3.5.2 Primeri
- 3.5.3 Spoljni proizvod
- 3.5.4 Matrice u bra-ket notaciji
- 3.6 Unutrašnji proizvod vektora
- 3.6.1 Definicija
- 3.6.2 Osobine unutrašnjeg proizvoda
- 3.6.3 Fizička interpretacija
- 3.6.4 Norma i ugao između vektora
- 3.7 Spoljašnji proizvod vektora
- 3.7.1 Definicija
- 3.7.2 Primer
- 3.7.3 Projekcioni operatori
- 3.7.4 Fizička interpretacija
- 3.8 Tenzorski proizvod
- 3.8.1 Tenzorski proizvod vektora
- 3.8.2 Kronekerovo pravilo
- 3.8.3 Osobine tenzorskog proizvoda
- 3.8.4 Fizički značaj
- 3.9 Sopstveni vektori i sopstvene vrednosti
- 3.9.1 Definicija
- 3.9.2 Karakteristična jednačina
- 3.9.3 Uloga u kvantnoj mehanici
- 3.9.4 Ortogonalnost i normalizacija
4. Kvantni svet
- 4.1 Šta je čudno u kvantnom svetu
- 4.1.1 Interferencija i klasični pristup
- 4.1.1.1 Amplitude verovatnoće i kompleksni brojevi
- 4.1.1.2 Hajgensov princip
- 4.1.2 Eksperiment sa dva proreza
- 4.1.2.1 Double slit eksperiment sa laserskim zrakom
- 4.1.2.2 Double slit eksperiment sa pojedinačnim fotonima
- 4.1.3 Kvantni tester bombe
- 4.1.1 Interferencija i klasični pristup
- 4.2 Ontologija kvantnog sveta
- 4.2.1 Teorija kolapsa talasne funkcije
- 4.2.2 Pilotski talasi (Bomova mehanika)
- 4.2.3 Everetova interpretacija više svetova
- 4.2.3.1 Problem održanja energije
- 4.2.3.2 Problem verovatnoće
- 4.2.3.3 Popularnost Everetove interpretacije
- 4.2.4 Zaključak
- 4.3 Osnovni kvantni koncepti
- 4.3.1 Kubit
- 4.3.1.1 Fizičke realizacije kubita
- 4.3.2 Kvantna stanja
- 4.3.2.1 Primer: Spin elektrona
- 4.3.3 Superpozicija i interferencija
- 4.3.3.1 Ulazak u interferenciju i izlazak iz interferencije
- 4.3.3.2 Superpozicija: više mogućnosti odjednom
- 4.3.4 Kvantni paralelizam i Everetova interpretacija
- 4.3.4.1 Kvantni paralelizam: "sve vrednosti odjednom"
- 4.3.4.2 Everetova interpretacija: svi svetovi postoje
- 4.3.4.3 Interpretacija i praksa
- 4.3.5 Entanglovanje
- 4.3.5.1 Suština entanglovanja
- 4.3.5.2 Merenje jednog — određuje drugo
- 4.3.5.3 Everetova interpretacija entanglovanja
- 4.3.6 Problem merenja
- 4.3.6.1 Matematika idealnog merenja
- 4.3.7 Nemogućnost kloniranja kvantnih informacija
- 4.3.7.1 Nemogućnost kloniranja punog kvantnog stanja
- 4.3.7.2 Posledice teoreme o nemogućnosti kloniranja
- 4.3.8 Hajzenbergov princip neodređenosti
- 4.3.8.1 Suština principa
- 4.3.8.2 Šta neodređenost nije
- 4.3.8.3 Talasna osnova
- 4.3.8.4 Kvantna intuicija
- 4.3.9 Bornovo pravilo i verovatnoća
- 4.3.10 Šredingerova jednačina
- 4.3.10.1 Kvantno stanje
- 4.3.10.2 Evolucija kvantnog sistema
- 4.3.10.3 Opservable i proces merenja
- 4.3.10.4 Šredingerova jednačina i kvantno programiranje
- 4.3.1 Kubit
5. Kvantna kola
- 5.1 Klasična logička kola
- 5.1.1 NOT kolo
- 5.1.2 AND kolo
- 5.1.3 OR kolo
- 5.1.4 XOR kolo
- 5.1.5 Univerzalna logička kola
- 5.1.5.1 NAND kolo
- 5.1.5.2 Realizacija logičkih kola pomoću NAND kola
- 5.1.5.3 Univerzalnost u kvantnom svetu
- 5.1.6 Klasična logička kola nisu reverzibilna
- 5.1.6.1 Značaj reverzibilnosti u kvantnom svetu
- 5.1.6.2 Fizički aspekt reverzibilnosti i Landauerov princip
- 5.2 Kubit
- 5.2.1 Prednosti kubita
- 5.2.2 Matematičko predstavljanje kubita
- 5.2.2.1 Kompleksna amplituda
- 5.2.3 Blohova sfera
- 5.2.3.1 Klasična stanja
- 5.2.3.2 Stanja u superpoziciji
- 5.3 Globalna i relativna faza
- 5.4 Q-sfera
- 5.4.1 Primer čitanja Q-sfere
- 5.5 Kvantni gejtovi
- 5.5.1 Paulijeva grupa gejtova
- 5.5.1.1 Pauli X-gejt
- 5.5.1.2 Pauli Y-gejt
- 5.5.1.3 Pauli Z-gejt
- 5.5.2 Adamarov gejt (H-gejt)
- 5.5.3 S-gejt
- 5.5.4 T-gejt
- 5.5.5 CNOT-gejt
- 5.5.5.1 CNOT i entanglovanje 2 kubita
- 5.5.5.2 CNOT liči na merenje
- 5.5.6 Univerzalni kvantni gejtovi
- 5.5.6.1 Klifordova grupa gejtova
- 5.5.6.2 H-gejt i T-gejt
- 5.5.6.3 Definisanje kvantne univerzalnosti
- 5.5.6.4 Standardni univerzalni skup: {H, T, CNOT}
- 5.5.6.5 Uloga Tofoli-gejta
- 5.5.1 Paulijeva grupa gejtova
- 5.6 Kvantna logička kola
- 5.6.1 Kvantno kolo za negaciju kubita: X-gejt
- 5.6.2 Kvantno XOR kolo
- 5.6.3 Kvantno AND logičko kolo
- 5.6.4 Kvantno OR logičko kolo
6. Osnovni mehanizmi kvantnih kola
- 6.1 Superpozicija
- 6.1.1 Transformacija Z-gejta u X-gejt
- 6.1.2 Nejednaka superpozicija
- 6.1.2.1 Primena X-gejta u slučaju nejednake superpozicije
- 6.1.3 Generisanje prave slučajnosti
- 6.1.4 Više kubita – više slučajnosti
- 6.2 Entanglovanje
- 6.2.1 Definicija entanglovanja iz ugla programera
- 6.2.1.1 Entanglovanje nasuprot klasične korelacije
- 6.2.2 Kvantno kolo za kreiranje entanglovanja
- 6.2.2.1 Evolucija stanja
- 6.2.2.2 Rezultat
- 6.2.3 Belova stanja
- 6.2.4 Intuitivno razumevanje entanglovanja
- 6.2.1 Definicija entanglovanja iz ugla programera
- 6.3 Kvantna crna kutija
- 6.3.1 Mikrokontroler kao klasična crna kutija
- 6.3.2 Osnovna ideja kvantnog orakla
- 6.3.3 Kako funkcioniše kvantni orakl
- 6.3.3.1 Kvantni orakl kod Dojčovog algoritma
- 6.3.3.2 Konstantna funkcija
- 6.3.3.3 Balansirana funkcija
- 6.4 Fazni povratni efekat
- 6.4.1 Matematički pristup faznom povratnom efektu
- 6.4.2 Everetov pristup faznom povratnom efektu
- 6.4.3 Fazni povratni efekat kada ciljni kubit nije u superpoziciji
- 6.4.4 Ukratko o faznom povratnom efektu
7. Programiranje Qiskit bibliotekom
- 7.1 „Little-endian“ redosled kubita u Qiskitu
- 7.2 Prvi kvantni program
- 7.3 Biblioteka quantum_utils
- 7.3.1 Metode za analizu stanja
- 7.3.1.1 get_state
- 7.3.1.2 get_full_state
- 7.3.1.3 print_state
- 7.3.1.4 get_probabilities
- 7.3.1.5 print_probabilities
- 7.3.1.6 get_fidelity
- 7.3.2 Metode za vizualizaciju
- 7.3.2.1 show_bloch_sphere
- 7.3.2.2 show_qsphere
- 7.3.2.3 show_qc
- 7.3.2.4 show_measurement
- 7.3.1 Metode za analizu stanja
- 7.4 Pisanje kvantnog programa
- 7.5 Pristup kvantnim računarima putem IBM-a
- 7.6 Generalna struktura kvantnog programa
8. Kvantni algoritmi
- 8.1 Dojčov algoritam
- 8.1.1 Šta rešava Dojčov algoritam?
- 8.1.2 Kako algoritam radi?
- 8.1.3 Implementacija u Qiskit-u
- 8.1.4 Opis programa
- 8.1.4.1 Dojčov algoritam sa konstantnom funkcijom
- 8.1.4.2 Dojčov algoritam sa balansiranom funkcijom
- 8.1.5 Zaključak
- 8.2 Kvantna Furijeova transformacija
- 8.2.1 Klasična Furijeova transformacija
- 8.2.1.1 Digitalizacija analognog signala
- 8.2.2 Diskretna Furijeova transformacija (DFT)
- 8.2.2.1 Matematička definicija DFT-a
- 8.2.2.2 Primer DFT-a
- 8.2.2.3 Zaključak
- 8.2.3 Kvantna Furijeova transformacija
- 8.2.3.1 Definicija QFT
- 8.2.3.2 Primer QFT()
- 8.2.4 Kvantno kolo za QFT?
- 8.2.5 Enkodovanje binarnog broja u fazu
- 8.2.1 Klasična Furijeova transformacija
- 8.3 Inverzna Furijeova transformacija
- 8.3.1 Matematička definicija
- 8.3.2 Primena QFT-1
- 8.3.3 Kvantno kolo za QFT-1
- 8.4 Kvantna estimacija faze (QPE – Quantum Phase Estimation)
- 8.4.1 Uslovi za primenu QPE algoritma?
- 8.4.2 Estimacija faze T-gejta
- 8.5 Šorov algoritam
- 8.5.1 RSA enkripcija
- 8.5.2 Kako se enkriptuje poruka
- 8.5.3 Orbite i period modularne funkcije
- 8.5.3.1 Period modularne funkcije
- 8.5.3.2 Orbite modularne funkcije i dejstvo operatora
- 8.5.3.3 Orbita početnog stanja
- 8.5.3.4 Unitarni operator U za kretanje po orbiti
- 8.5.3.5 Različite orbite modularne funkcije
- 8.5.3.6 Analogija sa 3x3 matricom
- 8.5.4 Kvantno određivanje perioda Šorovim algoritmom
- 8.5.4.1 Određivanje broja kubita po registrima
- 8.5.4.2 Inicijalizacija registara
- 8.5.4.3 Modularna eksponencijacija
- 8.5.4.4 Inverzna Furijeova transformacija u Šorovom algoritmu
- 8.5.4.5 Merenje i određivanje perioda
- 8.5.5 Faktorizacija i dekripcija
- 8.5.5.1 Faktorizacija broja N na osnovu perioda
- 8.5.5.2 Izračunavanje privatnog ključa
- 8.5.5.3 Dekripcija poruke
- 8.5.6 Sažetak postupka dekripcije RSA poruke
- 8.6 Kvantna teleportacija
- 8.6.1 Protokol teleportacije
- 8.6.2 Zaključak
9. Kvantno kolo uradi-sam
- 9.1 Teorijski koncept kvantnog kola uradi-sam
- 9.1.1 Koncept: Kubit kao putanja fotona
- 9.1.2 Komponente našeg kvantnog kola
- 9.1.3 Matematički opis eksperimenta: Korak po korak
- 9.1.4 Ekvivalentan Qiskit program
- 9.2 Praktična realizacija kvantnog kola
- 9.2.1 Realizacija optičkog dela kvantnog kola
- 9.2.1.1 Potrebne optičke komponente:
- 9.2.1.2 Postavljanje komponenti
- 9.2.2 Realizacija hardvera uz pomoć Arduina
- 9.2.3 Arduino program
- 9.2.3.1 Objašnjenje Arduino programa
- 9.2.1 Realizacija optičkog dela kvantnog kola
- 9.3 Kvantnomehanička interpretacija eksperimenta
- 9.3.1 Superpozicija stanja
- 9.3.2 Uloga X-gejtova
- 9.3.3 Interferencija verovatnoća
- 9.3.4 Uloga pomerača faze (Z-gejt)
- 9.3.5 Merenje i „kolaps“ talasne funkcije
- 9.3.6 Zašto je ovo važno?