High level programming in quantum computer science
Transkrypt
High level programming in quantum computer science
Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie High level programming in quantum computer science Programowanie wysokopoziomowe w informatyce kwantowej Autor: Piotr Gawron Promotor: prof. dr hab. inż. Jerzy Klamka Instytut Informatyki Teoretycznej i Stosowanej PAN 23 grudnia 2008 Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Plan wystąpienia 1 Wstęp Motywacja Teza pracy 2 Model obliczeń kwantowych Kanały kwantowe Kanały kwantowe obarczone szumem 3 Wysokopoziomowe struktury programistyczne w programowaniu kwantowym Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych 4 Środowisko quantum-octave Przykład zastosowania 5 Podsumowanie Wyniki i wnioski Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Motywacja Teza pracy Plan wystąpienia 1 Wstęp Motywacja Teza pracy 2 Model obliczeń kwantowych Kanały kwantowe Kanały kwantowe obarczone szumem 3 Wysokopoziomowe struktury programistyczne w programowaniu kwantowym Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych 4 Środowisko quantum-octave Przykład zastosowania 5 Podsumowanie Wyniki i wnioski Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Motywacja Teza pracy Motywacja Wykorzystanie kwantowych systemów informatyki pozwala na efektywniejsze rozwiązywanie niektórych problemów informatycznych. Algorytmy Istnieją algorytmy kwantowe, np.: wyszukiwania w nieuporządkowanym zbiorze, poszukiwania dzielników liczb, badania, czy element znajduje się w zbiorze, rozwiązywania układów równań liniowych, które wymagają mniejszej liczby operacji elementarnych niż ich odpowiedniki klasyczne. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Motywacja Teza pracy Motywacja Protokoły Protokoły kwantowe pozwalają na: ustalenie bezpiecznego klucza, teleportację stanu kwantowego. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Motywacja Teza pracy Motywacja Gry Wykorzystanie splątania przez graczy pozwala na uzyskanie większych wartości wygranych. Istnieją gry, w których gracz wykorzystujący zasady kwantowe ma całkowitą kontrolę nad wynikiem gry. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Motywacja Teza pracy Problem W jaki sposób zapisać program operujący na kwantowym systemie informatycznym? Jak szum pojawiający się w takich systemach obniża ich sprawność? Rozwiązanie Użyć dedykowanego kwantowego języka programowania, dającego możliwość efektywnego wykorzystania abstrakcyjnych konstrukcji programistycznych, jednocześnie wspierającego modelowanie i symulację procesów dekoherencji. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Motywacja Teza pracy Pojęcia podstawowe Bramka kwantowa – macierz unitarna. Elementarne bramki kwantowe: CN ot, SU (2). Obwód kwantowy – ciąg bramek kwantowych. Kanał kwantowy – dowolna operacja na stanie kwantowym zgodna z zasadami mechaniki kwantowej. Dekoherencja – nieodwracalny proces fizyczny, w wyniku którego następuje utrata informacji; inaczej szum kwantowy. Proces kwantowy – algorytm, protokół lub gra kwantowa. Wysokopoziomowy język programowania – język programowania niezależny od sprzętu, zaopatrzony w abstrakcyjne struktury programistyczne. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Motywacja Teza pracy Teza pracy „Wysokopoziomowy opis obwodów kwantowych z uwzględnieniem nieunitarnych kanałów kwantowych pozwala na badanie zjawiska dekoherencji w procesach kwantowych.” Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Plan wystąpienia 1 Wstęp Motywacja Teza pracy 2 Model obliczeń kwantowych Kanały kwantowe Kanały kwantowe obarczone szumem 3 Wysokopoziomowe struktury programistyczne w programowaniu kwantowym Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych 4 Środowisko quantum-octave Przykład zastosowania 5 Podsumowanie Wyniki i wnioski Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Stan Stan (mieszany) układu (komputera) kwantowego to macierz: ρ† = ρ – hermitowska, eig (ρ) ≥ 0 – dodatnio półokreślona, Tr (ρ) = 1 – o śladzie jeden. Taką macierz nazywamy macierzą gęstości. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Kanały kwantowe Kanały kwantowe przeprowadzają macierze gęstości w macierze gęstości. Zatem operator Φ(·) 1 musi zachowywać ślad, hermitowskość i dodatniość: Tr (ρ) = 1, ρ ≥ 0, ρ = ρ† ⇒ Tr (Φ(ρ)) = 1, Φ(ρ) ≥ 0, Φ(ρ) = Φ(ρ)† , (1) 2 musi być liniowy: ! Φ X p i ρi = i 3 X pi Φ (ρi ) , (2) i i całkowicie dodatni: ! ρi , ξi ≥ 0 ⇒ ∀n∈N (Φ⊗In ) X i Piotr Gawron ρi ⊗ ξi = X Φ (ρi )⊗ξi ≥ 0. (3) i Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Operatory Krausa W ogólności kanał kwantowy Φ może być opisany w postaci operatorów Krausa {Ek }: X Φ(ρ) = Ek ρEk † , (4) k gdzie operatory spełniają warunek zupełności: X Ek † Ek = I. (5) k [NC00] Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Szum w układach kwantowych Źródłem szumu (dekoherencji) w układzie kwantowym jest interakcja układu z otoczeniem. W dalszych rozważaniach analizuję model szumu, w którym błędy pojawiają się niezależnie z jednakowym prawdopodobieństwem na każdym qubicie. Zakładam, że szum działa na układ w dyskretnych momentach czasu. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Kanały kwantowe – modelujące szum w układzie kwantowym 1/3 Rodziny kanałów jednoqubitowych kanał depolaryzujący (podmienia stan na stan całkowicie losowy) np p p p 0 o 1 − 3α/4I, α/4 [ 01 10 ] , α/4 0i −i α/4 10 −1 , 0 , zmniejszający amplitudę (|1i → |0i) nh i h √ io 1√0 0 α , 0 1−α , 0 0 zmniejszający fazę (niszczący względną fazę pomiędzy stanami bazowymi): nh i h io 1√0 0 √0 , , 0 α 0 1−α Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Kanały kwantowe – modelujące szum w układzie kwantowym 2/3 Rodziny kanałów jednoqubitowych cd. zmiana fazy, √ √ 0 1 − αI, α 10 −1 , zmiana bitu √ √ 1 − αI, α [ 01 10 ] , zmiana bitu i fazy √ √ 1 − αI, α 0i −i , 0 gdzie α ∈ [0, 1] reprezentuje poziom szumu w układzie. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Kanały kwantowe Kanały kwantowe obarczone szumem Kanały kwantowe – modelujące szum w układzie kwantowym 3/3 Rozszerzenie do kanałów wieloqubitowych Z n jednoqubitowych operatorów Krausa {ek } tworzymy nN operatorów P {Ek } o wymiarze 2N , tworząc kanał Φ(ρ) = k Ek ρEk† : Φ(ρ) = n X ei1 ⊗ ei2 ⊗ . . . ⊗ eiN ρe†i1 ⊗ e†i2 ⊗ . . . ⊗ e†iN . (6) i1 ,i2 ,...iN =1 Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Plan wystąpienia 1 Wstęp Motywacja Teza pracy 2 Model obliczeń kwantowych Kanały kwantowe Kanały kwantowe obarczone szumem 3 Wysokopoziomowe struktury programistyczne w programowaniu kwantowym Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych 4 Środowisko quantum-octave Przykład zastosowania 5 Podsumowanie Wyniki i wnioski Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Operacje na pamięci kwantowej 1/2 Aplikacja kanału kwantowego Ki na pamięci kwantowej: X ρt+1 = Ki ρt Ki † . (7) i Dodanie n qubitów do pamięci kwantowej: . . 0}|. ρt+1 = ρt ⊗ |0 . . 0}ih0 | .{z | .{z n (8) n Usunięcie n qubitów r = {qi1 , . . . , qin } : ρt+1 = Trr (ρt ) . Piotr Gawron (9) Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Operacje na pamięci kwantowej 2/2 Unitarna ewolucja U pamięci kwantowej: ρt+1 = U ρt U † . (10) Pomiar w bazie obliczeniowej: ρt+1 = X |iihi|ρt |iihi|, (11) P (i) = Tr (|iihi|ρt ) , (12) i gdzie i indeksuje stany bazy obliczeniowej. [Oem03] Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Operacje warunkowe na rejestrach kwantowych 1/5 Kwantowe wyrażenie warunkowe Pseudokod qbit q0; qbit q1; if (q0) G1(q1); else G2(q1); Obwód kwantowy |q0 i • |q1 i G1 Piotr Gawron ⊕ • ⊕ G2 Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Operacje warunkowe na rejestrach kwantowych 2/5 Zastosowanie operatora logicznego lub Pseudokod qbit q1; qbit q2; qbit q3; qbit q4; if (q1 or q2) G1(q3); else G2(q4); Obwód kwantowy |q1 i • |q2 i • • |q3 i G1 G1 ⊕ |q4 i • ⊕ ⊕ • ⊕ • ⊕ • ⊕⊕ • ⊕ G1 G2 Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Operacje warunkowe na rejestrach kwantowych 3/5 Zastosowanie operatora arytmetycznego mniejszy niż Pseudokod qreg[4] r; qbit q1; qbit q2; quantum-octave r=newregister(4); q1=newregister(1); q2=newregister(1); if (r<3) G1(q2); else G2(q1); qif(... qrlt(qureg(q1),3),... {G1,qureg(q2)}, ... {G2,qureg(q1)}) Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Operacje warunkowe na rejestrach kwantowych 4/5 Zastosowanie operatora arytmetycznego mniejszy niż Obwód kwantowy • ⊕ • ⊕ |r0 i ⊕ • ⊕ • |r1 i ⊕ • ⊕⊕ • ⊕ • |r2 i ⊕ • ⊕⊕ • ⊕⊕ • ⊕⊕ • ⊕ • |r3 i ⊕ • ⊕⊕ • ⊕⊕ • ⊕⊕ • ⊕⊕ • |q1 i |q2 i • G2 G1 G1 ⊕ • ⊕ • ⊕ • ⊕ • G2 ⊕ ... • • G2 G1 Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Operacje warunkowe na rejestrach kwantowych 5/5 Zastosowanie wskaźnika kwantowego Pseudokod Obwód kwantowy |q0 i ⊕ • ⊕ ⊕ • ⊕ |q1 i ⊕ • ⊕ qreg[2] r1; qreg[2] r2; if(*r1) G(r2); |q2 i • • • ⊕ • ⊕ • G |q3 i G |q4 i G |q5 i G Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Plan wystąpienia 1 Wstęp Motywacja Teza pracy 2 Model obliczeń kwantowych Kanały kwantowe Kanały kwantowe obarczone szumem 3 Wysokopoziomowe struktury programistyczne w programowaniu kwantowym Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych 4 Środowisko quantum-octave Przykład zastosowania 5 Podsumowanie Wyniki i wnioski Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania quantum-octave – język opisu procesów kwantowych Zaimplementowany jako biblioteka funkcji dla środowiska GNU/Octave, oparty na modelu macierzy gęstości, implementujący m.in.: zarządzanie pamięcią kwantową (implementacja modelu QRAM), złożone kwantowe wyrażenia warunkowe, kanały kwantowe, funkcje do analizy stanów kwantowych. Zawiera w sumie około 90 funkcji interfejsu programisty. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Obarczony szumem kwantowy algorytm wyszukiwania 1/4 √ Iteruj N π4 razy _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ FE |0i |0i H ⊗n Wyrocznia |xi→(−1)f (x) |xi .. . |0i H ⊗n Dyfuzja |0i→|0i |xi→−|xi dlax>0 H ⊗n FE Szum ρt+1 =Φ(ρt ) .. . FE _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Rysunek: Schemat algorytmu wyszukiwania obarczonego szumem [Gro96] Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Obarczony szumem kwantowy algorytm wyszukiwania 2/4 Jaki jest maksymalny poziom szumu, dla którego kwantowy algorytm wyszukiwania jest bardziej wydajny od algorytmu klasycznego? Zakładamy, że jeżeli algorytm nie zadziała poprawnie, to zostaje on powtórzony. √ Niech k = b N2 / π4 N c będzie maksymalną liczbą wywołań algorytmu, dla której algorytm kwantowy jest wydajniejszy niż algorytm klasyczny. Liczymy minimalną wartość prawdopodobieństwa prawidłowego wykonania algorytmu wyszukiwania, dla której uzyskujemy wynik z poziomem ufności C. pt = min 1 − (1 − p)k ≥ C . (13) p Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Obarczony szumem kwantowy algorytm wyszukiwania 3/4 prawdopodbieństwo znalezienia szukanego elementu 1 kanał depolaryzujący kanał zmniejszający amplitudę kanał zmniejszający fazę pt dla poziomu ufności 95% pt dla poziomu ufności 99% 0.8 0.6 0.4 0.2 0 0 0.05 0.1 0.15 0.2 poziom szumu α Rysunek: Obarczony szumem algorytm wyszukiwania na 6 qubitach Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Obarczony szumem kwantowy algorytm wyszukiwania 4/4 prawdopodbieństwo znalezienia szukanego elementu 1 kanał negujący kanał negujący kanał negujący pt dla poziomu pt dla poziomu 0.8 bit fazę bit i fazę ufności 95% ufności 99% 0.6 0.4 0.2 0 0 0.05 0.1 0.15 0.2 poziom szumu α Rysunek: Obarczony szumem algorytm wyszukiwania na 6 qubitach Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Gra w magiczny kwadrat Przebieg gry w magiczny kwadrat: W grze bierze udział dwoje graczy: Alicja i Bob. Są oni odseparowani od siebie i nie mogą się komunikować. Przed rozgrywką mogą ustalić strategię. Celem graczy jest wypełnienie liczbami binarnymi jednej kolumny i jednego wiersza kwadratu 3 na 3 według następujących zasad: w kolumnie suma liczb musi być parzysta, w wierszu suma liczb musi być nieparzysta. Alicja dostaje wylosowany numer kolumny, Bob dostaje wylosowany numer wiersza. Alicja wypełnia jedną kolumnę zgodnie z zasadami, Bob wypełnia jeden wiersz. Gra jest wygrana, jeżeli na przecięciu zadanego wiersza i zadanej kolumny Alicja i Bob podali tę samą liczbę. W przeciwnym przypadku gra jest przegrana. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Gra w magiczny kwadrat Magiczny kwadrat Sumy kolumn są parzyste, sumy wierszy są nieparzyste: P 1 1 1 P=1 1 0 0 P=1 = 0/1 0 1 1/0 P P P q 0 q 0 q 1/0 Taki kwadrat nie istnieje. Nie ma strategii klasycznej, która daje prawdopodobieństwo wygranej równe jeden. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Gra w magiczny kwadrat Kwantowe rozwiązanie problemu Istnieje strategia kwantowa, która daje prawdopodobieństwo wygranej jeden. Wymaga ona, by gracze współdzielili stan splątany |Ψi = 12 (|0011i − |1100i − |0110i + |1001i)[Mer90]. Co się dzieje, gdy stan jest mieszany? ! X Pa,b (α) = Tr Φα (|ΨihΨ|) X |ξk ihξk | (14) k a,b∈{1,2,3} Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Gra w magiczny kwadrat Gra w magiczny kwadrat zaimplementowana w quantum-octave’ie 1 3 5 7 9 11 13 15 f u n c t i o n r e t = MagicSquare ( a , b ) i n S t a t e = 1/2∗ k e t ( [ 0 0 1 1 ] ) − 1/2∗ k e t ( [ 0 1 1 0 ] ) . . . − 1/2∗ k e t ( [ 1 0 0 1 ] ) + 1/2∗ k e t ( [ 1 1 0 0 ] ) ; global game state game state = state ( inState ) ; game state = l o c a l c h a n n e l ( . . . channel (” d e p o l a r i z i n g ” , alpha ) , [ 1 : 4 ] , 4 ) , game state ) ; for step =[1:3] a l i c e b i t s=a l i c e ( a , s t e p ) ; b o b b i t s=bob ( b , s t e p ) ; world ( step ) ; endfor r e t =( a l i c e b i t s ( b)== b o b b i t s ( a ) ) ; endfunction Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie 2 4 function global A{1} = A{2} = A{3} = Przykład zastosowania a l i c e b i t s=a l i c e ( a , s t e p ) game state ; 1/ s q r t ( 2 ) ∗ [ I 0 0 1 ; 0 −I 1 0 ; 0 I 1 0 ; 1 0 0 I ] ; 1/2 ∗ [ I 1 1 I ; −I 1 −1 I ; I 1 −1 −I ; −I 1 1 −I ] ; 1/2 ∗ [ −1 −1 −1 1 ; 1 1 −1 1 ; 1 −1 1 1 ; 1 −1 −1 −1]; 6 8 10 12 14 16 18 20 22 24 26 switch ( step ) case 1 g a m e s t a t e=e v o l v e ( k r o n p (A{a } , i d ( 2 ) ) , g a m e s t a t e ) ; case 2 g a m e s t a t e=a p p l y c h a n n e l ( . . . l o c a l c h a n n e l ( c h a n n e l ( ”om” ) , [ 1 , 2 ] , 4 ) , g a m e s t a t e ) ; case 3 a1 = a b s ( p t r a c e ( g a m e s t a t e , [ 3 , 4 ] ) ) ; i f a1==s t a t e ( k e t ( [ 0 , 0 ] ) ) a l i c e b i t s =[0 ,0 ,0]; e l s e i f a1==s t a t e ( k e t ( [ 0 , 1 ] ) ) a l i c e b i t s =[0 ,1 ,1]; e l s e i f a1==s t a t e ( k e t ( [ 1 , 0 ] ) ) a l i c e b i t s =[1 ,0 ,1]; e l s e i f a1==s t a t e ( k e t ( [ 1 , 1 ] ) ) a l i c e b i t s =[1 ,1 ,0]; endif endswitch endfunction Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie 2 4 function global B{1} = B{2} = B{3} = Przykład zastosowania b o b b i t s=bob ( b , s t e p ) game state ; 1/2 ∗ [ I −I 1 1 ; −I −I 1 −1 ; 1 1 −I I ; −I I 1 1 ] ; 1/2 ∗ [ −1 I 1 I ; 1 I 1 −I ; 1 −I 1 I ; −1 − i 1 −I ] ; 1/ s q r t ( 2 ) ∗ [ 1 0 0 1 ; −1 0 0 1 ; 0 1 1 0 ; 0 1 −1 0 ] ; 6 8 10 12 14 16 18 20 22 24 26 switch ( step ) case 1 g a m e s t a t e=e v o l v e ( k r o n p ( i d ( 2 ) , B{b } ) , g a m e s t a t e ) ; case 2 g a m e s t a t e=a p p l y c h a n n e l ( . . . l o c a l c h a n n e l ( c h a n n e l ( ”om” ) , [ 3 , 4 ] , 4 ) , g a m e s t a t e ) ; case 3 b1 = a b s ( p t r a c e ( g a m e s t a t e , [ 1 , 2 ] ) ) ; i f b1==s t a t e ( k e t ( [ 0 , 0 ] ) ) bob bits =[0 ,0 ,1]; e l s e i f b1==s t a t e ( k e t ( [ 0 , 1 ] ) ) bob bits =[0 ,1 ,0]; e l s e i f b1==s t a t e ( k e t ( [ 1 , 0 ] ) ) bob bits =[1 ,0 ,0]; e l s e i f b1==s t a t e ( k e t ( [ 1 , 1 ] ) ) bob bits =[1 ,1 ,1]; endif endswitch endfunction Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie 2 4 6 Przykład zastosowania function world ( step ) global game state ; switch ( step ) case 2 g a m e s t a t e=c o l l a p s e ( m e a s u r e c o m p b a s i s ( g a m e s t a t e ) ) ; endswitch endfunction Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Przykład zastosowania Gra w magiczny kwadrat pod wpływem szumu 1 0.9 0.8 0.7 0.6 0.5 0 0.2 0.4 0.6 0.8 kanał zmniejszaja̧cy amplitudȩ próg klasyczny 0.8 0.7 0.6 0 0.2 0.4 0.6 0.8 0.7 0.6 0 0.2 0.8 Współczynnik błȩdu α 1 0.4 0.6 0.8 1 0.8 1 Współczynnik błȩdu α 1 0.9 0.5 kanały neguja̧ce próg klasyczny 0.9 0.5 1 Współczynnik błȩdu α 1 Prawdopodobieństwo wygranej P (α) Prawdopodobieństwo wygranej P (α) kanał depolaryzuja̧cy próg klasyczny Prawdopodobieństwo wygranej P (α) Prawdopodobieństwo wygranej P (α) 1 kanał zmniejszaja̧cy fazȩ próg klasyczny 0.9 0.8 0.7 0.6 0.5 0 0.2 0.4 0.6 Współczynnik błȩdu α Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Wyniki i wnioski Plan wystąpienia 1 Wstęp Motywacja Teza pracy 2 Model obliczeń kwantowych Kanały kwantowe Kanały kwantowe obarczone szumem 3 Wysokopoziomowe struktury programistyczne w programowaniu kwantowym Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych 4 Środowisko quantum-octave Przykład zastosowania 5 Podsumowanie Wyniki i wnioski Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Wyniki i wnioski Wyniki 1/3 W wyniku prac nad rozprawą doktorską uzyskano następujące rezultaty: Implementacja biblioteki / języka quantum-octave do programowania i symulacji procesów kwantowych. Wyniki opublikowano w: P. Gawron, J. A. Miszczak. Simulations of quantum systems evolution with quantum-octave package. Annales UMCS Informatica AI, 1(2), 2004. P. Gawron, J. A. Miszczak. Numerical simulations of mixed states quantum computation. International Journal of Quantum Information, 3(1):195–199, 2005. pięciu innych publikacjach. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Wyniki i wnioski Wyniki 2/3 Implementacja i symulacja kwantowego algorytmu wyszukiwania oraz przeprowadzenie analizy wpływu szumu na wydajność algorytmu. Wyznaczenie wartości parametru szumu, dla których algorytm kwantowy jest bardziej wydajny od klasycznego. Planowana publikacja w Theoretical and Applied Informatics. Symulacja i analiza kwantowego błądzenia losowego poddanego działaniu szumu w przypadkach, gdy szum oddziaływuje na cały system lub tylko na monetę. Planowana publikacja w Theoretical and Applied Informatics. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Wyniki i wnioski Wyniki 3/3 Prosta analiza wpływu szumu na grę w obracanie grosza. Kwantowa implementacja schematu Parrondo na małej liczbie qubitów, która naśladuje klasyczny schemat. Opublikowane w: P. Gawron, J. A. Miszczak. Quantum implementation of Parrondo paradox. Fluctuation and Noise Letters, 5(4), 2005. Implementacja, symulacja i analiza wpływu szumu na prawdopodobieństwo sukcesu w grze w magiczny kwadrat. Opublikowane w: P. Gawron, J. A. Miszczak, J. Sładkowski. Noise effects in quantum magic squares game. International Journal of Quantum Information, 6(1 supp), 2008. Analiza wpływu szumu na prawdopodobieństwo wygranej graczy w kwantowej grze Monty’ego Halla. W przygotowaniu do publikacji w Fluctuation and Noise Letters. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Wyniki i wnioski Wnioski Zaprezentowano nowy wysokopoziomowy język opisu procesów kwantowych, oparty na modelu macierzy gęstości. Wykorzystano stworzony języki do analizy szumów w procesach kwantowych. Wykazano, że szum ma znaczący wpływ na wynik działania procesów kwantowych. W szczególności może on prowadzić do zmniejszenia ich wydajności. Jednakże w przypadku gier kwantowych może on zwiększać prawdopodobieństwo wygranej któregoś z graczy. Wykazano, że wysokopoziomowy opis obwodów kwantowych z uwzględnieniem nieunitarnych kanałów kwantowych pozwala na efektywne badanie zjawiska dekoherencji w procesach kwantowych. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Wyniki i wnioski Literatura L. Grover. A fast quantum mechanical algorithm for database search. In Proc. 28th Annual ACM Symposium on the Theory of Computation, pages 212–219, New York, NY, 1996. ACM Press, New York. N. David Mermin. Simple unified form for the major no-hidden-variables theorems. Phys. Rev. Lett., 65(27):3373–3376, Dec 1990. M. A. Nielsen and I. L. Chuang. Quantum Computation and Quantum Information. Cambridge University Press, 2000. B. Oemer. Structured Quantum Programming. PhD thesis, Technical University of Vienna, 2003. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej Wstęp Model obliczeń kwantowych Struktury programistyczne Środowisko quantum-octave Podsumowanie Wyniki i wnioski Dziękuję za uwagę. Piotr Gawron Programowanie wysokopoziomowe w informatyce kwantowej