Komputer kwantowy. Programowanie, algorytmy, kod - ebook
Komputer kwantowy. Programowanie, algorytmy, kod - ebook
Komputery kwantowe nie są już tylko urządzeniami teoretycznymi. Nie są też futurystycznym monstrum, obcą maszyną, która zamieni całe istniejące oprogramowanie w jakąś jego niezrozumiałą alternatywę. Komputery kwantowe (QPU) staną się raczej radykalnym rozszerzeniem możliwości współczesnej informatyki, które pozwoli nam rozwiązać problemy dotychczas nierozwiązywalne. Istnieją ważne zadania, z którymi QPU potrafią sobie świetnie poradzić, a których rozwiązanie byłoby niemożliwe na jakimkolwiek standardowym urządzeniu komputerowym. Z drugiej strony z wieloma standardowymi obliczeniami QPU nie radzi sobie dużo lepiej niż najzwyklejszy laptop. Z punktu widzenia programisty zatem stanowi rodzaj koprocesora o ciekawych możliwościach.
Oto przewodnik po wspaniałym, nieodkrytym jeszcze do końca świecie informatyki kwantowej. Aby ją zrozumieć, niepotrzebny jest doktorat z fizyki kwantowej i wyższej matematyki. Dzięki tej książce opanujesz zestaw pojęć niezbędnych do zrozumienia działania QPU, dowiesz się, jakie problemy mogą rozwiązać aplikacje QPU i nauczysz się korzystać z narzędzi do pisania programów dla QPU. Zaprezentowane tu koncepcje są bogato ilustrowane przykładami, które można łatwo uruchomić na darmowym symulatorze QCEngine. Istnieje też możliwość korzystania z fizycznych QPU (kilka prototypów QPU udostępniono w chmurze). Interesującą, choć nieco trudniejszą częścią przewodnika jest rozdział poświęcony zastosowaniu obliczeń kwantowych w uczeniu maszynowym.
W tej książce:
- koncepcje programowania procesorów kwantowych
- kubity, superpozycja i teleportacje kwantowe
- prymitywy QPU
- wzmacnianie amplitudy, kwantowa transformacja Fouriera i szacowanie fazy
- przykłady aplikacji QPU
QPU: zrób pierwszy krok ku technologii przyszłości!
Spis treści
Wstęp 9
1. Wprowadzenie 13
- Wymagania wstępne 13
- Czym jest QPU? 14
- Podejście praktyczne 15
- Elementarz QCEngine 15
- Natywne instrukcje QPU 17
- Ograniczenia symulatorów 20
- Ograniczenia sprzętu 20
- QPU a GPU: charakterystyka ogólna 20
CZĘŚĆ I. PROGRAMOWANIE DLA QPU
2. Jeden kubit 25
- Krótkie spojrzenie na fizyczny kubit 26
- Wprowadzenie notacji kołowej 29
- Rozmiar kół 29
- Rotacja kół 30
- Pierwsze operacje QPU 31
- Instrukcja QPU: NOT 32
- Instrukcja QPU: HAD 32
- Instrukcja QPU: READ 33
- Instrukcja QPU: WRITE 33
- Czas na praktykę: idealnie losowy bit 34
- Instrukcja QPU: PHASE(?) 37
- Instrukcje QPU: ROTX(?) i ROTY(?) 38
- COPY: brakująca operacja 38
- Łączenie operacji QPU 39
- Instrukcja QPU: ROOT-of-NOT 39
- Czas na praktykę: kwantowy łowca szpiegów 41
- Podsumowanie 44
3. Wiele kubitów 45
- Notacja kołowa rejestrów multikubitowych 45
- Rysowanie rejestru wielokubitowego 48
- Operacje jednokubitowe w wielokubitowych rejestrach 48
- Czytanie kubitu w wielokubitowym rejestrze 50
- Wizualizowanie większej liczby kubitów 51
- Instrukcja QPU: CNOT 52
- Czas na praktykę: wykorzystanie par Bella w dzielonej losowości 55
- Instrukcje QPU: CPHASE i CZ 56
- Sztuczka QPU: odbicie fazowe 57
- Instrukcja QPU: CCNOT (bramka Toffoliego) 59
- Instrukcje QPU: SWAP i CSWAP 60
- Test SWAP 61
- Tworzenie operacji warunkowej 63
- Czas na praktykę: zdalnie kontrolowana losowość 66
- Podsumowanie 68
4. Teleportacja kwantowa 69
- Czas na praktykę: teleportujmy sobie coś 69
- Spacer po programie 74
- Krok 1. Utworzenie splątanej pary 75
- Krok 2. Przygotowanie ładunku 75
- Krok 3.1. Połączenie ładunku ze splątaną parą 76
- Krok 3.2. Wprowadź ładunek w superpozycję 76
- Krok 3.3. Odczytaj oba kubity Alice 77
- Krok 4. Odbierz i przekształć 78
- Krok 5. Weryfikacja wyniku 78
- Interpretowanie wyników 80
- Jak naprawdę używa się teleportacji? 81
- Zabawne wypadki przy teleportacji 81
CZĘŚĆ II. PRYMITYWY QPU
5. Kwantowe arytmetyka i logika 85
- Dziwnie odmienne 85
- Arytmetyka na QPU 87
- Czas na praktykę: budowanie operatorów inkrementacji i dekrementacji 87
- Dodawanie dwóch kwantowych liczb stałoprzecinkowych 90
- Ujemne liczby stałoprzecinkowe 91
- Czas na praktykę: bardziej złożona matematyka 92
- Prawdziwa kwantowość 93
- Wykonanie kwantowo-warunkowe 94
- Wyniki kodowane w fazie 95
- Odwracalność i kubity skreczowe 96
- Odwracanie skutków obliczeń 98
- Mapowanie logiki booleanowskiej do operacji QPU 101
- Podstawowa logika kwantowa 101
- Podsumowanie 103
6. Wzmacnianie amplitudy 105
- Czas na praktykę: konwersja między fazą a wielkością 105
- Iteracja wzmacniania amplitudy 108
- Więcej iteracji? 108
- Wiele wejść z flipem 111
- Wykorzystanie wzmocnienia amplitudy 116
- AA i QFT jako szacowanie sumy 116
- Przyspieszanie konwencjonalnych algorytmów za pomocą AA 117
- Wewnątrz QPU 117
- Intuicja 117
- Podsumowanie 119
7. QFT: Kwantowa transformata Fouriera 121
- Ukryte wzorce 121
- QFT, DFT i FFT 123
- Częstotliwości w rejestrze QPU 123
- DFT 126
- Rzeczywiste i zespolone wejścia DFT 128
- DFT dowolnego sygnału 130
- Używanie QFT 132
- QFT jest szybka 132
- Wewnątrz QPU 139
- Zrozumienie zasad 140
- Operacja po operacji 141
- Wnioski 145
8. Szacowanie fazy kwantowej 147
- Uczymy się o operacjach QPU 147
- Fazy własne uczą nas czegoś użytecznego 148
- Co robi szacowanie fazy 149
- Jak korzystać z szacowania fazy 150
- Wejścia 150
- Wyjścia 152
- Drobnym drukiem 153
- Dobór rozmiaru rejestru wyjściowego 153
- Złożoność 154
- Operacje warunkowe 154
- Szacowanie fazy w praktyce 154
- Wewnątrz QPU 155
- Jak to działa? 156
- Operacja po operacji 157
- Podsumowanie 159
CZĘŚĆ III. ZASTOSOWANIA QPU
9. Prawdziwe dane 163
- Dane liczbowe 163
- QRAM 165
- Kodowanie wektorów 168
- Ograniczenia kodowania amplitudy 171
- Kodowanie amplitudy i notacja kołowa 172
- Kodowanie macierzy 173
- Jak operacja QPU może reprezentować macierz? 173
- Symulacja kwantowa 174
10. Kwantowe wyszukiwanie 179
- Logika fazowa 180
- Budowanie podstawowych operacji logiki fazowej 182
- Budowanie złożonych zdań logiki fazowej 182
- Rozwiązywanie łamigłówek logicznych 185
- O kotkach i tygrysach 185
- Ogólny przepis na rozwiązanie problemu spełnialności formuły logicznej 189
- Czas na praktykę: rozwiązujemy formułę boolowską 3-SAT 190
- Czas na praktykę: problem 3-SAT niespełniający kryteriów 192
- Przyśpieszanie konwencjonalnych algorytmów 194
11. Kwantowy supersampling 197
- Co QPU może zrobić dla grafiki komputerowej? 197
- Zwykły supersampling 198
- Czas na praktykę: obliczanie obrazów kodowanych fazą 199
- Kwantowy shader pikseli 200
- Wykorzystanie PHASE do rysowania 201
- Rysowanie krzywych 203
- Próbkowanie obrazów kodowanych fazowo 204
- Ciekawszy obrazek 205
- Supersampling 208
- QSS a konwencjonalny sampling Monte Carlo 208
- Jak działa QSS 209
- Dodawanie koloru 214
- Podsumowanie 216
12. Algorytm faktoryzacji Shora 217
- Czas na praktykę: wykorzystanie algorytmu faktoryzacji Shora na QPU 218
- Jak właściwie działa algorytm Shora? 219
- Czy w ogóle potrzebujemy QPU? 220
- Podejście kwantowe 222
- Krok po kroku: faktoryzacja liczby 15 223
- Krok 1. Inicjalizacja rejestrów QPU 224
- Krok 2. Rozszerzenie do superpozycji kwantowej 224
- Krok 3. Warunkowe mnożenie przez 2 227
- Krok 4. Warunkowe mnożenie przez 4 228
- Krok 5. Kwantowa transformata Fouriera 229
- Krok 6. Odczytanie kwantowego wyniku 231
- Krok 7. Logika cyfrowa 231
- Krok 8. Sprawdzenie wyniku 234
- Drobnym drukiem 235
- Obliczanie reszty z dzielenia 235
- Czas a przestrzeń 236
- Kopierwsze inne niż 2 236
13. Kwantowe uczenie maszynowe 237
- Rozwiązywanie układów równań liniowych 238
- Opisywanie i rozwiązywanie układów równań liniowych 238
- Rozwiązywanie układu równań liniowych za pomocą QPU 240
- Kwantowa analiza głównych składowych 249
- Standardowa analiza składowych głównych 249
- PCA z QPU 250
- Kwantowa maszyna wektorów podtrzymujących 254
- Standardowe maszyny wektorów podtrzymujących 254
- SVM z QPU 257
- Inne aplikacje uczenia maszynowego 260
CZĘŚĆ IV. PERSPEKTYWY
14. Bądź na bieżąco: przewodnik po literaturze 265
- Od notacji kołowej po wektory zespolone 265
- Subtelności i uwagi na temat terminologii 267
- Podstawy miary 268
- Rozkład bramki i kompilacja 269
- Teleportacja bramek 271
- Galeria sław 271
- Wyścig: komputery kwantowe a klasyczne 272
- Uwaga na temat algorytmów opartych na wyroczni kwantowej 273
- Algorytm Deutscha-Jozsy 273
- Algorytm Bernsteina-Vaziraniego 273
- Algorytm Simona 274
- Języki programowania kwantowego 274
- Obietnica kwantowej symulacji 275
- Korekcja błędu i urządzenia NISQ 276
- Co dalej? 276
- Książki 276
- Notatki z wykładów 277
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-6779-1 |
Rozmiar pliku: | 21 MB |