Komputery Kwantowe. Ravindra W. Chhajlany. 16 stycznia Komputery Kwantowe

Podobne dokumenty
Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 13

Algorytmy w teorii liczb

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Algorytm faktoryzacji Petera Shora dla komputera kwantowego

Algorytmy i struktury danych. Wykład 4

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Wstęp do komputerów kwantowych

Przykładowe zadania z teorii liczb

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

Wybrane zagadnienia teorii liczb

Macierze. Rozdział Działania na macierzach

Obliczenia iteracyjne

Luty 2001 Algorytmy (4) 2000/2001

1. Wykład NWD, NWW i algorytm Euklidesa.

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

5. Rozwiązywanie układów równań liniowych

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Transformaty. Kodowanie transformujace

Złożoność obliczeniowa zadania, zestaw 2

Zegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup.

Zaawansowane algorytmy i struktury danych

III. ZMIENNE LOSOWE JEDNOWYMIAROWE

Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

Zadania do samodzielnego rozwiązania

Przestrzenie wektorowe

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Podstawy Informatyki. Sprawność algorytmów

Dystrybucje, wiadomości wstępne (I)

Algorytm i złożoność obliczeniowa algorytmu

Matematyka dyskretna dla informatyków

Kongruencje twierdzenie Wilsona

Jarosław Wróblewski Matematyka Elementarna, zima 2012/13

Obliczenia inspirowane Naturą

n=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Wnioskowanie bayesowskie

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Poprawność semantyczna

Ćwiczenia z metodyki nauczania rachunku prawdopodobieństwa

Parametry systemów klucza publicznego

Spacery losowe generowanie realizacji procesu losowego

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Funkcje dwóch zmiennych

Optymalizacja ciągła

Zapisujemy:. Dla jednoczesnego podania funkcji (sposobu przyporządkowania) oraz zbiorów i piszemy:.

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Matematyka dyskretna

Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych

Matematyka dyskretna

PODSTAWY RACHUNKU WEKTOROWEGO

Przekształcenia liniowe

Metody Rozmyte i Algorytmy Ewolucyjne

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

Rozdział 2. Liczby zespolone

1 Funkcje dwóch zmiennych podstawowe pojęcia

Metody numeryczne I Równania nieliniowe

Pierścień wielomianów jednej zmiennej

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

RÓWNANIA NIELINIOWE Maciej Patan

Informatyka kwantowa. Karol Bartkiewicz

Wielomiany podstawowe wiadomości

Prawdopodobieństwo i statystyka

I. Pochodna i różniczka funkcji jednej zmiennej. 1. Definicja pochodnej funkcji i jej interpretacja fizyczna. Istnienie pochodnej funkcji.

Weryfikacja hipotez statystycznych

Układy stochastyczne

Jeszcze o algorytmach

Haszowanie. dr inż. Urszula Gałązka

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Wyszukiwanie binarne

Wykład 4 Przebieg zmienności funkcji. Badanie dziedziny oraz wyznaczanie granic funkcji poznaliśmy na poprzednich wykładach.

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Numeryczne rozwiązywanie równań różniczkowych ( )

Drgania i fale II rok Fizyk BC

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Treści zadań Obozu Naukowego OMG

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Zestaw zadań dotyczących liczb całkowitych

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

Matematyka licea ogólnokształcące, technika

Ciała skończone. 1. Ciała: podstawy

Pochodna i różniczka funkcji oraz jej zastosowanie do obliczania niepewności pomiarowych

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

Transkrypt:

Ravindra W. Chhajlany 16 stycznia 2007

Plan

Przeszukiwanie nieuporządkowanej bazy danych: I Przykłady 1. Z ksiązki adresowej, podaj nazwę użytkownika do którego przypisany jest jakiś numer telefonu, np. 8239412. 2. Ze słownika języka Polskiego, znajdź słowo wypełniając puste miejsca z m n. 3. itd...

Przeszukiwanie nieuporządkowanej bazy danych: przypadek klasyczny Każdy problem wyszukiwania można przeformułować na problem szukanie indeksu rozwiązania. //znajdź położenie x0 elementu a w bazie db function x0=znajdź(a, db[n]) x0=0; while (db[x0]!=a) x0++; Idea Porównaj a po kolei z każdym elementem db do momentu trafienia na rozwiązanie. Koncepcyjnie, jest to proces obliczenia funckji { 1 dla x = x0 f (x) = 0 dla x x 0 Średnia liczba kroków potrzebych do znalezienia rozwiązania: 1 N + 1 (1 + 2 + 3 +... + N) = N 2 Złożoność problem jest O(N).

Przeszukiwanie nieuporządkowanej bazy danych: przypadek klasyczny - wyrocznia Sformułowanie zagadnienia za pomocą wyroczni (tu już wiemy jaka jest wewnętrzna struktura programu ale jest wygodnie prowadzić ogólne rozważania odnosząc się tylko do głównej zasady działąnia algorytmu). Możliwe wartości indeksu x są to wszystkie liczby naturalne do liczby N określającej rozmiar bazy danych. x / y O f / x y f (x) Złożoność problemu znalezienia indeksu x 0 : O(N) Jeśli jest M rozwiązań wśród N możliwości, wtedy złożoność problemu jest: O(N/M).

Przeszukiwanie nieuporządkowanej bazy danych: przypadek kwantowy - wyrocznia Idea Idea jest dalej ta sama: trzeba zidentyfikować wartość indeksu x 0, dla której funkcja f (x 0 ) = 1. x / y Przypomnijmy, że U f / x y f (x) U f x = ( 1) f (x) x Ponieważ stan qubitu zapytania się nie zmienia, będziemy pisać działanie wyroczni pomijając qubit zapytania: Ũ f x = ( 1) f (x) x

Idea kwantowego wyszukiwania: Jak wiadomo, można równolegle obliczyć wszystkie wartości funckji wprowadzając superpozyjcję wszyskich możliwych indeksów jednocześnie do wyroczni w postaci stanu: ψ = H n 0 = + n = 1 N 1 x, n = log(n) N x=0 Idea działaniu algorytmu kwantowego: Problem wyszukiwania jednej wartości wśród czterech możliwych.

Idea kwantowego wyszukiwania: Jak wiadomo, można równolegle obliczyć wszystkie wartości funckji wprowadzając superpozyjcję wszyskich możliwych indeksów jednocześnie do wyroczni w postaci stanu: ψ = H n 0 = + n = 1 N 1 x, n = log(n) N x=0 2 1.8 1.6 1.4 Stan początkowy Amplituda 1.2 1 0.8 0.6 0.4 0.2 0 1 2 3 4 Indeks

Idea kwantowego wyszukiwania: Jak wiadomo, można równolegle obliczyć wszystkie wartości funckji wprowadzając superpozyjcję wszyskich możliwych indeksów jednocześnie do wyroczni w postaci stanu: ψ = H n 0 = + n = 1 N 1 x, n = log(n) N x=0 1 0.8 0.6 0.5 0.4 Krok 1. Zadziałanie wyroczni: Niech f (2) = 1. Amplituda 0.2 0 0.2 0.4 0.6 0.8 1 1 2 3 4 Indeks

Idea kwantowego wyszukiwania: Jak wiadomo, można równolegle obliczyć wszystkie wartości funckji wprowadzając superpozyjcję wszyskich możliwych indeksów jednocześnie do wyroczni w postaci stanu: ψ = H n 0 = + n = 1 N 1 x, n = log(n) N x=0 2 1.8 1.6 1.4 Krok algorytmiczny: Odwrócenie względem średniej. Amplituda 1.2 1 0.8 0.6 0.4 0.2 0 1 2 3 4 Indeks

Idea kwantowego wyszukiwania: Jak wiadomo, można równolegle obliczyć wszystkie wartości funckji wprowadzając superpozyjcję wszyskich możliwych indeksów jednocześnie do wyroczni w postaci stanu: ψ = H n 0 = + n = 1 N 1 x, n = log(n) N x=0 W tym prostym przypadku, z tak wybranym algorytmem, wystarczy odwołać się tylko raz do wyroczni aby wyszukać odpowiednie rozwiązanie!! Klasycznie, średnio rzecz biorąc trzeba by 2.5 razy odwołać się do wyroczni. Wazne: Inwersję wokół średniej można wykonać za pomocą kwantowej operacji. Normalna inwersja (wokół 0): a a Inwersja wokół pewnego b : a b b a a 2 b a.

Kwantowa operacji wykonująca inwersję wokół średniej Dowolny stan kwantowy Ψ = i α i i. Średnia wartość amplitudy: α = 1 N i α i Inwersja stanu wokół średniej oznacza: Ψ i (2 α α i) k. Jaka operacja wykonuje taką transformację na dowolnym stanie? Odpowiedź: I α = 2 ψ ψ I. Dowód: = 2 N ( i I α α i i = 2 i i α i ψ ψ i i α i i = ψ i = 1 N α i ) ψ α i i = 2 ( ) α i k N i i k i ) (2 α α i i i α i i =

Kwantowa operacji wykonująca inwersję wokół średniej Dowolny stan kwantowy Ψ = i α i i. Średnia wartość amplitudy: α = 1 N i α i Inwersja stanu wokół średniej oznacza: Ψ i (2 α α i) k. Jaka operacja wykonuje taką transformację na dowolnym stanie? Odpowiedź: I α = 2 ψ ψ I. Rozłożenie I α na proste bramki: Ponieważ H n 0 = ψ, I α = H n (2 0 0 I )H n = H n PH n. Bramka fazowa P: (2 0 0 I ) i = ( 1) δi,0 i.

Grover a 0 Wprowadź równoległy stan wszystkich danych (indeksów) ψ Algorytm związany z jednym odwołaniem do wyroczni: 1 krok iteracyjny Grovera. 1 Wykonaj operację wyroczni U f. 2 Wykonaj operację I α. Każdy krok Grovera (kroki 1,2) zwiększa amplitudę prawdziwego rozwiązania w stanie końcowym. Dla przypadku N > 4, trzeba wykonać pewną liczbę kroków Grovera zanim stan końcowy będzie z bardzo dużym prawdopodobieństwem stanem złożonym z rozwiązań. Okazuje się liczba tych kroków (czyli odwołań do wyroczni) jest O( N/M), jeśli jest M możliwych rozwiązań.

Analiza działania algorytmu Grover a Załóżmy, że jest M rozwiązań ze zbioru N możliwości. Stan początkowy ψ można podzielić na dwie grupy: rozwiązania R i ich dopełnienie R. 1 α = x N M x R β = 1 x M x R przy czym oczywiście α β = 0. Stan początkowy w algorytmie można napisać jako ψ = 1 x = N x N M N α + cos(θ/2) α + sin(θ/2) β CEL: Zwiększyć amplitudę przy β. M N β =

Analiza działania algorytmu Grover a: I Działanie wyroczni na stany α, β U f α = α, U f β = β Można więc napisać, że U f = 2 α α I. Geometryczna interpretacja U f : Odbicie względem osi α β Ψ θ/2 θ/2 α Analogicznie, operator inwersji I α jest odbiciem względem osi ψ. Uf Ψ

Analiza działania algorytmu Grover a: II Geometryczna interpretacja algorytmu Grovera 1 krok Grovera 2 odbicie = 1 obrót! β G ψ θ ψ θ/2 θ/2 α G ψ = cos(3θ/2) α + sin(3θ/2) β Po k iteracjach stan danych jest obrócony do G k ψ = cos((2k + 1)θ/2) α + sin((2k + 1)θ/2) β (1)

Złożóność algorytmu Grovera Po ilu kroków, prawdopodobieństwo zmierzenia jednego z możliwych rozwiązań wzrasta (prawie) do 1? Prawdopodobieństwo zmierzenia prawdziwego rozwiązania po k iteracjach wynosi z równania (1) p β = sin 2 2k + 1 θ = 1 ( ) 1 cos(2k + 1)θ 2 2 W najlepszym wypadku, p β 1 cos(2k + 1)θ = 1 K π 2θ. Przypominając, że sin θ/2 = M/N, oraz że x >= sin(x) (dla x > 0) mamy θ M M 2 > N θ > 2 N K < π N 4 M co oznacza, że algorytm Grovera znajduje rozwiązania w O( N/M).

Podsumowanie Algorytm Grovera Problem: Należy przeszukać N elementowy zbiór w poszukiwaniu pewnego elementu spełniającego pewne kryerium. W ogólności może byc M takich specjalnych elementów. 1. Przygotuj początkowy stan ψ = + n 2. Wykonaj iterację Grovera rzędu O( N/M) razy. 3. Wykonaj pomiar qubitów danych w bazie logicznej aby otrzymać z prawdopodobieństwem 1 jedno rozwiązanie problemu wyszukiwania.

Problem Simona Dana jest funkcja f a : {0, 1} n {0, 1} n, spełniająca zależność f (x a) = f (x), tzn. jest funkcją 2 na 1. Liczba a jest więc okresem funkcji. Przykład funkcji dla przypadku 3 bitów: Argumenty 0 1 2 3 4 5 6 7 Binarnie 000 001 010 011 100 101 110 111 Przykład f 2 (x) 0 1 0 1 2 3 2 3 Ogólniej f 2 (x) y 1 y 2 y 1 y 2 y 3 y 4 y 3 y 4 f 3 (x) y 1 y 2 y 2 y 1 y 3 y 4 y 4 y 3 Problem: Dana jest wyrocznia obliczająca (nieznaną) funkcję f a dla dowolnego argumentu. W ilu krokach można stwierdzić jaki jest okres a funkcji?

Problem Simona: Rozwiązanie klasyczne Wyrocznia klasyczna: O fa : (x, y) (x, y f a (x)) x x y O fa y f a (x) Złożoność algorytmiczna Zauważmy, że jeśli f (x i ) = f (x j ) x j = x i a a = x i x j W każdym kroku obliczamy funkcję dla jednego argumentu x. Jakie jest prawdopodobieństwo znalezienia rozwiązania w m kroków? Ilość możliwych okresów próbnych a jakie można sprawdzić w m krokach = ( m 2). Prawdopodobieństwo, że wśród nich trafimy na szukane rozwiązanie = ( m p(m) = 2) N, N = 2n = Liczba możliwych a

Problem Simona: Rozwiązanie klasyczne Wyrocznia klasyczna: O fa : (x, y) (x, y f a (x)) x x y O fa y f a (x) Złożoność algorytmiczna Zauważmy, że jeśli f (x i ) = f (x j ) x j = x i a a = x i x j W każdym kroku obliczamy funkcję dla jednego argumentu x. Po ilu krokach M, prawdopodobieństwo znalezienia a jest 1? M 2 n/2 Algorytm klasyczny ma więc złożoność O(2 n/2 )

Pomiar stanu argumentu nie daje wartości a. Problem Simona: Rozwiązanie kwantowe Wyrocznie kwantowa: U f : x y x y f (x) x / U f / x y / / y f (x) Algorytm: jeden krok 1. Obliczamy wszystkie możliwe wartości funckji jednocześnie wprowadzając wszsytkie argumenty: + n 2 U f + n 0 n 1 n 1 = U f x 0 n = 1 2 n 1 x f (x) 2 n/2 2 n/2 x=0 2. Wykonujemy pomiar wartości funkcji na drugim rejestrze aby otrzymać pewną wartość funkcji f (x 0 ). Wtedy rejestr argumentów jest w stanie 1 2 ( x 0 + x 0 a ) = out x=0

Problem Simona: Rozwiązanie kwantowe Wyrocznie kwantowa: U f : x y x y f (x) x / U f / x y / / y f (x) Algorytm: jeden krok 3. Żeby odzyskać okres funkcji, wykonujemy H n na rejestrze danych H n out 1 2 n 1 ( 1) x0 y y + ( 1) x0 y a y y = 2 (n+1)/2 y=0 1 2 (n 1)/2 y a y=0 ( 1) x0 y y Pomiar teraz rejestru danych w bazie logicznej daje teraz pewną wartość y 1, takim że a y 1 = 0. Ilość takich liczb y wynosi z powyższego równania: 2 n 1.

Problem Simona: Rozwiązanie kwantowe Wyrocznie kwantowa: U f : x y x y f (x) x / / x U f y / / y f (x) Algorytm Trzeba powtórzyć ten podstawowy krok wystarczająca liczbę (M) razy aby otrzymać n niezależnych wartości y by wyznaczyć n-bitową liczbę a. Jaka jest liczba M? M = O(n) a y 1 = 0. a y n = 0

Problem Simona: Rozwiązanie kwantowe Wyrocznie kwantowa: U f : x y x y f (x) x / / x U f y / / y f (x) Dowód, że M = O(n) y = 0 zawsze jest rozwiązaniem, więc przyjmujemy, że y 1 = 0. Załóżmy, że y 1, y 2,... y m są niezależnymi liczba otrzymany z działania algorytmu. Jakie jest prawdopodobieństwo p m+1, że następna liczba będzie liniowo niezależna od wcześniejszych? Ilość liczb L liniowo zależnych od pozostałych m liczb: ( ) ( ) ( ) m 1 m 1 m 1 L = }{{} 1 + + +... + = 2 m 1 1 2 m 1 y=0 } {{ } y=y i 0 }{{} y=y i y j y i,j 0 p m+1 = 1 2m 1 = 1 2m n 2n 1 }{{} y=y 2 y 3... y m

Problem Simona: Rozwiązanie kwantowe Wyrocznie kwantowa: U f : x y x y f (x) x / / x U f y / / y f (x) Dowód, że M = O(n) Jaka jest średnia liczba odwołań r do wyroczni żeby uzyskać m+1-szą liczbę niezależną y m+1? Jeśli p jest prawdopodobieństwem powodzenia, wówczas r = kp(1 p) k 1 = 1 p k=1 W naszym przypadku p = p m+1, więc r = 1 1 2 m n 1 + 2m n O(1) Każdą liczbę generujemy średnio w jednym kroku, więc n liczb generujemy w O(n) kroków.

Problem Simona: Rozwiązanie kwantowe Wyrocznie kwantowa: U f : x y x y f (x) x / / x U f y / / y f (x) Złożoność algorytmu Po O(n) odwołaniach, otrzymujemy n niezależnych równań, z któych można wyznaczyć n-bitową liczbę a. Ten algorytm przedstawia eksponencjalne przyszpieszenie w stosunku do klasycznego rozwiązania. Jest to pierwszy nietrywialny przykład przyspieszenia kwantowego.

Okresowość i znajdywanie okresu funkcji Dana jest funkcja f r : {0, 1} n {0, 1} m, spełniająca zależność f r (x) = f r (x + mr), gdzie każde x + mr leży pomiędzy 0 i N 1 (N = 2 n ). Liczba r jest okresem funkcji. Przykład funkcji dla przypadku 3 bitów: Argumenty 0 1 2 3 4 5 6 7 f 2 (x) y 1 y 2 y 1 y 2 y 1 y 2 y 1 y 2 f 3 (x) y 1 y 2 y 3 y 1 y 2 y 3 y 1 y 2 Problem: Znajdź okres danej funkcji okresowej. Klasycznie problem znajdywania okresu jest trudny - jeśli liczba r jest rzędu 2 n/2, trzeba średnio wykonać kroków rzędu 2 n/4 by trafić na 2 wartości x przyjmujące tę samą wartość funkcji.

Algorytm kwantowy do znajdywania okresu Standardowy schemat x / U f / x y / / y f (x) Algorytm: Pierwsze kroki (tak jak w alg. Simona) 1. Równoległe obliczenie kwantowe: 0 n 0 m H n I 1 N 1 N x=0 x 0 U f 1 N 1 x f (x) N x=0 2. Wykonujemy pomiar wartości funkcji (na 2 rejestrze) uzyskując przypadkową wartość f (x 0 ). Stan rejestru argumentów po odczycie wartości funkcji: A 1 1 x 0 + jr, gdzie A = liczba tych argumentów A j=0

Algorytm kwantowy do znajdywania okresu Ile może wynosić A? A 1 < N r < A + 1 0 r 2r 3r N 1 r N r x 0 + (A 1)r ( N 1) < N A 1 < N r, N Ar x 0 < r N r < A + 1 Jeśli N/r jest liczbą całkowitą N/r = A.

Algorytm kwantowy do znajdywania okresu Kluczowe narzędzie do wyciągania okresu: (Kwantowa) Transformata Fouriera QFT N : x 1 N 1 ( ω xy y, ω = exp i 2π ) N N y=0 Zauważmy, że QFT 2 = H. (Dlatego wykorzystano H n do znalezienia okresu funkcji w algorytmie Simona w kroku 3 - Jest to odpowiednia transformata Fouriera do tam zdefiniowanego typu funkcji)

Algorytm kwantowy do znajdywania okresu Algorytm: c.d. 3. Należy wykonać QFT N na rejestrze danych: ( A 1 1 x 0 + jr QFT N 1 N 1 A 1 ω x0y ω ) y jry = dane A NA j=0 y=0 j=0 i wykonać pomiar rejestru argumentów (w bazie logicznej). Prawdopodobieństwo zmierzenie losowej wartości y wynosi y dane 2 = p(y) = 1 A 1 2 ω jry NA j=0 Powyższy rozkład prawdopodobieństwa premiuje wartości takie, że yr/n jest bliskie liczb całkowitych!

Algorytm kwantowy do znajdywania okresu Analiza wyniku kroku 3: Przypadek szczególny: Załóżmy, że r N (r dzieli N) W tym przypadku A = N/r, ponadto A 1 A 1 ω jry = exp (i 2π ) { A y = ka = k A yj N = r 0 w pozostałych przypadkach j=0 ponieważ A 1 j=0 j=0 exp (i 2π ) A 1 A yj = j=0 ξ j = 1 ξa 1 ξ = 1 ei2πy 1 e i2πy/a

Algorytm kwantowy do znajdywania okresu Analiza wyniku kroku 3: Przypadek szczególny: Załóżmy, że r N (r dzieli N) W tym przypadku A = N/r, ponadto A 1 A 1 ω jry = exp (i 2π ) { A y = ka = k A yj N = r 0 w pozostałych przypadkach j=0 Stąd j=0 { 1 p(y) = r y = k N r 0 poza tym dane = 1 r 1 ω x0k r r k N r k=0

Algorytm kwantowy do znajdywania okresu Analiza wyniku kroku 3: Przypadek szczególny: Załóżmy, że r N (r dzieli N) Po zmierzeniu y, łatwo wyznaczyć y/n = k/r. Doprowadź do najprostszej postaci y/n. Jeśli NWD(k, r)=1, otrzymujemy r. Jeśli NWD(k, r) 1, otrzymujemy czynnik liczby r. Po otrzymaniu liczby sprawdzamy czy znaleziona liczba (lub jeśli nie można np. spróbować czy któryś z kilku pierwszych mnożników ) jest okresem funkcji. Jeśli nie, powtórz krok 3. Można pokazać, że istnieje duże tego, że wybrane k z zakresu od 0 do r 1 nie będzie miało wspólnych dzielników z r. to nie jest oczywiście konieczne chociaż w praktyce może być wskazane.

Algorytm kwantowy do znajdywania okresu Analiza wyniku kroku 3: Przypadek szczególny: Załóżmy, że r N (r dzieli N) 1 0.9 0.8 N=16, r=2 0.7 0.6 p(y) 0.5 0.4 0.3 0.2 0.1 0 2 0 2 4 6 8 10 12 14 16 y Załóżmy, że wynika pomiaru to y = 8. Wówczas y/n = 1/2, i przyjmujemy r = 2. Sprawdzamy.

Algorytm kwantowy do znajdywania okresu Analiza wyniku kroku 3: Przypadek szczególny: Załóżmy, że r N (r dzieli N) 1 0.9 0.8 N=16, r=4 0.7 0.6 p(y) 0.5 0.4 0.3 0.2 0.1 0 2 0 2 4 6 8 10 12 14 16 y Załóżmy, że wynika pomiaru to y = 12. Wówczas y/n = 3/4 = k/r, i przyjmujemy r = 4. Sprawdzamy. itd.

Algorytm kwantowy do znajdywania okresu Analiza wyniku kroku 3: Przypadek ogólny: Jeśli r N, możliwe wartości A = N r, z oznacza najbliższą liczbę całkowitą otrzymaną po zaokrągleniu liczby z w górę lub w dół. Teraz transformata Fouriera promuje takie y, że y = k N r, natomiast prawdopodobieństwa innych wyników już nie są zerowa, chociaż maleją dla coraz większych N (zob. dalej). Stan danych po QFT jest więc z dużym prawdopodobieństwem dane 1 r 1 ω x0k r r k N r k=0 (Oczywiście można podać ilościowe oszacowania tego prawdopodobieństwa)

Algorytm kwantowy do znajdywania okresu Analiza wyniku kroku 3: Przypadek ogólny: Po zmierzeniu y, znów można policzyć y/n. Można pokazać, że tak wyznaczone y/n (gdy r << N) wyznacza k/r z dokładnością do 1/(2N). Dokładną wartość k/r można wyznaczyć z y/n techniką ciągłego rozwinięcia ułamków (CRU). Po wyznaczeniu tej wielkości dalsze etapy są takie same jak w poprzednim przypadku uproszczonym. CRU Każdą liczbę rzeczywistą można przyblizyć ciągiem ułamków o następującej postaci α = α 0 + 1 α 1 + 1 α 2+ 1 α 3 +. {α 0, α 1, α 2, α 3,...} Jeśli α jest n-bitową liczbą wymierną, CRU można wykonać w rzędu O(n 3 ).

Algorytm kwantowy do znajdywania okresu Przykłady 0.8 0.6 N=16, r=3 p(y) 0.4 0.2 Jeśli y = 5, 0 2 0 2 4 6 8 10 12 14 16 y y/n = 5/16 = 1 3 + 1 5 = {3, 5} = 1 3 r = 3

Algorytm kwantowy do znajdywania okresu Przykłady 0.8 0.6 N=16, r=3 p(y) 0.4 0.2 Jeśli y = 11, 0 2 0 2 4 6 8 10 12 14 16 y y/n = 11/16 = 1 1 + 1 2+ 1 5 = {1, 2, 3} = 2 3 r = 3;

Algorytm kwantowy do znajdywania okresu Przykłady 0.3 0.25 N=512, r=7 0.2 p(y) 0.15 0.1 0.05 Jeśli y = 73, 0 100 0 100 200 300 400 500 600 y y/n = 73/512 = {7, 73} = 1 7 r = 7;

Algorytm kwantowy do znajdywania okresu Przykłady 0.2 N=1024, r=11 p(y) 0.1 Jeśli y = 186, 0 200 0 200 400 600 800 1000 1200 y y/n = 186/1024 = {5, 1, 1, 46} = 2 11 r = 11;

Podsumowanie algorytmu znajdywania okresu Złożoność Dla r/n << 1, z dużym prawdopodobieństwem otrzymujemy y = k k N, z czego można wyznaczyć k/r za pomocą techniki CRU. Również z dużym prawdopodobieństwem NWD(k, r) = 1. Łącznie można więc z góry wybrać odpowiednią stałą liczbę odwołań do wyroczni aby osiągnąc sukces. Natomiast CRU wymaga O(log(N) 3 ) operacji. Więc złożoność algorytmu nielicząc złożoności wykonania QFT jest własnie O(log(N) 3 ).

QFT QFT N j = 1 N 1 e i2πj/nk k, QFT.QFT = I N k=0 Zasada implementacji jest podobna do klasycznego FFT ale wykorzystując kwantową równoległość można wykonać QFT wydajniej niż FFT. Filozofia Dziel i rządź j = j 1 j 2... j n = 2 n 1 j 1 + 2 n 2 j 2 +... 2 0 j n j N = 2 1 j 1 + 2 2 j 2 +... + 2 n j n = 0.j 1 j 2... j n j 2 l = j 1 j 2... j n l j n l+1... j n e i2πj1j2...j n l j n l+1...j n = e i2π0.j n l+1...j n

1 2 n n 1 2 n 1 l=1 k l =0 QFT j = 1 2 n 1 e i2πj/2nk k = 2 n 1 1... k 1=0 k 2=0 1 k=0 k n=0 l=1 e i2π(j/2l )k l k l = 1 2 n 1 2 n n e i2π(j/2n )2 n l k l k l = n l=1 k l =0 ( ) n 0 + e i2π(0.j n l+1...j n) 1 = l=1 1 e i2π(0.j n l+1...j n)k l k l = ( )( ) ( ) 0 + e i2π0.jn 1 0 + e i2π0.jn 1jn 1 0 + e i2π0.j1...jn 1... 2 2 2 Niech ( ) 1 0 R k = 0 e i2π/2k

j1 j2 H R 2 R N 0 + e i2π0.j1...jn 1 0 + e i2π0.j2...jn 1 H R N 1 jn H 0 + e i2π0.jn 1 Na końcu należy wykonać zamianę wyjściowego qubitu pierwszego z ostatnim, drugiego z przedostatnim itd... Ile bramek jest potrzebnych, żeby zaimplementować QFT? n(n + 1) 2 } {{ } H+R k Klasyczne FFT jest O(n2 n )! + n = O(n 2 ) }{{} 2 swaps

Fundamentalne twierdzenie teorii liczb Każdą liczbę naturalną N można rozłożyć na iloczyn liczb pierwszych: N = p b1 1 p b2 2... dużych liczb jest klasycznie trudna Najlepszy znany dotychczas algorytm klasyczny faktoryzuje n-bitową liczbę w 0 ( exp ( (64 9 ) n 1 3 (log n) 2 3 ))

Derek Atkins, Michael Graff, Arjen Lenstra, Paul Leyland - http://www.mit.edu:8001/people/warlord/rsa129- announce.txt RSA 129 = 1143816257578888676692357799761 466120102182967212423625625618429 357069352457338978305971235639587050 58989075147599290026879543541 = 34905295108476509491478496199038 98133417764638493387843990820577 327691329932667095499619881908344 61413177642967992942539798288533 The sieving step took approximately 5000 mips years, and was carried out in 8 months by about 600 volunteers from more than 20 countries, on all continents except Antarctica.

Redukcja problemu faktoryzacji do znajdywania rzędu Własność liczb względnie pierwsze z N Jeśli (NWD(a, N) = 1), to istnieje takie r, że a r mod N = 1 Rzędem liczby a modulo N nazywamy najmniejszą taką liczbę r. Przykład 4 jest wzg. pierwsza do 15 Rząd liczby 4 wynosi r = 2, ponieważ 4 2 = 16 = 1 mod 16

Redukcja problemu faktoryzacji do znajdywania rzędu Własność liczb względnie pierwsze z N Jeśli (NWD(a, N) = 1), to istnieje takie r, że a r mod N = 1 Rzędem liczby a modulo N nazywamy najmniejszą taką liczbę r. Problem znajdywania okresu jako problem znajdywania okresu f (x) a x mod N, f (x + r) = a x+jr mod N = a x mod N (a r mod N) j = a x mod N = f (x)

Redukcja problemu faktoryzacji do znajdywania rzędu Niech N = p q, gdzie p, q są pierwsze. Załóżmy, że mamy pewną liczbę względnie pierwszą do a, która posiada parzysty rząd r. Wtedy łatwo znaleść czynniki pierwsze danej liczby. Dlaczego? a r = 1 mod N a r 1 = 0 mod N 2 r (a r/2 1) (a r/2 + 1) = 0 mod N Ale a r/2 1 mod N, bo r jest najmniejszą liczbą, że a r = 1 mod N. Więc albo mamy, że a r/2 + 1 = 0 mod N czyli a r/2 = 1 mod N = N 1, lub a r/2 + 1 0 mod N, i wtedy a r/2 1 i (a r/2 + 1 zawierają czynniki pierwsze liczby N. W tym drugim przypadku, NWD(a r/2 ± 1, N) daje nam więc czynniki pierwsze p, q liczby N!

Redukcja problemu faktoryzacji do znajdywania rzędu Czy spełnienie warunków sukcesu jest trudne (*) Prawdopobieństwo, że losowa liczba ma parzysty rząd i a r/2 N 1 wynosi dla liczb typu RSA przynajmniej 3/4. Pomysł Shora Rząd liczby (czyli okres funkcji f (x) = a x mod N) jest trudny do policzenia klasycznia, ale kwantowo wymaga tylko O(log (N) 3 ) kroków.

Algorytm Shora do faktoryzacji liczby 1. Wybierz zakres argumentów T dla funkcji f (x), tak żeby okres szukany był mały (r < T ), wystarczy wybrać T > log(n 2 ) = 2 log(n) 2. Wybierz liczbę a z zakresu 0 do N 1. 3. Sprawdź za pomocą algorytmu Euclidesa czy NWD(a, N) = 1, jeśli nie to NWD(a, N) jest szukanym czynnikiem pierwszy, jeśli tak, przejdź dalej 4. Znajdź okres funkcji f a (x) za pomocą kwantowego algorytmu 5. Czy r jest parzyste: nie - wróć do punktu 2. idź dalej 6. Sprawdź czy a r/2 + 1 = 0 mod N: Jeśli tak, wróć do punkty 2. Jeśli nie, SUKCES, Policzyć NWD(a r/2 ± 1 = 0) mod N (za pomocą algorytmu Euklidesa w O(log(N)) 3 ) by otrzymać p, q.

Złożoność algorytmu Shora Ilość kroków jakie trzeba więc wykonać wynosi jest O(log(N) 3 ) NWD+ f(x) + QFT O(log(N) 3 ) + O(log(N) 3 ) + O(log(N) 2 ) = O(log(N) 3 ) Obliczenie samej funkcji jest łatwe jak się wykona poprzez modularne potęgowanie.