Wykład 1

Transkrypt

Wykład 1
Wykład 1
6 kwietnia 2016
Podstawy informatyki kwantowej
dr hab. Łukasz Cywiński
[email protected]
http://info.ifpan.edu.pl/~lcyw/
Wykłady: 6, 13, 20, 27 kwietnia oraz 4 maja (na ostatnim wykładzie
będzie test)
Prace domowe: sugerowane zadania będą pojawiać się na stronie
internetowej (patrz wyżej).
Plan wykładów
1) Klasyczne i kwantowe komputery: czemu warto bity zastąpić kubitami.
Elementy teorii złożoności obliczeniowej. Przetwarzanie informacji a fizyka. Co
naprawdę mogą dać nam komputery kwantowe? Rzut oka na obecny stan badań
eksperymentalnych.
2) Od bramkek jedno- i dwu-kubitowych do algorytmów.
Koherentna kontrola jednego kubitu (elementy teorii elektronowego rezonansu
spinowego). Bramka dwukubitowa na przykładzie bramki wymiennej. Czym są
algorytmy kwantowe?
3) Realizacja kubitów w kropkach kwantowych: kropki aktywne optycznie i
kontrolowane bramkami.
Nanostruktury dla informatyki kwantowej i przykładowe doświadczenia.
Algorytmy i klasyczne komputery
Algorytm – precyzyjny przepis na to, jak wykonać jakieś zadanie
Algorytm Euklidesa (ok. 300 p.n.e.) na znajdowanie
największego wspólnego dzielnika A oraz B.
Pytanie Davida Hilberta (1928):
Czy istnieje algorytm sprawdzający prawdziwość
dowolnego twierdzenia matematycznego?
(maszyna do dowodzenia twierdzeń)
„Entscheidungsproblem”
Alan Turing, Alonzo Church (około 1936):
NIE!
"Euclid flowchart" by Somepics - Own work. Licensed under CC BY-SA 4.0 via Wikimedia
Commons
http://commons.wikimedia.org/wiki/File:Euclid_flowchart.svg#/media/File:Euclid_flowchart.svg
Maszyna Turinga
q – stan procesora
x – zapis z taśmy
s = rozkaz przesunięcia głowicy (L, P, albo „stój”)
Linie programu: < q,x,q’,x’,s> : jeśli q=x to zamień q na
q’, x na x’, i wykonaj ruch s głowicą
Teza Churcha-Turinga:
Każdy problem, który może być intuicyjnie uznany za obliczalny, jest
rozwiązywalny przez maszynę Turinga.
(to jest tak naprawdę definicja tego, że da się wykonać jakieś zadanie
algorytmiczne)
Uniwersalna Maszyna Turinga
Maszyna U, która może zasymulować działanie każdej innej
MT – opis działania innej maszyny zawarty jest na taśmie
podanej maszynie U.
Z jej istnienia wynika możliwosć podziału na hardware i
software - nie trzeba budować nowego komputera do nowego
zadania, trzeba tylko napisać nowy program dla UMT.
Turing udowodnił sensowność podziału na sprzęt i
oprogramowanie 
Nierozstrzygalny problem stopu
Program STOP(x,y): sprawdza czy program x z danymi wejściowymi y
skończy działanie po skończonym czasie, czy będzie działał w
nieskończoność.
Taki program nie istnieje!
Czemu? Bo żądamy aby działał dla każdego x oraz y!
Nie ma automatycznego sposobu stwierdzenia czy algorytm na MT
stopuje w skończonym czasie  nie ma mechanicznego sposobu
sprawdzania dowodów matematycznych.
procedura stop(program,dane)
jeżeli program(dane) zatrzymuje się
zwróć TAK
w przeciwnym wypadku
zwróć NIE
procedura test(program)
jeżeli stop(program,program) == tak to zapętl się
Co robi test(test)?
Joshua Engel, https://www.quora.com/How-can-the-Halting-Problem-be-explained-to-a-layman
https://pl.wikipedia.org/wiki/Problem_stopu
Złożonośc obliczeniowa
Liczba bitów danych = n
Czas obliczeń jest O(f(n)) gdy istnieją takie no oraz
c0 oraz n1 oraz c1 dla których zachodzi
Czas(n>n0) < c0 f(n)
Czas(n>n1) > c1 f(n)
czyli dla dużych n czas rośnie jak f(n)
Przykłady:
• Dodawanie jest O(n)
• Mnożenie wydaje się być O(n2), ale naprawdę jest O(nlog 3)
Podstawowe rozróżnienie:
• Złożoność wielomianowa: czas = O(nk) – „łatwe”
• Złożoność wykładnicza: czas = O(cn) – „trudne”
Złożonośc obliczeniowa
Podstawowe rozróżnienie:
• Złożoność wielomianowa: czas = O(nk) – „łatwe”
• Złożoność wykładnicza: czas = O(cn) – „trudne”
Motywacja dla powyższego rozróżnienia:
Dla złożoności wykładniczej jest bardzo ostra granica
pomiędzy tym co praktycznie jeszcze możliwe, a co już nie.
Silniejsza wersja tezy Churcha-Turinga:
Każdy "rozsądny" model obliczeń może być efektywnie
zasymulowany na probabilistycznej Maszynie Turinga.
Efektywnie = z co najwyżej wielomianowym wzrostem złożoności
Klasy złożoności algorytmicznej: P vs NP
Klasa P (polynomial time) - problemy, które maszyna
Turinga rozwiązuje w czasie wielomianowym
Wiadomo, że wiele problemów jest poza P, ale bardzo trudno jest
pokazać, że konkretny problem nie jest w P.
Podejrzenie: rozkład liczby na czynniki pierwsze nie jest w P –
najlepszy znany algorytm jest
Klasa NP - problemy, których rozwiązanie maszyna
Turinga może sprawdzić w czasie wielomianowym
Rozkład liczby na czynniki pierwsze na pewno jest w NP – sprawdzenie
czy p*q=N jest trywialne. Rozłożenie N na p i q jest za to trudne…
Klasy złożoności algorytmicznej: P vs NP
Wbrew temu co często można przeczytać, NP nie znaczy koniecznie
„trudne”.
P
NP
P ≠ NP ? -
P na pewno zawiera się w
NP. Ale czy NP jest
większe?
najważniejsze otwarte pytanie teorii złożoności
obliczeniowej
Problemy NP-zupełne - są co najmniej tak trudne jak każdy inny
problem z NP, inne problemy można sprowadzić do nich („jeden
problem by wszystkie rozwiązać”). Rozwiązanie w czasie
wielomianowym jakiegokolwiek z nich pokaże, że P=NP!
Z punktu widzenia złożoności algorytmicznej różne realizacje
(klasycznego) komputera są sobie równoważne, ale…
Informacja jest fizyczna
Nauka o komputerach = informatyka (czyli nauka o
informacji i jej przetwarzaniu).
Rolf Landauer: „Informacja jest fizyczna”
tzn: nie należy o informacji myśleć w sposób zupełnie abstrakcyjny,
trzeba pamiętać o tym, że zawsze musi ona mieć fizyczną
reprezentację!
Jeden bit (kawałek) informacji: zakodowany w stanie układu bistabilnego
mającego dwa rozróżnialne i stabilne stany, pomiedzy którymi możemy go
przełączać.
Bramki logiczne (klasyczne)
„obwodowy model komputera” – sygnały 0 i 1 (bity)
przesyłane pomiędzy bramkami logicznymi
Bramka NOT
Bramka AND
Jest on równoważny maszynie Turinga – mają one takie same
zdolności obliczeniowe.
Klasyczny komputer
• Informacja kodowana w bitach (0/1)
• Bramki logiczne:
• jednobitowe (NOT)
• dwubitowe (AND, OR, NAND…)
Najpopularniejsza implementacja:
Technologia CMOS – transistory krzemowe
Bramka NOT
Mechanika kwantowa potrzebna jest do modelowania tranzystorów i
zrozumienia własności półprzewodników, ale efektywnie równoważny
komputer można zbudować z elementów klasycznych (np. kasa na korbkę)
Fizyczne realizacje klasycznych komputerów
To działa jak system zaworów (napięcie na
bramce kontroluje czy tranzystor przewodzi
prąd – jeżeli tak, to może on naładować bramkę
innego tranzystora
Mikrofluidyka (procesy mikroprzepływowe – krople o objętości pikolitrów)
http://www.microfluidicfuture.com/blog/microfluidics-a-beginners-guide
Trochę zoologii
Kraby z gatunku Mictyris guinotae –
bardzo deterministycznie działający
instynkt stadny (swarming behavior)
Informacja jest fizyczna…
ale układy mikroskopowo opisywane są przez
mechanikę kwantową, a nie klasyczną.
Komputer kwantowy
Zamiast klasycznego bitu – kwantowy układ dwupoziomowy (kubit)
• Dwa poziomy energetyczne atomu (np. stan podstawowy i jeden ze
stanów wzbudzonych
• Spin-1/2 elektronu– dwie wartości rzutu na daną oś
• Dwie polaryzacje pojedynczego fotonu
• Dwa kierunki płynięcią prądu w mikroobwodzie zbudowanym z
nadprzewodników.
• Stan podstawowy i stan optycznie wzbudzony (tzw. ekscyton) w
samozorganizowanej kropce kwantowej
Klasycznie: bistabilny system w stanie 0 lub 1
Kwantowo: liniowa superpozycja 0 i 1
Ekstremalnie krótki kurs mechaniki kwantowej
Istnieją kwantowe stany czyste |Ψ>, które dają maksymalną dostępną
informację o danym układzie fizycznym.
Są one bardzo trudne do uzyskania dla większych układów, a dla atomów
czy nanostruktur też nie są tak łatwe do wytworzenia.
Dla ograniczonego przestrzennie układu (atom, kropka kwantowa) mamy
przeliczalne stany, np. stany własne energii |0> , |1>, |2>…
Można tworzyć superpozycje stanów (KLUCZOWE!):
Dla układu w stanie |Ψ>, prawdopodobieństwo zaobserwowania go w stanie
|n> wynosi
Stany kubitu
a, b – zespolone amplitudy
|a|2 – prawdopodobieństwo zmierzenia 0
|b|2 - prawdopodobieństwo zmierzenia 1
|a|2 + |b|2 = 1
Jeden kubit opisany przez 2 liczby rzeczywiste
Mamy kontinuum stanów kubitu.
Stany wielu kubitów
Kontinuum stanów kubitu – jak w komputerze analogowym?
NIE! – komputer kwantowy różni się jakościowo od klasycznej
maszyny analogowej
Superpozycyjne stany wielu kubitów mogą być bardzo
nieklasyczne!
Dla dwóch kubitów:
Przez ile liczb rzeczywistych opisany jest ten stan?
A ile byłoby potrzebnych, aby opisać stan trójkubitowy? N-kubitowy?
Splątanie
Zasada superpozycji:
Co z tego wynika jeśli mamy więcej kubitów?
Stan splątany wykazujący
nieklasyczne korelacje
Stan odpowiadający
„klasycznym” intuicjom
Stany splątane: łamią nierówności Bella, kluczowe dla komunikacji
kwantowej, teleportacji kwantowej, kwantowej metrologii, oraz komputerów
kwantowych
Program wykonywany na komputerze kwantowym
Inicjalizacja N kubitów w stanie czystym
A następnie kodujemy dane wejściowe…
Ewolucja |> jest opisana przez równanie Schroedringera z
zależnym od czasu Hamiltonianem H, który kontrolujemy – program
zakodowany jest w Hamiltonianie:
Często powtarzane: komputer kwantowy jest
szybszy, bo wykonuje obliczenia dla wszystkich
możliwych danych wejściowych jednocześnie.
Chwila zastanowienia nad naturą pomiaru w
mechanice kwantowej prowadzi do wniosku, że to
nie jest prawda!
Na końcu dokonujemy pomiaru. Nie da się zrekonstruować stanu
wszystkich kubitów z pojedynczego pomiaru, ale różne wyniki otrzymujemy
z różnymi prawdopodobieństwami -> wynik programu jest
probabilistyczny!
Do czego mogłoby to się przydać?
Problemy, które trudno jest rozwiązać, ale dla których łatwo jest
sprawdzić, czy odpowiedź jest prawidłowa.
Klasa NP (te problemy, które nie są chyba w P)
Kryptografia z kluczem publicznym (RSA) – złamanie klucza
wymaga rozłożenia dużej liczby na czynniki pierwsze.
Klasyczny algorytm w czasie ~ exp( N1/3)
(złamanie RSA-768 – faktoryzacja liczby z 232 cyframi
zajęło 2 lata pracy kilkuset komputerów – 2000 lat pracy
jednordzeniowego 2.2 GHz AMD Opteron)
Kwantowy algorytm Petera Shora (’94):
Czas wykonania ~ O(N3)
(tylko w teorii, w praktyce nie mamy komputera kwantowego…)
Najnowsze wyniki doświadczalne
11 kubitów (7 kontrolowanych, 4 jako „cache”)
Jony 40Ca+ w pułapce elektromagnetycznej
15 = 3 * 5
Czemu tym się zajmować?
Zbudowanie komputera kwantowego jest bardzo trudne –
czy warto robić to tylko dla łamania szyfrów?
• Przesuwanie granicy badań w nanoskali (dodatkowo potrzeba bardzo
precyzyjnej kontroli)
• Kilkukubitowe obwody będą potrzebna dla długodystansowej
komunikacji kwantowej.
• Testowanie mechaniki kwantowej dla coraz większych układów. Czy
kwantowa korekcja błędu rzeczywiście pozwoli na utrzymanie milionów
kubitów w stanie czystym?
• Możliwość (lub niemożliwość) zbudowania KK ma fundamentalne
znaczenie dla zrozumienia związku między przetwarzaniem informacji
a fizyką (natura w końcu jest kwantowo-mechaniczna).
• Pojedyncze kubity, lub grupy splątanych kubitów, mogą być użyte do
bardzo precyzyjnego obrazowania z nano-rozdzielczością.

Podobne dokumenty