Algorytmy kwantowe
Czyli skąd ten dreszczyk emocji...
Adam Glos
Instytut Informatyki Teoretycznej i Stosowanej Polskiej Akademii Nauk, Gliwice
QWorld
Po co te kwantowe komputery?
- Problemy które próbujemy rozwiązać stają się coraz "większe"
- Możemy próbować rozwiązać je na kilka sposobów
- tworzyć lepsze algorytmy
- tworzyć mocniejsze procesory/karty graficzne
- łączyć jednostki obliczeniowe (obliczenia wielowątkowe)
Wszystkie metody mają swoje limity!
Jak zmierzyć jakość algorytmu?
Załóżmy, że mamy dane rozmiaru n. Ile więcej czasu będziemy potrzebować jeśli będziemy mieli dwukrotnie większe dane (2n)?
<- dziwna sytuacja!
bardzo źle! ->
Jak zmierzyć jakość algorytmu?
Czy T(n) jest istotnie wolniejsze niż S(n)?
Będziemy pisać, że T(n)=O(n)
Uwaga #1: 0.0001n = O(n) oraz 1000n=O(n)
Uwaga: n+n^2=O(n^2)
Deutsch-Jozsa
010...11
Czarna skrzynka
0
- Skrzynka przyjmuje ciągi 0-1 ustalonej długości n i zwraca bit 0 lub 1
- Skrzynka którą dostajemy albo:
- stała
- zbalansowana
Czarna skrzynka
Czarna skrzynka
Deutsch-Jozsa
010...11
Czarna skrzynka
0
Klasycznie
- Możemy jedynie wrzucać różne ciągi długości n (własność czarnej skrzynki!)
- Jeśli znajdziemy dwa różne ciągi, które zwrócą odpowiednio 0 oraz 1, to skrzynka jest zbalansowana
- jeśli dla 2^{n-1}+1 otrzymamy tę samą wartość - stała
W najgorszym przypadku:
zapytań!
Kwantowa czarna skrzynka
00
Czarna skrzynka
0
01
Czarna skrzynka
1
10
Czarna skrzynka
0
11
Czarna skrzynka
1
Kwantowa czarna skrzynka
Powiniśmy mieć tylko samo kubitów na wejściu i wyjściu!
Kwantowa czarna skrzynka
Pierwsze dwa qubity bez zmian.
Na ostatnim qubicie:
- jeśli wynik miał być 1 - zrób negację
- w przeciwnym wypadku nie rób nic
Mamy kwantową bramkę - działa na superpozycji!
Algorytm Deutsch-Jozsa
- Jeśli na pierwszych n kubitach zmierzymy 00...0, to funkcja jest stała (zawsze 0 lub 1)
- jeśli nie zmierzymy 00...0, to funkcja jest zbalansowana
Dowód na wiki
Wystarczy zapytać raz!
Czyli koniec, wygraliśmy?
Wyrocznia
1.
2.
3.
(k-1).
k.
(k+1).
(n-2).
(n-1).
n.
- Wyrocznia wie który element jest wyróżniony
- wyrocznia odpowiada "tak"/"nie"
Klasyczna wyrocznia
Jak działa klasyczny świat:
- Ustalamy jakąś kolejność elementów i pytamy po kolei
-
Średnio potrzebujemy≈ n/2=O(n)zapytań!
Klasyczna wyrocznia
Musimy powtórzyć fragment
razy!
Czy sqrt(N) to dużo?
n | kwantowo pi sqrt(N)/4 | klasycznie n/2 |
---|---|---|
10 | 2.5 sekundy | 5 sekund |
1000 | 25 sekund | 8.4 minuty |
100 000 | 4.1 minuty | 14 godzin |
1000 000 | 13 minut | 5.8 dnia |
1000 000 000 | niecałe 7 godzin | 1.5 roku |
... ale trudne problemy pozostają trudne!
Tak, różnica jest ogromna...
P vs NP
Czy istnieje kwantowy algorytm, który jest istotnie szybszy od (przynajmniej) znanych nam algorytmów?
Faktoryzacja liczb!
a, b - duże liczby (tysiące cyfr)
- obliczenie a*b jest banalnie proste
- Jeśli mamy n = a*b, to znalezienie a i b może być bardzo trudne!
Algorytm Shora rozwiązuje to w czasnie O(d^3), gdzie d jest liczbą cyfr!
Czy to koniec?
Nie, faktoryzacja nie jest NP-trudna (chyba)
Nie, komputery kwantowe są zbyt małe - mamy kilkadziesiąt kubitów , potrzebujemy miliony
Czy to wszystkie algorytmy?
Shor
Deutsch-Jozsa
Grover
Variational Quantum Eigensolver
Quantum Machine Learning
Simon
Quantum annealing
Quantum Approximate Optimization Algorithm
hybrid quantum-dynamic algorithms
On Quantum Algorithm zoo there is over 60 algorithms!
Ultimate goal: help us creating a new one!
https://quantumalgorithmzoo.org/
Komputery kwantowe
By Adam Glos
Komputery kwantowe
- 163