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