Wykład 1

Transkrypt

Wykład 1
Wykład 1
8 kwietnia 2015
Informatyka kwantowa i jej fizyczne
podstawy
Łukasz Cywiński
[email protected]
http://info.ifpan.edu.pl/~lcyw/
Wykłady: 8, 15, 22, 29 kwietnia oraz 6 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?
2) Od bramki jedno- i dwu-kubitowych do algorytmów.
Koherentna kontrola jednego kubitu (elementy teorii elektronowego rezonansu spinowego).
Bramka dwukubitowa na przykładzie bramki wymiennej. Obwody kwantowe i algorytmy.
3) Realizacja kubitów w kropkach kwantowych.
Nanostruktury dla informatyki kwantowej i przykładowe kluczowe doświadczenia.
4) Czemu kubity są bardzo delikatne - dekoherencja wywołana
oddziaływaniem z otoczeniem.
Opcjonalnie:
5) Splątanie kwantowe - zastosowanie do komunikacji kwantowej
i kwantowej korekcji błędu.
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)
Bramki logiczne
„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.
Złożonośc obliczeniowa
Liczba bitów danych = n
Czas obliczeń jest O(f(n)) gdy istnieją takie no oraz
c dla których zachodzi
Czas(n>n0) < cf(n)
Przykłady:
• Dodawanie jest O(n)
• Mnożenie jest O(n2), choć ścisłe górne ograniczenie to 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
Klasyczny komputer
• Informacja kodowana w bitach (0/1)
• Bramki logiczne:
• jednobitowe (NOT)
• dwubitowe (AND, OR, NAND…)
Najpopularniejsza implementacja:
Technologia CMOS – transistory krzemowe
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)
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ć.
Komputer kwantowy
Zamiast klasycznego bitu – kwantowy układ dwupoziomowy
• 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żliwe stany tworzą przestrzeń wektorową nad ciałem liczb zespolonych
(przestrzeń Hilberta):
Dla układu w stanie |Ψ>, prawdopodobieństwo zaobserwowania go w stanie
|n> wynosi
Stany kubitu
a, b – zespolone amplitudy
Wektor Blocha:
|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:
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…)