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