Demistyfikacja zasad obliczeń kwantowych

Demistyfikacja zasad obliczeń kwantowych
„Myślę, że mogę śmiało powiedzieć, że nikt nie rozumie mechaniki kwantowej.” – Richard Feynman

Temat obliczeń kwantowych zawsze fascynował pisarzy i dziennikarzy zajmujących się technologią. Potencjał obliczeniowy i złożoność nadawały mu pewną mistyczną aurę. Zbyt często artykuły i infografiki szczegółowo opisują różne perspektywy tej branży, ledwo poruszając temat jej praktycznego zastosowania: może to wprowadzić w błąd mniej uważnego czytelnika.

Artykuły popularnonaukowe pomijają opisy układów kwantowych i zawierają stwierdzenia takie jak:

Zwykły bit może mieć wartość 1 lub 0, ale kubit może mieć jednocześnie wartość 1 i 0.

Jeśli będziesz miał dużo szczęścia (czego nie jestem pewien), dowiesz się, że:

Kubit znajduje się w superpozycji pomiędzy „1” i „0”.

Żadne z tych wyjaśnień nie wydaje się przekonujące, ponieważ staramy się sformułować zjawisko mechaniki kwantowej, korzystając z języka opracowanego w bardzo tradycyjnym świecie. Aby jasno wyjaśnić zasady obliczeń kwantowych, konieczne jest użycie innego języka - matematycznego. 

W tym samouczku omówię narzędzia matematyczne potrzebne do modelowania i zrozumienia systemów obliczeń kwantowych, a także sposoby zilustrowania i zastosowania logiki obliczeń kwantowych. Ponadto podam przykład algorytmu kwantowego i powiem, jaka jest jego przewaga nad tradycyjnym komputerem.

Zrobię co w mojej mocy, aby wyjaśnić to wszystko jasnym językiem, ale nadal mam nadzieję, że czytelnicy tego artykułu mają podstawową wiedzę na temat algebry liniowej i logiki cyfrowej (algebra liniowa jest omówiona tutaj, o logice cyfrowej - tutaj). 

Najpierw przyjrzyjmy się zasadom logiki cyfrowej. Opiera się na wykorzystaniu obwodów elektrycznych do przeprowadzenia obliczeń. Aby nasz opis był bardziej abstrakcyjny, uprośćmy stan przewodu elektrycznego do „1” lub „0”, co będzie odpowiadać stanom „włączony” lub „wyłączony”. Układając tranzystory w określonej kolejności, stworzymy tzw. elementy logiczne, które przyjmują jedną lub więcej wartości sygnału wejściowego i przekształcają je na sygnał wyjściowy w oparciu o pewne zasady logiki Boole'a.

Demistyfikacja zasad obliczeń kwantowych

Wspólne bramki logiczne i ich tablice stanów

W oparciu o łańcuchy takich podstawowych elementów można tworzyć elementy bardziej złożone, a w oparciu o łańcuchy elementów bardziej złożonych możemy docelowo, z dużym stopniem abstrakcji, spodziewać się otrzymania analogu procesora centralnego.

Jak wspomniałem wcześniej, potrzebujemy sposobu na matematyczne przedstawienie logiki cyfrowej. Najpierw przedstawimy tradycyjną logikę matematyczną. Stosując algebrę liniową, klasyczne bity o wartościach „1” i „0” można przedstawić jako dwa wektory kolumnowe:
Demistyfikacja zasad obliczeń kwantowych
gdzie znajdują się liczby po lewej stronie Notacja Diraca wektor. Reprezentując w ten sposób nasze bity, możemy modelować operacje logiczne na bitach za pomocą transformacji wektorowych. Uwaga: chociaż użycie dwóch bitów w bramkach logicznych umożliwia wykonanie wielu operacji (AND, NOT, XOR itp.), to przy użyciu jednego bitu można wykonać tylko cztery operacje: konwersję tożsamości, negację, obliczenie stałej „0” i obliczenie stałej „1”. Przy konwersji tożsamości bit pozostaje niezmieniony, przy negacji wartość bitu zmienia się na przeciwną (z „0” na „1” lub z „1” na „0”) i obliczenie stałej „1” lub „0” ustawia bit na „1” lub „0” niezależnie od jego poprzedniej wartości.
Demistyfikacja zasad obliczeń kwantowych

tożsamość Transformacja tożsamości
Negacja Odmowa
Stała-0 Obliczanie stałej „0”
Stała-1 Obliczanie stałej „1”

W oparciu o zaproponowaną przez nas nową reprezentację bitu dość łatwo jest wykonywać operacje na odpowiednim bicie za pomocą transformacji wektorowej:

Demistyfikacja zasad obliczeń kwantowych

Zanim przejdziemy dalej, spójrzmy na koncepcję obliczenia odwracalne, co oznacza po prostu, że aby zapewnić odwracalność operacji lub elementu logicznego, konieczne jest ustalenie listy wartości sygnałów wejściowych na podstawie sygnałów wyjściowych i nazw zastosowanych operacji. Możemy zatem stwierdzić, że transformacja i negacja tożsamości są odwracalne, ale operacje obliczania stałych „1” i „0” nie są. Dzięki jedność mechaniki kwantowej, komputery kwantowe wykorzystują wyłącznie operacje odwracalne, więc na tym się skupimy. Następnie przekształcamy elementy nieodwracalne w elementy odwracalne, aby umożliwić ich wykorzystanie przez komputer kwantowy.

Z produkt tensorowy poszczególne bity mogą być reprezentowane przez wiele bitów:
Demistyfikacja zasad obliczeń kwantowych
Teraz, gdy mamy już prawie wszystkie niezbędne pojęcia matematyczne, przejdźmy do naszej pierwszej kwantowej bramki logicznej. To jest operator NIElub kontrolowane nie (NOT), co ma ogromne znaczenie w obliczeniach odwracalnych i kwantowych. Element CNOT dotyczy dwóch bitów i zwraca dwa bity. Pierwszy bit jest oznaczony jako bit „kontrolny”, a drugi jako bit „kontrolny”. Jeśli bit kontrolny jest ustawiony na „1”, bit kontrolny zmienia swoją wartość; Jeśli bit kontrolny jest ustawiony na „0”, bit kontrolny nie ulega zmianie.
Demistyfikacja zasad obliczeń kwantowych
Operator ten można przedstawić jako następujący wektor transformacji:
Demistyfikacja zasad obliczeń kwantowych
Aby zademonstrować wszystko, co omówiliśmy do tej pory, pokażę, jak używać elementu CNOT na wielu bitach:
Demistyfikacja zasad obliczeń kwantowych
Podsumowując to, co już zostało powiedziane: w pierwszym przykładzie rozkładamy |10⟩ na części jego iloczynu tensorowego i za pomocą macierzy CNOT otrzymujemy nowy odpowiedni stan iloczynu; następnie rozkładamy to na |11⟩ zgodnie z podaną wcześniej tabelą wartości CNOT.

Przypomnieliśmy sobie zatem wszystkie reguły matematyczne, które pomogą nam zrozumieć tradycyjne obliczenia i zwykłe bity, i w końcu możemy przejść do nowoczesnych obliczeń kwantowych i kubitów.

Jeśli doczytałeś aż dotąd, mam dla ciebie dobrą wiadomość: kubity można łatwo wyrazić matematycznie. Ogólnie rzecz biorąc, jeśli klasyczny bit (cbit) można ustawić na |1⟩ lub |0⟩, kubit znajduje się po prostu w superpozycji i przed pomiarem może mieć zarówno |0⟩, jak i |1⟩. Po pomiarze zapada się w |0⟩ lub |1⟩. Innymi słowy, kubit można przedstawić jako liniową kombinację |0⟩ i |1⟩ zgodnie z poniższym wzorem:
Demistyfikacja zasad obliczeń kwantowych
gdzie a₀ и a₁ reprezentują odpowiednio amplitudy |0⟩ i |1⟩. Można je traktować jako „prawdopodobieństwa kwantowe”, które reprezentują prawdopodobieństwo zapadnięcia się kubitu w jeden ze stanów po jego zmierzeniu, ponieważ w mechanice kwantowej obiekt w superpozycji zapada się w jeden ze stanów po unieruchomieniu. Rozwińmy to wyrażenie i uzyskajmy następujące informacje:
Demistyfikacja zasad obliczeń kwantowych
Aby uprościć moje wyjaśnienie, w tym artykule użyję tej reprezentacji.

Dla tego kubitu szansa na zwinięcie się do wartości a₀ po pomiarze jest równe |a₀|² i szansa na spadek do wartości a₁ jest równe |a₁|². Na przykład dla następującego kubitu:
Demistyfikacja zasad obliczeń kwantowych
szansa zapadnięcia się w „1” jest równa |1/ √2|², czyli ½, czyli 50/50.

Ponieważ w systemie klasycznym wszystkie prawdopodobieństwa muszą sumować się do jedności (dla pełnego rozkładu prawdopodobieństwa), możemy stwierdzić, że kwadraty wartości bezwzględnych amplitud |0⟩ i |1⟩ muszą sumować się do jedności. Na podstawie tych informacji możemy sformułować następujące równanie:
Demistyfikacja zasad obliczeń kwantowych
Jeśli znasz trygonometrię, zauważysz, że równanie to odpowiada twierdzeniu Pitagorasa (a²+b²=c²), czyli możemy graficznie przedstawić możliwe stany kubitu jako punkty na okręgu jednostkowym, a mianowicie:
Demistyfikacja zasad obliczeń kwantowych
Operatory i elementy logiczne stosuje się do kubitów w taki sam sposób, jak w przypadku bitów klasycznych – w oparciu o transformację macierzową. Wszystkie operatory macierzy odwracalnej, które do tej pory przypomnieliśmy, w szczególności CNOT, można wykorzystać do pracy z kubitami. Takie operatory macierzowe umożliwiają wykorzystanie każdej z amplitud kubitu bez jego pomiaru i zwijania. Podam przykład użycia operatora negacji na kubicie:
Demistyfikacja zasad obliczeń kwantowych
Zanim przejdziemy dalej, przypomnę, że wartości amplitudy a₀ i a₁ są w rzeczywistości Liczby zespolone, więc stan kubitu można najdokładniej odwzorować na trójwymiarowej sferze jednostkowej, zwanej również Kula pcheł:
Demistyfikacja zasad obliczeń kwantowych
Aby jednak uprościć wyjaśnienie, ograniczymy się tutaj do liczb rzeczywistych.

Wydaje się, że czas omówić pewne elementy logiczne, które mają sens wyłącznie w kontekście obliczeń kwantowych.

Jednym z najważniejszych operatorów jest „element Hadamarda”: zajmuje trochę czasu w stanie „0” lub „1” i umieszcza go w odpowiedniej superpozycji z 50% prawdopodobieństwem zapadnięcia się w „1” lub „0” po pomiarze. 
Demistyfikacja zasad obliczeń kwantowych
Zauważ, że w prawym dolnym rogu operatora Hadamarda znajduje się liczba ujemna. Wynika to z faktu, że wynik zastosowania operatora zależy od wartości sygnału wejściowego: - |1⟩ lub |0⟩, dlatego obliczenia są odwracalne.

Kolejną ważną cechą elementu Hadamarda jest jego odwracalność, co oznacza, że ​​może on przyjąć kubit w odpowiedniej superpozycji i przekształcić go w |0⟩ lub |1⟩.
Demistyfikacja zasad obliczeń kwantowych
Jest to bardzo ważne, ponieważ daje nam możliwość przejścia ze stanu kwantowego bez określania stanu kubitu - a co za tym idzie, bez jego zapadania się. W ten sposób możemy konstruować obliczenia kwantowe w oparciu o zasadę deterministyczną, a nie probabilistyczną.

Operatory kwantowe zawierające tylko liczby rzeczywiste są ich własnym przeciwieństwem, dlatego wynik zastosowania operatora do kubitu możemy przedstawić jako transformację wewnątrz okręgu jednostkowego w postaci maszyny stanów:
Demistyfikacja zasad obliczeń kwantowych
Tym samym kubit, którego stan przedstawiono na powyższym schemacie, po zastosowaniu operacji Hadamarda zostaje przekształcony w stan wskazany odpowiednią strzałką. Podobnie możemy skonstruować inną maszynę stanów, która zilustruje transformację kubitu za pomocą operatora negacji, jak pokazano powyżej (znanego również jako operator negacji Pauliego lub inwersja bitu), jak pokazano poniżej:
Demistyfikacja zasad obliczeń kwantowych
Aby wykonać bardziej złożone operacje na naszym kubicie, możemy połączyć wiele operatorów lub zastosować elementy wielokrotnie. Przykład transformacji szeregowej na podstawie reprezentacje obwodów kwantowych wygląda tak:
Demistyfikacja zasad obliczeń kwantowych
Oznacza to, że jeśli zaczniemy od bitu |0⟩, zastosujemy inwersję bitu, następnie operację Hadamarda, potem kolejną inwersję bitu i ponownie operację Hadamarda, po której nastąpi inwersja bitu końcowego, otrzymamy wektor podany przez on prawa strona łańcucha. Nakładając na siebie różne maszyny stanu, możemy zacząć od |0⟩ i prześledzić kolorowe strzałki odpowiadające każdej transformacji, aby zrozumieć, jak to wszystko działa.
Demistyfikacja zasad obliczeń kwantowych
Skoro doszliśmy tak daleko, czas rozważyć jeden z typów algorytmów kwantowych, a mianowicie - Algorytm Deutscha-Jozsyi pokazać jego przewagę nad klasycznym komputerem. Warto zauważyć, że algorytm Deutscha-Jozsy jest całkowicie deterministyczny, to znaczy zwraca poprawną odpowiedź w 100% przypadków (w przeciwieństwie do wielu innych algorytmów kwantowych opartych na probabilistycznej definicji kubitów).

Wyobraźmy sobie, że masz czarną skrzynkę zawierającą funkcję/operator na jednym bicie (pamiętaj – na jednym bicie można wykonać tylko cztery operacje: konwersję tożsamości, negację, ocenę stałej „0” i ocenę stałej „1” „). Jaka dokładnie funkcja jest wykonywana w pudełku? Nie wiesz który, ale możesz przejrzeć dowolną liczbę wariantów wartości wejściowych i ocenić wyniki wyjściowe.

Demistyfikacja zasad obliczeń kwantowych
Ile wejść i wyjść musiałbyś przejść przez czarną skrzynkę, aby dowiedzieć się, która funkcja jest używana? Pomyśl o tym przez chwilę.

W przypadku klasycznego komputera będziesz musiał wykonać 2 zapytania, aby określić, której funkcji chcesz użyć. Na przykład, jeśli wejście „1” daje na wyjściu „0”, staje się jasne, że używana jest albo funkcja obliczania stałej „0”, albo funkcja negacji, po czym będziesz musiał zmienić wartość sygnału wejściowego na „0” i zobacz co się stanie na wyjściu.

W przypadku komputera kwantowego wymagane będą również dwa zapytania, ponieważ nadal potrzebne będą dwie różne wartości wyjściowe, aby precyzyjnie zdefiniować funkcję, która ma zostać zastosowana do wartości wejściowej. Jeśli jednak nieco przeformułujesz pytanie, okaże się, że komputery kwantowe nadal mają poważną przewagę: jeśli chcesz wiedzieć, czy używana funkcja jest stała czy zmienna, komputery kwantowe będą miały tę przewagę.

Funkcja zastosowana w polu jest zmienna, jeśli różne wartości sygnału wejściowego dają różne wyniki na wyjściu (na przykład konwersja tożsamości i inwersja bitu) oraz jeśli wartość wyjściowa nie zmienia się niezależnie od wartości wejściowej, to funkcja jest stała (na przykład obliczenie stałej „1” lub obliczenie stałej „0”).

Korzystając z algorytmu kwantowego, możesz określić, czy funkcja w czarnej skrzynce jest stała, czy zmienna, na podstawie tylko jednego zapytania. Zanim jednak przyjrzymy się szczegółowo, jak to zrobić, musimy znaleźć sposób na uporządkowanie każdej z tych funkcji w komputerze kwantowym. Ponieważ każdy operator kwantowy musi być odwracalny, od razu stajemy przed problemem: funkcje obliczające stałe „1” i „0” takie nie są.

Powszechnym rozwiązaniem stosowanym w obliczeniach kwantowych jest dodanie dodatkowego kubitu wyjściowego, który zwraca dowolną wartość wejściową otrzymaną przez funkcję. 

Do: Po:
Demistyfikacja zasad obliczeń kwantowych Demistyfikacja zasad obliczeń kwantowych

W ten sposób możemy wyznaczyć wartości wejściowe wyłącznie na podstawie wartości wyjściowej, a funkcja staje się odwracalna. Struktura obwodów kwantowych stwarza potrzebę dodatkowego bitu wejściowego. Na potrzeby opracowania odpowiednich operatorów założymy, że dodatkowy kubit wejściowy jest ustawiony na |0⟩.

Korzystając z tej samej reprezentacji obwodu kwantowego, której używaliśmy wcześniej, zobaczmy, jak każdy z czterech elementów (transformacja tożsamości, negacja, ocena stałej „0” i ocena stałej „1”) może zostać zaimplementowany za pomocą operatorów kwantowych. 

Na przykład w ten sposób można zaimplementować funkcję obliczania stałej „0”:

Obliczanie stałej „0”:
Demistyfikacja zasad obliczeń kwantowych
Tutaj w ogóle nie potrzebujemy operatorów. Pierwszy kubit wejściowy (który przyjęliśmy jako |0⟩) powraca z tą samą wartością, a druga wartość wejściowa zwraca się sama – jak zwykle.

W przypadku funkcji obliczania stałej „1” sytuacja jest nieco inna:

Obliczanie stałej „1”:
Demistyfikacja zasad obliczeń kwantowych
Ponieważ założyliśmy, że pierwszy kubit wejściowy jest zawsze ustawiony na |0⟩, efektem zastosowania operatora inwersji bitu jest to, że na wyjściu zawsze pojawia się jedynka. I jak zwykle, drugi kubit podaje na wyjściu swoją własną wartość.

Podczas mapowania operatora transformacji tożsamości zadanie zaczyna się komplikować. Oto jak to zrobić:

Identyczna transformacja:
Demistyfikacja zasad obliczeń kwantowych
Zastosowany tutaj symbol oznacza element CNOT: górna linia oznacza bit kontrolny, a dolna linia oznacza bit kontrolny. Przypomnę, że przy zastosowaniu operatora CNOT wartość bitu kontrolnego zmienia się, jeśli bit kontrolny jest równy |1⟩, ale pozostaje niezmieniona, jeśli bit kontrolny jest równy |0⟩. Ponieważ założyliśmy, że wartość górnej linii jest zawsze równa |0⟩, jej wartość jest zawsze przypisana do dolnej linii.

W podobny sposób postępujemy z operatorem negacji:

Negacja:
Demistyfikacja zasad obliczeń kwantowych
Po prostu odwracamy bit na końcu linii wyjściowej.

Teraz, gdy mamy już za sobą to wstępne zrozumienie, przyjrzyjmy się konkretnym zaletom komputera kwantowego w porównaniu z komputerem tradycyjnym, jeśli chodzi o określanie stałości lub zmienności funkcji ukrytej w czarnej skrzynce za pomocą tylko jednego zapytania.

Aby rozwiązać ten problem za pomocą obliczeń kwantowych w jednym żądaniu, konieczne jest umieszczenie kubitów wejściowych w superpozycji przed przekazaniem ich do funkcji, jak pokazano poniżej:
Demistyfikacja zasad obliczeń kwantowych
Element Hadamarda jest ponownie stosowany do wyniku funkcji, aby wyłamać kubity z superpozycji i nadać algorytmowi determinizm. Uruchamiamy system w stanie |00⟩ i z powodów, które wkrótce wyjaśnię, otrzymamy wynik |11⟩, jeśli zastosowana funkcja jest stała. Jeżeli funkcja wewnątrz czarnej skrzynki jest zmienna, to po pomiarze system zwraca wynik |01⟩.

Aby zrozumieć resztę artykułu, spójrzmy na ilustrację, którą pokazałem wcześniej:
Demistyfikacja zasad obliczeń kwantowych
Używając operatora inwersji bitów, a następnie stosując element Hadamarda do obu wartości wejściowych równych |0⟩, zapewniamy, że zostaną one przetłumaczone na tę samą superpozycję |0⟩ i |1⟩, jak następuje:
Demistyfikacja zasad obliczeń kwantowych
Na przykładzie przekazania tej wartości do funkcji czarnej skrzynki łatwo jest wykazać, że obie funkcje wartości stałych dają wynik |11⟩.

Obliczanie stałej „0”:
Demistyfikacja zasad obliczeń kwantowych
Podobnie widzimy, że funkcja obliczania stałej „1” daje również wynik |11⟩, czyli:

Obliczanie stałej „1”:
Demistyfikacja zasad obliczeń kwantowych
Zauważ, że wynikiem będzie |1⟩, ponieważ -1² = 1.

Na tej samej zasadzie możemy udowodnić, że korzystając z obu funkcji zmiennych, na wyjściu zawsze otrzymamy |01⟩ (pod warunkiem, że zastosujemy tę samą metodę), choć wszystko jest nieco bardziej skomplikowane.

Identyczna transformacja:
Demistyfikacja zasad obliczeń kwantowych
Ponieważ CNOT jest operatorem dwóch kubitów, nie można go przedstawić jako prostej maszyny stanów i dlatego konieczne jest zdefiniowanie dwóch sygnałów wyjściowych w oparciu o iloczyn tensorowy obu wejściowych kubitów i mnożenie przez macierz CNOT, jak opisano wcześniej:
Demistyfikacja zasad obliczeń kwantowych
Metodą tą możemy również potwierdzić, że wartość wyjściowa |01⟩ zostanie odebrana, jeśli funkcja negacji jest ukryta w czarnej skrzynce:

Negacja:
Demistyfikacja zasad obliczeń kwantowych
Tym samym właśnie zademonstrowaliśmy sytuację, w której komputer kwantowy jest wyraźnie wydajniejszy od komputera konwencjonalnego.

Co dalej?

Sugeruję, żebyśmy na tym zakończyli. Wykonaliśmy już świetną robotę. Jeśli zrozumiałeś wszystko, co opisałem, myślę, że teraz dobrze rozumiesz podstawy obliczeń kwantowych i logiki kwantowej oraz to, dlaczego algorytmy kwantowe mogą być w pewnych sytuacjach bardziej wydajne niż tradycyjne obliczenia.

Mojego opisu trudno nazwać pełnoprawnym przewodnikiem po obliczeniach kwantowych i algorytmach - jest to raczej krótkie wprowadzenie do matematyki i notacji, mające na celu rozwianie wyobrażeń czytelników na temat narzucanych przez źródła popularnonaukowe (poważnie, wielu naprawdę nie jest w stanie tego zrozumieć sytuacja!). Nie miałem czasu poruszyć wielu ważnych tematów, jak np kwantowe splątanie kubitów, złożoność wartości amplitud |0⟩ i |1⟩ oraz funkcjonowanie różnych elementów logiki kwantowej podczas transformacji przez kulę Blocha.

Jeżeli chcesz usystematyzować i ustrukturyzować swoją wiedzę na temat komputerów kwantowych, silnie Polecam przeczytać „Wprowadzenie do algorytmów kwantowych” Emma Strubel: pomimo mnóstwa wzorów matematycznych, w tej książce algorytmy kwantowe są omawiane znacznie bardziej szczegółowo.

Źródło: www.habr.com

Dodaj komentarz