9-kubitowy kod Shora
Teraz przejdziemy do 9-kubitowego kodu Shora, który jest kwantowym kodem korekcji błędów uzyskanym przez połączenie dwóch kodów omawianych w poprzedniej sekcji: 3-bitowego kodu repetycyjnego dla qubitów, umożliwiającego korektę pojedynczego błędu bitowego, oraz zmodyfikowanej wersji tego kodu, umożliwiającej korektę pojedynczego błędu fazowego.
Opis kodu
9-kubitowy kod Shora to kod uzyskany przez konkatenację dwóch kodów z poprzedniej sekcji. Oznacza to, że najpierw stosujemy jedno kodowanie, które koduje jeden qubit w trzech, a następnie stosujemy drugie kodowanie do każdego z trzech qubitów użytych w pierwszym kodowaniu, co daje łącznie dziewięć qubitów.
Mówiąc dokładniej, choć w tym konkretnym przypadku moglibyśmy zastosować oba kody w dowolnej kolejności, wybierzemy następujące podejście: najpierw zastosujemy zmodyfikowaną wersję 3-bitowego kodu repetycyjnego (wykrywającego błędy fazowe), a następnie każdy z trzech wynikowych qubitów zakodujemy niezależnie przy użyciu oryginalnego 3-bitowego kodu repetycyjnego (wykrywającego błędy bitowe). Poniżej przedstawiono schemat obwodu tego kodowania.
Jak sugeruje rysunek, będziemy myśleć o dziewięciu qubitach kodu Shora jako o trzech blokach po trzy qubity, gdzie każdy blok pochodzi z drugiego etapu kodowania (czyli zwykłego 3-bitowego kodu repetycyjnego). Zwykły 3-bitowy kod repetycyjny, stosowany tutaj trzykrotnie niezależnie, nazywany jest kodem wewnętrznym, natomiast kod zewnętrzny to kod użyty w pierwszym etapie kodowania — zmodyfikowana wersja 3-bitowego kodu repetycyjnego wykrywająca błędy fazowe.
Kod możemy również opisać przez podanie sposobu kodowania dwóch standardowych stanów bazowych naszego pierwotnego qubitu.
Znając te zależności, możemy z zasady liniowości wyznaczyć sposób kodowania dowolnego wektora stanu qubitu.
Korekcja błędów bitowych i fazowych
Błędy i bramki CNOT
Aby przeanalizować wpływ błędów i na kodowania qubitów — zarówno w 9-kubitowym kodzie Shora, jak i w innych kodach — warto zauważyć kilka prostych zależności między tymi błędami a bramkami CNOT. Gdy zaczynamy analizować 9-kubitowy kod Shora, jest to dobry moment, by to zrobić.
Poniższe schematy obwodów ilustrują trzy podstawowe zależności między bramkami a bramkami CNOT. Mianowicie: zastosowanie bramki do qubitu docelowego przed CNOT jest równoważne odwróceniu kolejności i wykonaniu najpierw CNOT, natomiast zastosowanie bramki do qubitu kontrolnego przed CNOT jest równoważne zastosowaniu bramek do obu qubitów po CNOT. Wreszcie, zastosowanie bramek do obu qubitów przed CNOT jest równoważne wykonaniu najpierw CNOT, a następnie zastosowaniu bramki do qubitu kontrolnego. Zależności te można zweryfikować przez odpowiednie mnożenie macierzy lub obliczanie wpływu obwodów na stany standardowej bazy.
Analogiczna sytuacja zachodzi dla bramek , z tą różnicą, że role qubitu kontrolnego i docelowego zamieniają się. W szczególno ści mamy trzy zależności przedstawione na poniższych obwodach kwantowych.
Korekcja błędów bitowych
Teraz rozważymy wykrywanie i korygowanie błędów przy użyciu 9-kubitowego kodu Shora, zaczynając od błędów bitowych — które dalej będziemy nazywać błędami dla zwięzłości.
Aby wykryć i skorygować błędy , możemy po prostu traktować każdy z trzech bloków w kodowaniu oddzielnie. Każdy blok jest kodowaniem qubitu przy użyciu 3-bitowego kodu repetycyjnego, który chroni przed błędami — wykonując zatem pomiary syndromu i korekty błędów opisane wcześniej dla każdego bloku osobno, możemy wykryć i skorygować co najwyżej jeden błąd na blok. W szczególności, jeśli na dziewięciu qubitach kodowania wystąpi co najwyżej jeden błąd , zostanie on wykryty i skorygowany tą procedurą.
Krótko mówiąc, korekcja błędów bitowych jest prosta w tym kodzie, ponieważ kod wewnętrzny koryguje właśnie błędy bitowe.
Korekcja błędów fazowych
Teraz rozważymy błędy fazowe, czyli błędy w skrócie. Tym razem nie jest od razu jasne, co należy zrobić, ponieważ to kod zewnętrzny wykrywa błędy , a kod wewnętrzny zdaje się być niejako „na drodze", co nieco utrudnia wykrywanie i korekcję tych błędów.
Załóżmy, że na jednym z 9 qubitów kodu Shora wystąpi błąd , tak jak wskazano na tym schemacie.
Już wiemy, co się dzieje, gdy błąd wystąpi przy użyciu 3-bitowego kodu repetycyjnego — jest to równoważne błędowi występującemu przed kodowaniem. W kontekście 9-kubitowego kodu Shora oznacza to, że błąd na którymkolwiek z trzech qubitów wewnątrz bloku zawsze ma ten sam efekt, równoważny błędowi na odpowiednim qubicie przed zastosowaniem kodu wewnętrznego.
Na przykład powyższy schemat obwodu jest równoważny poniższemu schematowi. Można to uzasadnić, korzystając ze zależności między a bramkami CNOT opisanych powyżej, lub po prostu obliczając wpływ obwodów na dowolny stan qubitu
Sugeruje to jedną możliwość wykrywania i korekcji błędów : dekodujemy kod wewnętrzny, pozostawiając trzy qubity użyte do zewnętrznego kodowania wraz z sześcioma zainicjalizowanymi qubitami roboczymi. Następnie sprawdzamy te trzy qubity kodu zewnętrznego pod kątem błędów , po czym ponownie kodujemy przy użyciu kodu wewnętrznego, wracając do 9-kubitowego kodowania kodu Shora. Jeśli wykryjemy błąd , możemy go skorygować przed ponownym kodowaniem kodem wewnętrznym lub po nim, stosując bramkę do dowolnego qubitu w danym bloku.
Poniżej przedstawiono schemat obwodu zawierający obwód kodowania i opisany wyżej błąd wraz z krokami właśnie opisanymi (bez samego kroku korekcji).
W tym konkretnym przykładzie pomiar syndromu wynosi co lokalizuje błąd w jednym z qubitów środkowego bloku.
Jedną z zalet korygowania błędów po ponownym kodowaniu, zamiast przed nim, jest uproszczenie powyższego obwodu. Poniższy obwód jest równoważny, ale wymaga o cztery bramki CNOT mniej.
Ponownie: syndrom nie wskazuje, który qubit był dotknięty błędem , lecz który blok doświadczył błędu — efekt jest taki sam niezależnie od tego, który qubit wewnątrz bloku był nim dotknięty. Błąd możemy następnie skorygować, stosując bramkę do dowolnego z trzech qubitów dotkniętego bloku.
Warto przy okazji zauważyć, że mamy tu przykład degeneracji w kwantowym kodzie korekcji błędów — jesteśmy w stanie skorygować pewne błędy (w tym przypadku błędy ) bez możliwości ich jednoznacznej identyfikacji.
Jednoczesne błędy bitowe i fazowe
Wiemy już, jak wykrywać i korygować błędy i przy użyciu 9-kubitowego kodu Shora, a w szczególności jak wykrywać i korygować co najwyżej jeden błąd lub co najwyżej jeden błąd . Zastanówmy się teraz, co się dzieje, gdy wystąpią jednocześnie błąd bitowy i błąd fazowy, możliwie na tym samym qubicie. Jak się okazuje, w tej sytuacji nie trzeba robić nic innego niż to, co już zostało omówione — kod jest w stanie wykryć i skorygować co najwyżej jeden błąd i jeden błąd jednocześnie, bez żadnych modyfikacji.
Mówiąc dokładniej, błędy są wykrywane przez zastosowanie pomiaru syndromu zwykłego 3-bitowego kodu repetycyjnego, wykonanego oddzielnie na każdym z trzech bloków trzech qubitów; błędy są natomiast wykrywane przez procedurę opisaną powyżej, równoważną dekodowaniu kodu wewnętrznego, wykonaniu pomiaru syndromu zmodyfikowanego 3-bitowego kodu repetycyjnego dla błędów fazowych, a następnie ponownemu kodowaniu. Te dwa kroki wykrywania błędów — a także odpowiednie korekcje — można wykonać całkowicie niezależnie od siebie, a kolejność, w jakiej się je wykonuje, nie ma znaczenia.
Aby zobaczyć, dlaczego tak jest, rozważmy przykład przedstawiony na poniższym schemacie obwodu, gdzie zarówno błąd , jak i dotknęły dolny qubit środkowego bloku.
Zauważmy najpierw, że kolejność błędów nie ma znaczenia w tym sensie, że odwrócenie pozycji błędów i daje równoważny obwód. Żeby być precyzyjnym: i nie komutują, lecz antykomutują:
Wynika z tego, że poniższy obwód jest równoważny powyższemu z dokładnością do globalnego czynnika fazowego
Możemy teraz przesunąć błąd tak jak poprzednio, otrzymując kolejny równoważny obwód.
W tym momencie jest już jasne, że jeśli najpierw wykonamy procedurę wykrywania i korekcji błędów , błąd zostanie skorygowany, po czym można wykonać procedurę wykrywania i korekcji błędów , aby wyeliminować błąd jak poprzednio.
Można też najpierw wykonać procedurę wykrywania i korekcji błędów . To, że procedura ta działa zgodnie z oczekiwaniami nawet w obecności jednego lub więcej błędów , wynika z faktu, że bramki na dowolnym z dziewięciu qubitów używanych do kodowania komutują ze wszystkimi bramkami w naszym uproszczonym obwodzie pomiaru syndromu dla błędów . Zatem pomiar syndromu nadal poprawnie wskaże, który blok był dotknięty błędem . To, że błąd na dowolnym bloku jest korygowany przez zastosowanie bramki do dowolnego qubitu tego bloku, nawet jeśli wystąpił też błąd , wynika z tego samego argumentu dotyczącego kolejności bramek i , który daje równoważne obwody z dokładnością do globalnej fazy.
Wynika z tego, że 9-kubitowy kod Shora może skorygować błąd , błąd lub oba jednocześnie na dowolnym z dziewięciu qubitów tego kodu. Co więcej, możemy skorygować więcej błędów, w tym wiele błędów (o ile przypadają na różne bloki) lub wiele błędów (o ile co najwyżej jeden blok doświadcza nieparzystej ich liczby) — jednak do celów tej lekcji najważniejsze jest to, że możemy skorygować błąd , błąd lub oba na dowolnym jednym qubicie.
Redukcja błędów przy błędach losowych
Zanim przejdziemy do ostatniej sekcji lekcji dotyczącej dowolnych błędów kwantowych, przyjrzyjmy się krótko wydajności 9-kubitowego kodu Shora, gdy błędy reprezentowane przez macierze Pauliego występują losowo na qubitach.
Żeby być bardziej konkretnym, rozważmy prosty model szumów, w którym błędy występują niezależnie na qubitach — każdy qubit doświadcza błędu z prawdopodobieństwem , bez korelacji między błędami na różnych qubitach — podobnie jak binarny kanał symetryczny dla klasycznych bitów. Moglibyśmy przypisać różne prawdopodobieństwa dla błędów i , ale żeby uprościć analizę do maksimum, rozważymy najgorszy przypadek dla 9-kubitowego kodu Shora, czyli taki, w którym na każdym dotkniętym qubicie wystąpuje błąd . Błąd , nawiasem mówiąc, jest równoważny (z dokładnością do nieistotnego globalnego czynnika fazowego) jednoczesnemu wystąpieniu błędów i na tym samym qubicie, ponieważ To wyjaśnia, dlaczego pozornie ignorowaliśmy do tej pory błędy .
Przyjmijmy teraz, że to qubit w pewnym konkretnym stanie, który chcemy chronić przed błędami, i rozważmy możliwość użycia 9-kubitowego kodu Shora. Nasuwa się naturalne pytanie: „Czy powinniśmy go użyć?"
Odpowiedź brzmi: niekoniecznie „tak". Jeśli szumów jest zbyt dużo — w tym kontekście oznacza to, że jest zbyt duże — użycie kodu Shora może w rzeczywistości pogorszyć sytuację, tak jak 3-bitowy kod repetycyjny jest gorszy niż brak kodu, gdy jest większe od jednej drugiej. Ale jeśli jest wystarczająco małe, odpowiedź brzmi „tak" — powinniśmy użyć kodu, bo zmniejsza on prawdopodobieństwo uszkodzenia zakodowanego stanu. Zobaczmy, dlaczego tak jest i co oznacza, że jest zbyt duże lub wystarczająco małe dla tego kodu.
Kod Shora koryguje dowolny błąd Pauliego na pojedynczym qubicie, w tym oczywiście błąd , ale nie koryguje poprawnie dwóch lub więcej błędów . Jasne jest, że zakładamy tu korekcje błędów i opisane wcześniej w tej sekcji. (Oczywiście, gdybyśmy z góry wiedzieli, że musimy się martwić tylko błędami , naturalnie wybralibyśmy inne korekcje — ale to oszukiwałoby model szumów, a zawsze można by zmienić model, wybierając inne błędy Pauliego, by ta nowa strategia korekcji zawiodła, gdy dwa lub więcej qubitów zostanie dotkniętych błędami.)
A zatem kod chroni tak długo, jak co najwyżej jeden z dziewięciu qubitów jest dotknięty błędem, co zachodzi z prawdopodobieństwem
W przeciwnym razie, z prawdopodobieństwem
kod nie chroni
Konkretnie oznacza to, że — z dokładnością do globalnej fazy — na nasz qubit (jako logiczny qubit) zostanie zastosowana niejednostkowa operacja Pauliego. To znaczy: jeśli błędy i są wykrywane i korygowane dla kodu Shora zgodnie z opisem wcześniej w lekcji, zostaniemy z kodowaniem stanu równoważnego, z dokładnością do globalnej fazy, kodowaniu niejednostkowej operacji Pauliego zastosowanej do pierwotnego stanu Zwięźlej można powiedzieć, że wystąpił logiczny błąd. Może to, ale nie musi, wpłynąć na pierwotny stan — czyli innymi słowy na logiczny qubit zakodowany przy użyciu dziewięciu fizycznych qubitów — ale na potrzeby tej analizy uznajemy to zdarzenie za niepowodzenie.
Z drugiej strony, gdybyśmy nie zdecydowali się użyć kodu, nasz jedyny qubit uległby podobnemu losowi (byłaby na nim zastosowana niejednostkowa operacja Pauliego) z prawdopodobieństwem Kod jest pomocny, gdy pierwsze prawdopodobieństwo jest mniejsze od drugiego:
Poniższy wykres ilustruje, dla bardzo małych wartości że kod zapewnia przewagę, a punkt równowagi wypada w okolicach
Jeśli jest mniejsze od tego punktu równowagi, kod jest pomocny; w punkcie równowagi prawdopodobieństwa są równe, więc używamy kodu i 8 dodatkowych qubitów bez żadnego pożytku; a powyżej punktu równowagi zdecydowanie nie powinniśmy używać tego kodu, ponieważ zwiększa on szansę na logiczny błąd na
Nieco ponad trzy i ćwierć procent może nie wydawać się dobrym punktem równowagi, zwłaszcza w porównaniu z który jest analogicznym punktem równowagi dla 3-bitowego kodu repetycyjnego dla informacji klasycznej. Różnica ta wynika w dużej mierze z faktu, że informacja kwantowa jest delikatniejsza i trudniejsza do ochrony niż informacja klasyczna. Ale też — uznając, że 9-kubitowy kod Shora stanowi błyskotliwe odkrycie jako pierwszy na świecie kwantowy kod korekcji błędów — trzeba przyznać, że w praktycznych zastosowaniach nie jest to wcale bardzo dobry kod.