Sadržaj knjige

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.

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.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.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

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.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.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.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.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.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?
Preuzmi fajl