Kod repetycyjny — powrót do tematu
Teraz przyjrzymy się ponownie 3-bitowemu kodowi repetycyjnemu, tym razem ujmując go w kategoriach operacji Pauliego. Będzie to nasz pierwszy przykład kodu stabilizatorowego.
Obserwable Pauliego dla kodu repetycyjnego
Przypomnij sobie, że gdy stosujemy 3-bitowy kod repetycyjny do kubitów, dany wektor stanu kubitu jest kodowany jako
Każdy stan tej postaci jest poprawnym 3-kubitowym kodowaniem stanu kubitu — lecz gdybyśmy mieli stan, co do którego nie bylibyśmy pewni, moglibyśmy zweryfikować, czy mamy poprawne kodowanie, sprawdzając dwa poniższe równania.
Pierwsze równanie mówi, że zastosowanie operacji do dwóch lewych kubitów nie ma żadnego efektu, co oznacza, że jest wektorem własnym z wartością własną Drugie równanie jest analogiczne, z tą różnicą, że operacje są stosowane do dwóch prawych kubitów. Chodzi o to, że jeśli potraktujemy jako kombinację liniową stanów bazy standardowej, to pierwsze równanie oznacza, iż niezerowe współczynniki mogą mieć tylko te stany bazowe, w których dwa lewe bity mają parzystą parzystość (tzn. są równe), a drugie równanie oznacza, że niezerowe współczynniki mogą mieć tylko te stany bazowe, w których dwa prawe bity mają parzystą parzystość.
Równoważnie, jeśli potraktujemy obie operacje Pauliego i jako obserwable i zmierzymy je obydwie za pomocą układów sugerowanych pod koniec poprzedniej sekcji, to z pewnością uzyskamy wyniki pomiaru odpowiadające wartościom własnym , ponieważ jest wektorem własnym obu obserwabli z wartością własną Jednak uproszczona wersja (połączonego) układu do niezależnego pomiaru obu obserwabli, pokazana tutaj, jest niczym innym jak układem sprawdzania parzystości dla 3-bitowego kodu repetycyjnego.
Oba powyższe równania implikują zatem, że układ sprawdzania parzystości daje wynik czyli syndrom oznaczający, że nie wykryto żadnych błędów.
Operacje Pauliego na 3 kubitach i są nazywane generatorami stabilizatora tego kodu, a stabilizator kodu to zbiór generowany przez generatory stabilizatora.
Stabilizator jest fundamentalnie ważnym obiektem matematycznym związanym z tym kodem, a jego rola będzie omawiana w trakcie dalszej części lekcji. Na razie zauważmy, że mogliśmy wybrać inne generatory i odpowiadające im sprawdzenia parzystości — konkretnie biorąc zamiast któregokolwiek z wybranych przez nas generatorów — jednak stabilizator i sam kod pozostałyby niezmienione.
Wykrywanie błędów
Teraz zajmiemy się wykrywaniem błędów bitowych (bit-flip) w 3-bitowym kodzie repetycyjnym, skupiając się na interakcjach i relacjach między operacjami Pauliego, które są w to zaangażowane: generatorami stabilizatora i samymi błędami.
Załóżmy, że zakodowaliśmy kubit przy użyciu 3-bitowego kodu repetycyjnego i na lewym kubicie wystąpił błąd bitowy. Powoduje to przekształcenie stanu zgodnie z działaniem operacji (czyli błędu ).
Błąd ten można wykryć, wykonując sprawdzenia parzystości dla 3-bitowego kodu repetycyjnego, jak omówiono w poprzedniej lekcji — co jest równoważne niedestrukcyjnemu pomiarowi generatorów stabilizatora i jako obserwabli.
Zacznijmy od pierwszego generatora stabilizatora. Stan doznał błędu na lewym kubicie i naszym celem jest zrozumienie, jak pomiar tego generatora stabilizatora jako obserwabli jest na ten błąd wrażliwy. Ponieważ i antykomutują, natomiast każda macierz komutuje z macierzą jednostkową, wynika z tego, że antykomutuje z Tymczasem, ponieważ jest poprawnym kodowaniem kubitu, działa trywialnie na
Wynika z tego, że jest wektorem własnym z wartością własną Gdy pomiar związany z obserwablą jest wykonywany na stanie wynik jest zatem pewny i odpowiada wartości własnej
Analogiczne rozumowanie można zastosować do drugiego generatora stabilizatora, lecz tym razem błąd komutuje z generatorem stabilizatora zamiast z nim antykomutować, więc wynikiem tego pomiaru jest wynik odpowiadający wartości własnej
To, co odkrywamy analizując te równania, jest następujące: niezależnie od naszego oryginalnego stanu uszkodzony stan jest wektorem własnym obu generatorów stabilizatora, a to, czy wartość własna wynosi czy , jest określone przez to, czy błąd komutuje, czy antykomutuje z każdym generatorem stabilizatora. Dla błędów reprezentowanych przez operacje Pauliego zawsze będzie to jedno albo drugie, ponieważ dowolne dwie operacje Pauliego albo komutują, albo antykomutują. Tymczasem sam stan nie odgrywa tu ważnej roli — z wyjątkiem faktu, że generatory stabilizatora działają na ten stan trywialnie.
Z tego powodu w ogólności nie musimy przejmować się konkretnym zakodowanym stanem, z którym pracujemy. Liczy się jedynie to, czy błąd komutuje, czy antykomutuje z każdym generatorem stabilizatora. W szczególności, oto istotne równania dotyczące tego konkretnego błędu dla tego kodu.
Oto tabela z jednym wierszem dla każdego generatora stabilizatora i jedną kolumną dla każdego błędu. Wpis w tabeli wynosi albo w zależności od tego, czy błąd i generator stabilizatora komutują, czy antykomutują. Tabela zawiera kolumny tylko dla błędów odpowiadających pojedynczemu przerzutowi bitu, a także braku błędu, który opisany jest przez iloczyn tensorowy tożsamości ze sobą samą trzy razy. Moglibyśmy dodać więcej kolumn dla innych błędów, ale na razie skupimy się tylko na tych.
Dla każdego błędu w tabeli odpowiadająca mu kolumna ujawnia, jak ten błąd przekształca dowolne dane kodowanie w wektor własny lub każdego generatora stabilizatora. Równoważnie, kolumny opisują syndrom, który uzyskalibyśmy ze sprawdzeń parzystości, będących równoważnikami niedestrukcyjnych pomiarów generatorów stabilizatora jako obserwabli. Oczywiście tabela zawiera wpisy i , a nie i — i często myśli się o syndromie jako o binarnym ciągu bitów, a nie kolumnie wpisów i — lecz równie dobrze możemy myśleć o tych wektorach z wpisami i jako syndromach, łącząc je bezpośrednio z wartościami własnymi generatorów stabilizatora. Ogólnie rzecz biorąc, syndromy mówią nam coś o błędzie, który wystąpił, i jeśli wiemy, że nastąpił jeden z czterech możliwych błędów wymienionych w tabeli, syndrom wskazuje, który to był.
Syndromy
Kodowania dla 3-bitowego kodu repetycyjnego są stanami 3-kubitowymi, więc są wektorami jednostkowymi w 8-wymiarowej zespolonej przestrzeni wektorowej. Cztery możliwe syndromy efektywnie dzielą tę 8-wymiarową przestrzeń na cztery 2-wymiarowe podprzestrzenie, przy czym wektory stanu kwantowego w każdej podprzestrzeni zawsze dają ten sam syndrom. Poniższy diagram ilustruje konkretnie, jak 8-wymiarowa przestrzeń jest podzielona przez dwa generatory stabilizatora.
Każdy generator stabilizatora dzieli przestrzeń na dwie podprzestrzenie równego wymiaru, a mianowicie przestrzeń wektorów własnych i przestrzeń wektorów własnych dla danej obserwabli. Na przykład wektory własne dla to kombinacje liniowe stanów bazy standardowej, w których dwa lewe bity mają parzystą parzystość, a wektory własne to kombinacje liniowe stanów bazy standardowej, w których dwa lewe bity mają nieparzystą parzystość. Sytuacja jest podobna dla drugiego generatora stabilizatora, z tą różnicą, że dla niego chodzi o dwa prawe bity, a nie dwa lewe.
Cztery 2-wymiarowe podprzestrzenie odpowiadające czterem możliwym syndromom są łatwe do opisania w tym przypadku, co wynika z faktu, że jest to bardzo prosty kod. W szczególności, podprzestrzeń odpowiadająca syndromowi to przestrzeń rozpiętą przez i , czyli przestrzeń poprawnych kodowań (znana też jako przestrzeń kodu), a ogólnie przestrzenie są rozpiętą przez bazę standardową pokazaną w odpowiednich kwadratach.
Syndromy partycjonują również wszystkie 3-kubitowe operacje Pauliego na 4 równoliczne zbiory, w zależności od tego, jaki syndrom ta operacja (jako błąd) by spowodowała. Na przykład każda operacja Pauliego, która komutuje z obydwoma generatorami stabilizatora, daje syndrom i wśród 64 możliwych 3-kubitowych operacji Pauliego jest dokładnie 16 takich, które należą do tej kategorii (w tym i na przykład) — i tak samo dla pozostałych 3 syndromów.
Obie te właściwości — że syndromy partycjonują zarówno przestrzeń stanów, w której żyją kodowania, jak i wszystkie operacje Pauliego na tej przestrzeni na równoliczne zbiory — są prawdziwe ogólnie dla kodów stabilizatorowych, które precyzyjnie zdefiniujemy w następnej sekcji.
Choć to w tym miejscu jedynie dygresja, warto wspomnieć, że operacje Pauliego komutujące z obydwoma generatorami stabilizatora — czyli równoważnie operacje Pauliego dające syndrom — ale niebędące same w sobie proporcjonalne do elementów stabilizatora, okazują się zachowywać dokładnie jak jednokubitowe operacje Pauliego na zakodowanym kubicie (tj. logicznym kubicie) dla tego kodu. Na przykład komutuje z obydwoma generatorami stabilizatora, ale sama w sobie nie jest proporcjonalna do żadnego elementu stabilizatora, a efekt tej operacji na kodowanie jest równoważny bramce na logicznym kubicie, który jest kodowany.
To jest zjawisko, które uogólnia się na wszystkie kody stabilizatorowe.