Co to jest komputer kwantowy? Wyjaśnione na prostym przykładzie.

by YK Sugi

Witam wszystkich!

Kiedyś odwiedziłem D-Wave Systems w Vancouver w Kanadzie. Jest to firma, która produkuje najnowocześniejsze komputery kwantowe.

Dowiedziałem się tam wiele o komputerach kwantowych, więc chciałbym podzielić się z Wami częścią tego, czego się tam nauczyłem w tym artykule.

Celem tego artykułu jest przekazanie Wam dokładnej intuicji tego, czym jest komputer kwantowy na prostym przykładzie.

Ten artykuł nie będzie wymagał od ciebie wcześniejszej wiedzy ani o fizyce kwantowej, ani o informatyce, abyś był w stanie go zrozumieć.

Okay, let’s get started.

Edit (Feb 26, 2019): Niedawno opublikowałem wideo na ten sam temat na moim kanale YouTube. Zalecałbym obejrzenie go (kliknij tutaj) przed lub po przeczytaniu tego artykułu, ponieważ dodałem kilka dodatkowych, bardziej zniuansowanych argumentów w wideo.

Co to jest komputer kwantowy?

Tutaj znajduje się jednozdaniowe podsumowanie tego, czym jest komputer kwantowy:

Komputer kwantowy to rodzaj komputera, który wykorzystuje mechanikę kwantową, dzięki czemu może wykonywać pewne rodzaje obliczeń bardziej wydajnie niż zwykły komputer.

W tym zdaniu jest wiele do rozpakowania, więc pozwól, że przeprowadzę Cię przez to, co to dokładnie jest, używając prostego przykładu.

Aby wyjaśnić, czym jest komputer kwantowy, będę musiał najpierw wyjaśnić trochę o zwykłych (niekwantowych) komputerach.

Jak zwykły komputer przechowuje informacje

Zwykły komputer przechowuje informacje w serii 0 i 1.

Różne rodzaje informacji, takie jak liczby, tekst i obrazy mogą być reprezentowane w ten sposób.

Każda jednostka w tej serii 0 i 1 jest nazywana bitem. Tak więc bit może być ustawiony na 0 lub 1.

A teraz, co z komputerami kwantowymi?

Komputer kwantowy nie używa bitów do przechowywania informacji. Zamiast tego używa czegoś, co nazywa się qubitami.

Każdy qubit może być nie tylko ustawiony na 1 lub 0, ale może być również ustawiony na 1 i 0. Ale co to dokładnie znaczy?

Pozwól mi wyjaśnić to na prostym przykładzie. To będzie nieco sztuczny przykład. Ale i tak będzie pomocny w zrozumieniu, jak działają komputery kwantowe.

Prosty przykład dla zrozumienia, jak działają komputery kwantowe

Załóżmy teraz, że prowadzisz biuro podróży i musisz przenieść grupę ludzi z jednego miejsca do drugiego.

Aby zachować prostotę, powiedzmy, że na razie musisz przenieść tylko 3 osoby – Alice, Becky i Chrisa.

I załóżmy, że zarezerwowałeś w tym celu 2 taksówki i chcesz dowiedzieć się, kto wsiada do której taksówki.

Załóżmy również, że masz informacje o tym, kto jest przyjacielem kogo, a kto wrogiem kogo.

Powiedzmy, że:

  • Alice i Becky są przyjaciółmi
  • Alice i Chris są wrogami
  • Becky i Chris są wrogami

Załóżmy, że Twoim celem jest podzielenie tej grupy 3 osób na dwie taksówki, aby osiągnąć następujące dwa cele:

  • Maksymalizacja liczby par przyjaciół, które dzielą ten sam samochód
  • Minimalizacja liczby par wrogów, które dzielą ten sam samochód

Okay, więc to jest podstawowe założenie tego problemu. Zastanówmy się najpierw jak rozwiązalibyśmy ten problem używając zwykłego komputera.

Rozwiązanie tego problemu za pomocą zwykłego komputera

Aby rozwiązać ten problem za pomocą zwykłego, niekwantowego komputera, musisz najpierw dowiedzieć się jak przechowywać odpowiednie informacje za pomocą bitów.

Nazwijmy dwie taksówki Taxi #1 i Taxi #0.

Wtedy możesz reprezentować, kto wsiada do którego samochodu za pomocą 3 bitów.

Na przykład, możemy ustawić trzy bity na 0, 0 i 1, aby reprezentować:

  • Alice wsiada do Taxi #0
  • Becky wsiada do Taxi #0
  • Chris wsiada do Taxi #1

Ponieważ są dwa wybory dla każdej osoby, istnieje 2*2*2 = 8 sposobów na podzielenie tej grupy ludzi na dwa samochody.

Tutaj jest lista wszystkich możliwych konfiguracji:

A | B | C
0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1 | 0
1 | 1

Używając 3 bitów, można reprezentować dowolną z tych kombinacji.

Obliczanie wyniku dla każdej konfiguracji

A teraz, używając zwykłego komputera, jak określilibyśmy, która konfiguracja jest najlepszym rozwiązaniem?

Aby to zrobić, zdefiniujmy, jak możemy obliczyć wynik dla każdej konfiguracji. Ten wynik będzie reprezentował stopień, w jakim każde rozwiązanie osiąga dwa cele, o których wspomniałem wcześniej:

  • Maksymalizuj liczbę par przyjaciół, które dzielą ten sam samochód
  • Minimalizuj liczbę par wrogów, którzy dzielą ten sam samochód

Po prostu zdefiniujmy nasz wynik w następujący sposób:

(wynik danej konfiguracji) = (# pary przyjaciół dzielące ten sam samochód) – (# pary wrogów dzielące ten sam samochód)

Na przykład załóżmy, że Alice, Becky i Chris wszyscy wsiadają do Taxi #1. Z trzema bitami, może to być wyrażone jako 111.

W tym przypadku, jest tylko jedna para przyjaciół dzieląca ten sam samochód – Alice i Becky.

Jednakże, są dwie pary wrogów dzielące ten sam samochód – Alice i Chris, oraz Becky i Chris.

Więc, całkowity wynik tej konfiguracji to 1-2 = -1.

Rozwiązanie problemu

Z tym wszystkim, możemy w końcu przejść do rozwiązania tego problemu.

Zwykły komputer, aby znaleźć najlepszą konfigurację, będziesz musiał przejść przez wszystkie konfiguracje, aby zobaczyć, która z nich osiągnie najwyższy wynik.

Możesz więc pomyśleć o skonstruowaniu tabeli w ten sposób:

A | B | C | Wynik
0 | 0 | 0 | -1
0 | 0 | 1 | 1 <- jedno z najlepszych rozwiązań
0 | 1 | 0 | -1
0 | 1 | 1 | -.1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- drugie najlepsze rozwiązanie
1 | 1 | 1 | -1

Jak widać, są tu dwa poprawne rozwiązania – 001 i 110, oba osiągają wynik 1.

Ten problem jest dość prosty. Szybko staje się zbyt trudny do rozwiązania na zwykłym komputerze, gdy zwiększamy liczbę osób w tym problemie.

Widzieliśmy, że przy 3 osobach musimy przejść przez 8 możliwych konfiguracji.

A co jeśli są 4 osoby? W takim przypadku będziemy musieli przejść przez 2*2*2*2 = 16 konfiguracji.

Przy n osobach będziemy musieli przejść przez (2 do potęgi n) konfiguracji, aby znaleźć najlepsze rozwiązanie.

Więc, jeśli jest 100 osób, będziemy musieli przejść przez:

  • 2¹⁰⁰ ~= 10³⁰ = milion milionów milionów milionów milionów konfiguracji.

To jest po prostu niemożliwe do rozwiązania za pomocą zwykłego komputera.

Rozwiązanie tego problemu za pomocą komputera kwantowego

Jak byśmy podeszli do rozwiązania tego problemu za pomocą komputera kwantowego?

Aby się nad tym zastanowić, wróćmy do przypadku podziału 3 osób na dwie taksówki.

Jak widzieliśmy wcześniej, istniało 8 możliwych rozwiązań tego problemu:

A | B | C
0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1 | 0
1 | 1

Zwykłym komputerem, używając 3 bitów, byliśmy w stanie reprezentować tylko jedno z tych rozwiązań na raz – na przykład 001.

Jednakże w komputerze kwantowym, używając 3 qubitów, możemy reprezentować wszystkie 8 z tych rozwiązań w tym samym czasie.

Są dyskusje, co to dokładnie oznacza, ale oto sposób, w jaki ja o tym myślę.

Po pierwsze, zbadaj pierwszy qubit z tych 3 qubitów. Kiedy ustawisz go zarówno na 0 jak i na 1, to tak jakbyś stworzył dwa równoległe światy. W jednym z tych równoległych światów qubit jest ustawiony na 0, a w drugim na 1.

A co jeśli ustawisz drugi qubit również na 0 i 1? To tak jakby stworzyć 4 równoległe światy.

W pierwszym świecie dwa qubity są ustawione na 00. W drugim mają wartość 01. W trzecim mają wartość 10. W czwartym jest 11.

Podobnie, jeśli ustawisz wszystkie trzy qubity zarówno na 0 jak i na 1, stworzysz 8 równoległych światów – 000, 001, 010, 011, 100, 101, 110 i 111.

To dziwny sposób myślenia, ale jest to jeden z poprawnych sposobów interpretacji tego, jak qubity zachowują się w prawdziwym świecie.

Teraz, kiedy wykonujesz jakieś obliczenia na tych trzech qubitach, w rzeczywistości wykonujesz te same obliczenia we wszystkich tych 8 równoległych światach w tym samym czasie.

Więc zamiast przechodzić przez każde z tych potencjalnych rozwiązań po kolei, możemy obliczyć wyniki wszystkich rozwiązań w tym samym czasie.

W tym konkretnym przykładzie, w teorii, komputer kwantowy byłby w stanie znaleźć jedno z najlepszych rozwiązań w ciągu kilku milisekund. Ponownie, jest to 001 lub 110, jak widzieliśmy wcześniej:

A | B | C | Wynik
0 | 0 | 0 | -1
0 | 0 | 1 | 1 <- jedno z najlepszych rozwiązań
0 | 1 | 0 | -1
0 | 1 | 1 | -.1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- drugie najlepsze rozwiązanie
1 | 1 | 1 | -1

W rzeczywistości, aby rozwiązać ten problem, musiałbyś dać swojemu komputerowi kwantowemu dwie rzeczy:

  • Wszystkie potencjalne rozwiązania reprezentowane za pomocą qubitów
  • Funkcję, która zamienia każde potencjalne rozwiązanie na wynik. W tym przypadku jest to funkcja, która zlicza liczbę par przyjaciół i par wrogów dzielących ten sam samochód.

Dając te dwie rzeczy, komputer kwantowy wypluje jedno z najlepszych rozwiązań w ciągu kilku milisekund. W tym przypadku jest to 001 lub 110 z wynikiem 1.

Teraz, w teorii, komputer kwantowy jest w stanie znaleźć jedno z najlepszych rozwiązań za każdym razem, gdy jest uruchamiany.

Jednakże w rzeczywistości podczas uruchamiania komputera kwantowego występują błędy. Tak więc zamiast znaleźć najlepsze rozwiązanie, może on znaleźć drugie najlepsze rozwiązanie, trzecie najlepsze rozwiązanie i tak dalej.

Błędy te stają się coraz bardziej widoczne, gdy problem staje się coraz bardziej złożony.

W praktyce więc prawdopodobnie będziesz chciał uruchomić tę samą operację na komputerze kwantowym dziesiątki lub setki razy. Następnie wybierz najlepszy wynik z wielu wyników, które otrzymasz.

Jak skaluje się komputer kwantowy

Nawet z błędami, o których wspomniałem, komputer kwantowy nie ma tego samego problemu ze skalowaniem, na który cierpi zwykły komputer.

Gdy są 3 osoby, które musimy podzielić na dwa samochody, liczba operacji, które musimy wykonać na komputerze kwantowym, wynosi 1. Dzieje się tak, ponieważ komputer kwantowy oblicza wynik wszystkich konfiguracji w tym samym czasie.

Gdy są 4 osoby, liczba operacji nadal wynosi 1.

Gdy jest 100 osób, liczba operacji nadal wynosi 1. Za pomocą jednej operacji komputer kwantowy oblicza wyniki wszystkich 2¹⁰⁰ ~= 10³⁰ = jeden milion milionów milionów milionów milionów milionów konfiguracji w tym samym czasie.

Jak wspomniałem wcześniej, w praktyce prawdopodobnie najlepiej jest uruchomić komputer kwantowy dziesiątki lub setki razy i wybrać najlepszy wynik z wielu otrzymanych wyników.

Jednakże jest to wciąż znacznie lepsze niż uruchamianie tego samego problemu na zwykłym komputerze i konieczność powtarzania tego samego typu obliczeń milion milionów milionów milionów milionów razy.

Podsumowanie

Szczególne podziękowania dla wszystkich z D-Wave Systems za cierpliwe wytłumaczenie mi tego wszystkiego.

D-Wave niedawno uruchomiło środowisko chmury do interakcji z komputerem kwantowym.

Jeśli jesteś programistą i chciałbyś spróbować użyć komputera kwantowego, to jest to prawdopodobnie najprostszy sposób, aby to zrobić.

Nazywa się Leap i znajduje się pod adresem https://cloud.dwavesys.com/leap. Można go używać za darmo do rozwiązywania tysięcy problemów, a także mają łatwe do naśladowania samouczki dotyczące rozpoczęcia pracy z komputerami kwantowymi po zarejestrowaniu się.

Przypis:

  • W tym artykule użyłem terminu “zwykły komputer” w odniesieniu do komputera niekwantowego. Jednak w branży obliczeń kwantowych komputery niekwantowe są zwykle określane jako komputery klasyczne.

Leave a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *