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ą.