Inicjalizacja rejestrów w kwantowym jezyku programowania

Transkrypt

Inicjalizacja rejestrów w kwantowym jezyku programowania
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Inicjalizacja rejestrów w kwantowym języku
programowania
Jarosław Miszczak
Instytut Informatyki Teoretycznej i Stosowanej PAN
16 Luty 2007
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Plan wystąpienia
Motywacja
Algorytmy kwantowe
Typy kwantowe
Obecny stan wiedzy
Cel pracy
Przygotowanie superpozycji
Przypadek 1-qubitowy
Rejestry wieloqubitowe
Przykład
Podsumowanie
Dalsze prace
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Motywacja
I
Do tworzenia nowych algorytmów potrzebne jest abstrakcyjne
postrzeganie obiektów którymi się posługujemy
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Motywacja
I
Do tworzenia nowych algorytmów potrzebne jest abstrakcyjne
postrzeganie obiektów którymi się posługujemy
I
Struktury danych muszą być rozpatrywane w połączeniu
z operacjami które są na nich wykonywane
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Motywacja
I
Do tworzenia nowych algorytmów potrzebne jest abstrakcyjne
postrzeganie obiektów którymi się posługujemy
I
Struktury danych muszą być rozpatrywane w połączeniu
z operacjami które są na nich wykonywane
I
Algorytm kwantowy to sposób uzyskania pożądanego rozkładu
prawdopodobieństwa z wykorzystaniem reguł mechaniki
kwantowej
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Działanie algorytmów kwantowych
Algorymt (protokół) kwantowy jest opisany operacją unitarną U
n
działająca na przestrzeni C2 zgodnie z regułami
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Działanie algorytmów kwantowych
Algorymt (protokół) kwantowy jest opisany operacją unitarną U
n
działająca na przestrzeni C2 zgodnie z regułami
n
I
stanem początkowym jest stan podstawowy |0 . . . 0i ∈ C2 ,
I
operacja U przeprowadza stan początkowy w stan |ψi,
I
wynikiem jest rozkład prawdopodobieństwa
P(|ii) = |hi|ψi|2 , i = 0, . . . , 2n − 1.
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
(1)
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Obecny stan wiedzy
Obecny stan wiedzy
I
Większość języków kwantowych (QCL, Q) operuje jedynie na
tablicach qubitów
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Obecny stan wiedzy
Obecny stan wiedzy
I
Większość języków kwantowych (QCL, Q) operuje jedynie na
tablicach qubitów
I
Język cQPL pozwala zadeklarować rejestr kwantowy jako
qshort lub qint, ale oznacza to jedynie że reprezentuje on 8
lub 16 qubitów
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Obecny stan wiedzy
Obecny stan wiedzy
I
Większość języków kwantowych (QCL, Q) operuje jedynie na
tablicach qubitów
I
Język cQPL pozwala zadeklarować rejestr kwantowy jako
qshort lub qint, ale oznacza to jedynie że reprezentuje on 8
lub 16 qubitów
I
Perl6 wprowadza tzw. połączenia (ang. junction) wzorowane
na superpozycji stanów
pugs> my $x = 0|1|2|3;
(0 | 1 | 2 | 3)
pugs> if $x == 0|2 { say "Wow!"; }
Wow!
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Cel pracy
Poszerzenie możliwości języków kwantowych
1. Dodanie wbudowanego typu danych dla rejestrów kwantowych
reprezentujących liczby całkowite i ich superpozycje (podobnie
jak w Perlu6)
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Cel pracy
Poszerzenie możliwości języków kwantowych
1. Dodanie wbudowanego typu danych dla rejestrów kwantowych
reprezentujących liczby całkowite i ich superpozycje (podobnie
jak w Perlu6)
2. Określenie operacji dla tego typu danych
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Cel pracy
Poszerzenie możliwości języków kwantowych
1. Dodanie wbudowanego typu danych dla rejestrów kwantowych
reprezentujących liczby całkowite i ich superpozycje (podobnie
jak w Perlu6)
2. Określenie operacji dla tego typu danych
3. Zdefiniowane reguł rzutowanie do typów klasycznych
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Przypadek 1-qubitowy
Przypadek 1-qubitowy
Zadanie
√
√
Wychodząc ze stanu |0i chcemy otrzymać stan 1 − p|0i + p|1i.
Parametr p to prawdopodobieństwo otrzymania stanu |1i.
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Przypadek 1-qubitowy
Przypadek 1-qubitowy
Zadanie
√
√
Wychodząc ze stanu |0i chcemy otrzymać stan 1 − p|0i + p|1i.
Parametr p to prawdopodobieństwo otrzymania stanu |1i.
Odpowiednia operacja to
(
G (p) =
Ry 2 arc tg
σx ,
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
q
p
1−p
, 0¬p<1
p=1
,
(2)
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Przypadek 1-qubitowy
Przypadek 1-qubitowy
Zadanie
√
√
Wychodząc ze stanu |0i chcemy otrzymać stan 1 − p|0i + p|1i.
Parametr p to prawdopodobieństwo otrzymania stanu |1i.
Odpowiednia operacja to
(
G (p) =
Ry 2 arc tg
σx ,
q
p
1−p
, 0¬p<1
p=1
,
(2)
co jest równoważne
√
G (p) =
!
√
1−p
p
√
√
.
− p
1−p
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
(3)
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Wykorzystywane oznaczenia
I
Przez kontrolę dla bitu k rozumiemy ciąg binarny α złożony
z bitów 1, . . . , k − 1, który określa jednoznacznie
podprzestrzeń rozpiętą przez wektor |αi
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Wykorzystywane oznaczenia
I
Przez kontrolę dla bitu k rozumiemy ciąg binarny α złożony
z bitów 1, . . . , k − 1, który określa jednoznacznie
podprzestrzeń rozpiętą przez wektor |αi
I
count[i, αj ] – tablica zawierająca liczbę wystąpień kontroli αj
dla bitu i
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Wykorzystywane oznaczenia
I
Przez kontrolę dla bitu k rozumiemy ciąg binarny α złożony
z bitów 1, . . . , k − 1, który określa jednoznacznie
podprzestrzeń rozpiętą przez wektor |αi
I
count[i, αj ] – tablica zawierająca liczbę wystąpień kontroli αj
dla bitu i
I
count 1[i, αj ] – tablica zawierająca liczba przypadków dla
których bit numer i dla kontroli αj jest ustawiony na 1
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Generacja obwodu
Wejście: lista A = (a1 , . . . , aK ) liczb N-bitowych.
Wyjście: operacja unitarna R taka, że
R|0 . . . 0i =
K
X
|al i.
(4)
l=1
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Generacja obwodu – krok 1
Ustawienie pierwszego bitu zależy tylko od informacji o nim.
I
x = ilość wystąpień jedynki na pierwszym bicie
I
R1 = G
x
K
⊗ IN−1
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Generacja obwodu – kroki 2, . . . , N
Ustawienie bitu n zależy od ustawień pozycji 1, . . . , n − 1.
I dla n od 2 do N :
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Generacja obwodu – kroki 2, . . . , N
Ustawienie bitu n zależy od ustawień pozycji 1, . . . , n − 1.
I dla n od 2 do N :
I
oblicz count[n, αj ] oraz count 1[n, αj ] dla wszystkich αj ,
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Generacja obwodu – kroki 2, . . . , N
Ustawienie bitu n zależy od ustawień pozycji 1, . . . , n − 1.
I dla n od 2 do N :
I
I
oblicz count[n, αj ] oraz count 1[n, αj ] dla wszystkich αj ,
P
count 1[n,α ]
Rn = αj |αj ihαj | ⊗ G count[n,αj ]j ⊗ IN−1−n
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Generacja obwodu – kroki 2, . . . , N
Ustawienie bitu n zależy od ustawień pozycji 1, . . . , n − 1.
I dla n od 2 do N :
I
I
oblicz count[n, αj ] oraz count 1[n, αj ] dla wszystkich αj ,
P
count 1[n,α ]
Rn = αj |αj ihαj | ⊗ G count[n,αj ]j ⊗ IN−1−n
P
+ αj |αj ihαj | ⊗ IN−n .
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Rejestry wieloqubitowe
Generacja obwodu – kroki 2, . . . , N
Ustawienie bitu n zależy od ustawień pozycji 1, . . . , n − 1.
I dla n od 2 do N :
I
I
oblicz count[n, αj ] oraz count 1[n, αj ] dla wszystkich αj ,
P
count 1[n,α ]
Rn = αj |αj ihαj | ⊗ G count[n,αj ]j ⊗ IN−1−n
P
+ αj |αj ihαj | ⊗ IN−n .
Wynikowy operator to
R=
N
Y
Rk .
(5)
k=1
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Przykład
Wejście: A = (001, 101, 110)
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Przykład
Wejście: A = (001, 101, 110)
1. R1 = G (2/3) ⊗ I2
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Przykład
Wejście: A = (001, 101, 110)
1. R1 = G (2/3) ⊗ I2
2. R2 =
(|1ih1|⊗G (1/2)+|0ih0|⊗G (0))⊗I+(I − (|0ih0| + |1ih1|))⊗I2
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Przykład
Wejście: A = (001, 101, 110)
1. R1 = G (2/3) ⊗ I2
2. R2 =
(|1ih1|⊗G (1/2)+|0ih0|⊗G (0))⊗I+(I − (|0ih0| + |1ih1|))⊗I2
3. R3 =
(|00ih00| ⊗ G (1) + |11ih11| ⊗ G (0) +|10ih10| ⊗ G (1)) +
I2 − (|00ih00| + |11ih11| + |10ih10|) ⊗ I
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Podsumowanie
I
Przedstawiony algorytm pozwala na wygenerowanie obwodu
kwantowego który może być wykorzystany jako wejście dla
symulatora – układ kontrolujący maszynę kwantową wymaga
bardziej elementarnych operacji
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Podsumowanie
I
Przedstawiony algorytm pozwala na wygenerowanie obwodu
kwantowego który może być wykorzystany jako wejście dla
symulatora – układ kontrolujący maszynę kwantową wymaga
bardziej elementarnych operacji
I
Odpowiednia inicjalizacja stanu jest rozwinięciem idei
algorytmu Grovera, gdzie mamy możliwość jedynie podbicia
określonych prawdopodobieństw
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Dalsze prace
I
Generacja optymalnego kodu – np. przez eleminowanie
operacji na niezależnych bitach
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Dalsze prace
I
Generacja optymalnego kodu – np. przez eleminowanie
operacji na niezależnych bitach
I
Tworzenie dowolnego rozkładu prawdopodobieństwa
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Dalsze prace
I
Generacja optymalnego kodu – np. przez eleminowanie
operacji na niezależnych bitach
I
Tworzenie dowolnego rozkładu prawdopodobieństwa
I
Zastosowanie operacji na superpozycjach do opisu
użytecznych algorytmów
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki
Motywacja
Algorytmy kwantowe
Typy kwantowe
Przygotowanie superpozycji
Podsumowanie
Dalsze prace
Proszę o pytania
Jarosław Miszczak
Inicjalizacja rejestrów w kwantowym języku programowania
Zespół Kwantowych Systemów Informatyki