High level programming in quantum computer science Autor: Promotor: prof. dr hab. inż. Jerzy Klamka Instytut Informatyki Teoretycznej i Stosowanej PAN 23 grudnia 2008
Plan wystąpienia 1 Wstęp Motywacja Teza pracy 2 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 Przykład zastosowania 5 Wyniki i wnioski
Plan wystąpienia Wstęp Motywacja Teza pracy 1 Wstęp Motywacja Teza pracy 2 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 Przykład zastosowania 5 Wyniki i wnioski
Motywacja Wstęp Motywacja Teza pracy 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.
Motywacja Wstęp Motywacja Teza pracy Protokoły Protokoły kwantowe pozwalają na: ustalenie bezpiecznego klucza, teleportację stanu kwantowego.
Motywacja Wstęp Motywacja Teza pracy 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.
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.
Pojęcia podstawowe Wstęp Motywacja Teza pracy Bramka kwantowa macierz unitarna. Elementarne bramki kwantowe: CNot, 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.
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.
Plan wystąpienia Wstęp Kanały kwantowe Kanały kwantowe obarczone szumem 1 Wstęp Motywacja Teza pracy 2 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 Przykład zastosowania 5 Wyniki i wnioski
Stan Wstęp Kanały kwantowe Kanały kwantowe obarczone szumem 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.
Kanały kwantowe Wstęp Kanały kwantowe Kanały kwantowe obarczone szumem 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: ( ) Φ p i ρ i = i i p i Φ (ρ i ), (2) 3 i całkowicie dodatni: ( ) ρ i, ξ i 0 n N (Φ I n ) ρ i ξ i = i i Φ (ρ i ) ξ i 0. (3)
Operatory Krausa Wstęp Kanały kwantowe Kanały kwantowe obarczone szumem W ogólności kanał kwantowy Φ może być opisany w postaci operatorów Krausa {E k }: Φ(ρ) = E k ρe k, (4) k gdzie operatory spełniają warunek zupełności: E k E k = I. (5) [NC00] k
Szum w układach kwantowych Kanały kwantowe Kanały kwantowe obarczone szumem Ź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.
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) { 1 3α/4I, α/4 [ 0 1 1 0 ], α/4 [ ] [ 0 i i 0, α/4 1 0 ] } 0 1, zmniejszający amplitudę ( 1 0 ) ] [, {[ 1 0 0 1 α 0 α 0 0 ]}, zmniejszający fazę (niszczący względną fazę pomiędzy stanami bazowymi): {[ ] [ ]} 1 0 0 1 α, 0 0 0 α,
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, { 1 αi, α [ 1 0 0 1 ]}, zmiana bitu { 1 αi, α [ 0 1 1 0 ]}, zmiana bitu i fazy { [ 1 αi, α 0 i ]} i 0, gdzie α [0, 1] reprezentuje poziom szumu w układzie.
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 {e k } tworzymy n N operatorów {E k } o wymiarze 2 N, tworząc kanał Φ(ρ) = k E kρe k : Φ(ρ) = n i 1,i 2,...i N =1 e i1 e i2... e in ρe i 1 e i 2... e i N. (6)
Plan wystąpienia Wstęp Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych 1 Wstęp Motywacja Teza pracy 2 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 Przykład zastosowania 5 Wyniki i wnioski
Operacje na pamięci kwantowej 1/2 Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Aplikacja kanału kwantowego K i na pamięci kwantowej: ρ t+1 = i K i ρ t K i. (7) Dodanie n qubitów do pamięci kwantowej: ρ t+1 = ρ t 0 }. {{.. 0 } 0 }. {{.. 0 }. (8) n n Usunięcie n qubitów r = {q i1,..., q in } : ρ t+1 = Tr r (ρ t ). (9)
Operacje na pamięci kwantowej 2/2 Operacje na pamięci kwantowej Operacje warunkowe na rejestrach kwantowych Unitarna ewolucja U pamięci kwantowej: Pomiar w bazie obliczeniowej: ρ t+1 = Uρ t U. (10) ρ t+1 = i i i ρ t i i, (11) P (i) = Tr ( i i ρ t ), (12) gdzie i indeksuje stany bazy obliczeniowej. [Oem03]
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 q 0 q 1 G 1 G 2
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; Obwód kwantowy q 1 q 2 if (q1 or q2) G1(q3); else G2(q4); q 3 G 1 G 1 G 1 q 4 G 2
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)})
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 r 0 r 1 r 2... r 3 q 1 G 2 G 2 G 2 q 2 G 1 G 1 G 1
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 q 0 qreg[2] r1; qreg[2] r2; if(*r1) G(r2); q 1 q 2 G q 3 G q 4 G q 5 G
Plan wystąpienia Wstęp Przykład zastosowania 1 Wstęp Motywacja Teza pracy 2 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 Przykład zastosowania 5 Wyniki i wnioski
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.
Wstęp Przykład zastosowania Obarczony szumem kwantowy algorytm wyszukiwania 1/4 0 0. 0 H n Iteruj N π 4 razy Dyfuzja Wyrocznia x ( 1) f(x) x H n 0 0 x x H n Szum ρt+1=φ(ρt) dlax>0. Rysunek: Schemat algorytmu wyszukiwania obarczonego szumem [Gro96]
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 = N 2 / π 4 N 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. p t = min p { 1 (1 p) k C }. (13)
Przykład zastosowania Obarczony szumem kwantowy algorytm wyszukiwania 3/4 prawdopodbieństwo znalezienia szukanego elementu 1 0.8 0.6 0.4 0.2 0 0 0.05 0.1 0.15 0.2 poziom szumu α kanał depolaryzujący kanał zmniejszający amplitudę kanał zmniejszający fazę p t dla poziomu ufności 95% p t dla poziomu ufności 99% Rysunek: Obarczony szumem algorytm wyszukiwania na 6 qubitach
Przykład zastosowania Obarczony szumem kwantowy algorytm wyszukiwania 4/4 prawdopodbieństwo znalezienia szukanego elementu 1 0.8 0.6 0.4 0.2 0 0 0.05 0.1 0.15 0.2 poziom szumu α kanał negujący bit kanał negujący fazę kanał negujący bit i fazę p t dla poziomu ufności 95% p t dla poziomu ufności 99% Rysunek: Obarczony szumem algorytm wyszukiwania na 6 qubitach
Gra w magiczny kwadrat Przykład zastosowania 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.
Gra w magiczny kwadrat Przykład zastosowania Magiczny kwadrat Sumy kolumn są parzyste, sumy wierszy są nieparzyste: 1 1 1 1 0 0 0 1 1/0 = 1 = 1 = 0/1 0 0 1/0 Taki kwadrat nie istnieje. Nie ma strategii klasycznej, która daje prawdopodobieństwo wygranej równe jeden.
Gra w magiczny kwadrat Przykład zastosowania Kwantowe rozwiązanie problemu Istnieje strategia kwantowa, która daje prawdopodobieństwo wygranej jeden. Wymaga ona, by gracze współdzielili stan splątany Ψ = 1 2 ( 0011 1100 0110 + 1001 )[Mer90]. Co się dzieje, gdy stan jest mieszany? ( P a,b (α) = Tr Φ α ( Ψ Ψ ) ) ξ k ξ k k a,b {1,2,3} (14)
Gra w magiczny kwadrat Przykład zastosowania Gra w magiczny kwadrat zaimplementowana w quantum-octave ie 1 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 ] )... 3 1/2 k e t ( [ 1 0 0 1 ] ) + 1/2 k e t ( [ 1 1 0 0 ] ) ; g l o b a l g a m e s t a t e 5 g a m e s t a t e = s t a t e ( i n S t a t e ) ; g a m e s t a t e = l o c a l c h a n n e l (... 7 c h a n n e l ( d e p o l a r i z i n g, a l p h a ), [ 1 : 4 ], 4 ), g a m e s t a t e ) ; 9 f o r s t e p = [ 1 : 3 ] a l i c e b i t s =a l i c e ( a, s t e p ) ; 11 b o b b i t s=bob ( b, s t e p ) ; w o r l d ( s t e p ) ; 13 e n d f o r 15 r e t =( a l i c e b i t s ( b)== b o b b i t s ( a ) ) ; e n d f u n c t i o n
Przykład zastosowania f u n c t i o n a l i c e b i t s =a l i c e ( a, s t e p ) 2 g l o b a l g a m e s t a t e ; A{1} = 1/ s q r t ( 2 ) [ I 0 0 1 ; 0 I 1 0 ; 0 I 1 0 ; 1 0 0 I ] ; 4 A{2} = 1/2 [ I 1 1 I ; I 1 1 I ; I 1 1 I ; I 1 1 I ] ; A{3} = 1/2 [ 1 1 1 1 ; 1 1 1 1 ; 1 1 1 1 ; 1 1 1 1]; 6 s w i t c h ( s t e p ) 8 case 1 g a m e s t a t e=e v o l v e ( kronp (A{a }, i d ( 2 ) ), g a m e s t a t e ) ; 10 case 2 g a m e s t a t e=a p p l y c h a n n e l (... 12 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 14 a1 = abs ( p t r a c e ( game state, [ 3, 4 ] ) ) ; 16 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 ] ; 18 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 ] ; 20 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 ] ; 22 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 ] ; 24 e n d i f e n d s w i t c h 26 e n d f u n c t i o n
Przykład zastosowania f u n c t i o n b o b b i t s=bob ( b, s t e p ) 2 g l o b a l g a m e s t a t e ; B{1} = 1/2 [ I I 1 1 ; I I 1 1 ; 1 1 I I ; I I 1 1 ] ; 4 B{2} = 1/2 [ 1 I 1 I ; 1 I 1 I ; 1 I 1 I ; 1 i 1 I ] ; B{3} = 1/ s q r t ( 2 ) [ 1 0 0 1 ; 1 0 0 1 ; 0 1 1 0 ; 0 1 1 0 ] ; 6 s w i t c h ( s t e p ) 8 case 1 g a m e s t a t e=e v o l v e ( kronp ( i d ( 2 ),B{b }), g a m e s t a t e ) ; 10 case 2 g a m e s t a t e=a p p l y c h a n n e l (... 12 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 14 b1 = abs ( p t r a c e ( game state, [ 1, 2 ] ) ) ; 16 i f b1==s t a t e ( k e t ( [ 0, 0 ] ) ) b o b b i t s = [ 0, 0, 1 ] ; 18 e l s e i f b1==s t a t e ( k e t ( [ 0, 1 ] ) ) b o b b i t s = [ 0, 1, 0 ] ; 20 e l s e i f b1==s t a t e ( k e t ( [ 1, 0 ] ) ) b o b b i t s = [ 1, 0, 0 ] ; 22 e l s e i f b1==s t a t e ( k e t ( [ 1, 1 ] ) ) b o b b i t s = [ 1, 1, 1 ] ; 24 e n d i f e n d s w i t c h 26 e n d f u n c t i o n
Przykład zastosowania f u n c t i o n w o r l d ( s t e p ) 2 g l o b a l g a m e s t a t e ; s w i t c h ( s t e p ) 4 case 2 g a m e s t a t e=c o l l a p s e ( measurecompbasis ( g a m e s t a t e ) ) ; 6 e n d s w i t c h e n d f u n c t i o n
Przykład zastosowania Gra w magiczny kwadrat pod wpływem szumu 1 1 Prawdopodobieństwo wygranej P (α) 0.9 0.8 0.7 0.6 kanał depolaryzuj acy próg klasyczny Prawdopodobieństwo wygranej P (α) 0.9 0.8 0.7 0.6 kanały neguj ace próg klasyczny Prawdopodobieństwo wygranej P (α) 0.5 1 0.9 0.8 0.7 0.6 0 0.2 0.4 0.6 0.8 1 Współczynnik błȩdu α kanał zmniejszaj acy amplitudȩ próg klasyczny Prawdopodobieństwo wygranej P (α) 0.5 1 0.9 0.8 0.7 0.6 0 0.2 0.4 0.6 0.8 1 Współczynnik błȩdu α kanał zmniejszaj acy fazȩ próg klasyczny 0.5 0 0.2 0.4 0.6 0.8 1 Współczynnik błȩdu α 0.5 0 0.2 0.4 0.6 0.8 1 Współczynnik błȩdu α
Plan wystąpienia Wstęp Wyniki i wnioski 1 Wstęp Motywacja Teza pracy 2 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 Przykład zastosowania 5 Wyniki i wnioski
Wyniki 1/3 Wstęp Wyniki i wnioski 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.
Wyniki 2/3 Wstęp Wyniki i wnioski 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.
Wyniki 3/3 Wstęp Wyniki i wnioski 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.
Wnioski Wstęp Wyniki i 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.
Literatura Wstęp Wyniki i wnioski 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.
Wyniki i wnioski Dziękuję za uwagę.