Stabilizer-Codes
Jetzt werden wir Stabilizer-Codes im Allgemeinen definieren. Wir besprechen auch einige ihrer grundlegenden Eigenschaften und wie sie funktionieren – darunter, wie Zustände kodiert werden und wie Fehler mit diesen Codes erkannt und korrigiert werden.
Definition von Stabilizer-Codes
Ein -Qubit-Stabilizer-Code wird durch eine Liste von -Qubit-Pauli-Operationen beschrieben. Diese Operationen werden in diesem Kontext als Stabilizer-Generatoren bezeichnet und müssen die folgenden drei Eigenschaften erfüllen.
-
Die Stabilizer-Generatoren kommutieren paarweise miteinander.
-
Die Stabilizer-Generatoren bilden ein minimales Erzeugendensystem.
-
Mindestens ein Quantenzustandsvektor wird von allen Stabilizer-Generatoren fixiert.
(Es ist nicht offensichtlich, dass die Existenz eines Quantenzustandsvektors , der von allen Stabilizer-Generatoren fixiert wird – also –, äquivalent zu ist. Tatsächlich ist das aber der Fall, und wir werden später in der Lektion sehen, warum.)
Wenn wir eine solche Liste haben, ist der Code-Raum, der durch diese Stabilizer-Generatoren definiert wird, der Unterraum , der alle -Qubit-Quantenzustandsvektoren enthält, die von allen Stabilizer-Generatoren fixiert werden.
Quantenzustandsvektoren in diesem Unterraum sind genau diejenigen, die als gültige Kodierungen von Quantenzuständen betrachtet werden können. Den eigentlichen Kodierungsprozess besprechen wir später.
Der Stabilizer des Codes, der durch die Stabilizer-Generatoren definiert wird, ist die von diesen Operationen erzeugte Menge:
Eine natürliche Sichtweise auf einen Stabilizer-Code ist es, die Stabilizer-Generatoren als Observablen zu betrachten und die Messergebnisse dieser Observablen gemeinsam als Fehlersyndrom zu interpretieren. Gültige Kodierungen sind -Qubit-Quantenzustandsvektoren, bei denen die Messergebnisse als Eigenwerte garantiert alle sind. Jedes andere Syndrom, bei dem mindestens ein auftritt, zeigt an, dass ein Fehler erkannt wurde.
Wir schauen uns gleich mehrere Beispiele an, aber zunächst noch einige Anmerkungen zu den drei Bedingungen für Stabilizer-Generatoren.
Die erste Bedingung ist naheliegend, wenn man die Stabilizer-Generatoren als Observablen interpretiert: Sie impliziert, dass die Reihenfolge der Messungen keine Rolle spielt – die Observablen kommutieren, also kommutieren auch die Messungen. Das legt bestimmte algebraische Einschränkungen für Stabilizer-Codes fest, die für ihre Funktionsweise wichtig sind.
Die zweite Bedingung verlangt, dass die Stabilizer-Generatoren ein minimales Erzeugendensystem bilden, d. h. das Entfernen eines beliebigen Generators würde zu einem kleineren Stabilizer führen. Genau genommen ist diese Bedingung für die operative Funktionsweise von Stabilizer-Codes nicht wirklich wesentlich – und wie wir in der nächsten Lektion sehen werden, macht es manchmal Sinn, über Mengen von Stabilizer-Generatoren nachzudenken, die diese Bedingung tatsächlich nicht erfüllen. Für die Analyse von Stabilizer-Codes und die Erklärung ihrer Eigenschaften werden wir diese Bedingung jedoch voraussetzen. Kurz gesagt stellt sie sicher, dass jede Observable, die wir zur Ermittlung des Fehlersyndroms messen, neue Information über mögliche Fehler liefert – und nicht redundant ist und Ergebnisse produziert, die sich aus den anderen Stabilizer-Generator-Messungen ableiten lassen.
Die dritte Bedingung verlangt, dass mindestens ein nichttrivialer Vektor von allen Stabilizer-Generatoren fixiert wird, was äquivalent dazu ist, dass nicht im Stabilizer enthalten ist. Die Notwendigkeit dieser Bedingung ergibt sich daraus, dass es tatsächlich möglich ist, ein minimales Erzeugendensystem von -Qubit-Pauli-Operationen zu wählen, die alle miteinander kommutieren, ohne dass irgendeiner von ihnen alle nichttrivialen Vektoren fixiert. Wir sind nicht an „Codes" interessiert, für die es keine gültigen Kodierungen gibt, daher schließen wir diese Möglichkeit durch diese Bedingung aus.
Beispiele
Hier sind einige Beispiele für Stabilizer-Codes mit kleinen Werten von In der nächsten Lektion werden wir weitere Beispiele sehen, auch solche, bei denen viel größer sein kann.
3-Bit-Wiederholungscode
Der 3-Bit-Wiederholungscode ist ein Beispiel für einen Stabilizer-Code, bei dem die Stabilizer-Generatoren und sind.
Wir können leicht überprüfen, dass diese beiden Stabilizer-Generatoren die erforderlichen Bedingungen erfüllen. Erstens kommutieren die beiden Stabilizer-Generatoren und miteinander.