Wiederholungscodes
Wir beginnen die Lektion mit einer Diskussion der Wiederholungscodes. Wiederholungscodes schützen Quanteninformation nicht gegen jeden Fehlertyp, der auf Qubits auftreten kann, aber sie bilden die Grundlage für den 9-Qubit-Shor-Code, den wir in der nächsten Lektion kennenlernen werden, und sind auch nützlich, um die Grundlagen der Fehlerkorrektur zu erläutern.
Klassische Kodierung und Dekodierung
Wiederholungscodes sind äußerst einfache Beispiele für fehlerkorrigierende Codes. Die Idee ist, dass wir Bits gegen Fehler schützen können, indem wir jedes Bit einfach eine feste Anzahl von Malen wiederholen.
Betrachten wir zunächst den 3-Bit-Wiederholungscode, zunächst nur im Kontext klassischer Information. Dieser Code kodiert ein Bit in drei Bits, indem das Bit dreimal wiederholt wird, so dass als und als kodiert wird.
Wenn nichts schiefgeht, können wir die zwei Möglichkeiten für das ursprüngliche Bit offensichtlich anhand ihrer Kodierungen unterscheiden. Der Punkt ist, dass wir, wenn ein Fehler auftrat und eines der drei Bits umgekippt wurde (also eine 0 zu einer 1 wurde oder umgekehrt), dennoch herausfinden können, welches das ursprüngliche Bit war – indem wir feststellen, welcher der beiden Binärwerte zweimal vorkommt. Gleichwertig können wir dekodieren, indem wir den Mehrheitswert berechnen (also den Binärwert, der am häufigsten vorkommt).
Natürlich wird das Dekodieren nicht korrekt funktionieren, wenn 2 oder 3 Bits der Kodierung umkippen, und das falsche Bit wiederhergestellt wird – aber wenn höchstens 1 der 3 Bits umkippt, ist die Dekodierung korrekt. Das ist eine typische Eigenschaft von fehlerkorrigierenden Codes im Allgemeinen: Sie ermöglichen die Korrektur von Fehlern, aber nur, wenn es nicht zu viele davon gibt.
Rauschreduzierung für den binären symmetrischen Kanal
Als Beispiel für eine Situation, in der die Fehlerwahrscheinlichkeit durch einen Wiederholungscode verringert werden kann, nehmen wir an, unser Ziel ist es, ein einzelnes Bit an einen hypothetischen Empfänger zu übermitteln, und wir können Bits durch einen sogenannten binären symmetrischen Kanal übertragen, der jedes gesendete Bit unabhängig mit einer Wahrscheinlichkeit umkippt. Das heißt, mit Wahrscheinlichkeit empfängt der Empfänger das Bit, das durch den Kanal gesendet wurde, aber mit Wahrscheinlichkeit kippt das Bit um, und der Empfänger erhält den entgegengesetzten Bitwert.
Wenn wir also den 3-Bit-Wiederholungscode nicht verwenden und das gewünschte Bit einfach durch den Kanal senden, empfängt der Empfänger das falsche Bit mit Wahrscheinlichkeit . Wenn wir hingegen zuerst das zu sendende Bit mit dem 3-Bit-Wiederholungscode kodieren und dann jedes der drei Bits der Kodierung durch den Kanal senden, kippt jedes davon unabhängig mit Wahrscheinlichkeit um. Die Wahrscheinlichkeit eines Bit-Flips ist jetzt höher, weil drei Bits statt einem umkippen könnten – aber wenn höchstens eines der Bits umkippt, dekodiert der Empfänger korrekt. Ein Fehler bleibt nach der Dekodierung also nur bestehen, wenn zwei oder mehr Bits während der Übertragung umkippen.
Die Wahrscheinlichkeit, dass zwei Bits während der Übertragung umkippen, beträgt – das ist für jede der drei Möglichkeiten, welches Bit nicht umkippt –, während die Wahrscheinlichkeit, dass alle drei Bits umkippen, beträgt. Die Gesamtwahrscheinlichkeit von zwei oder drei Bit-Flips beträgt daher
Für Werte von kleiner als ein Halb führt dies zu einer Verringerung der Wahrscheinlichkeit, dass der Empfänger das falsche Bit erhält. In diesem Fall besteht weiterhin eine Fehlerwahrscheinlichkeit, aber der Code verringert die Wahrscheinlichkeit. (Für Werte von größer als ein Halb hingegen erhöht der Code tatsächlich die Wahrscheinlichkeit, dass der Empfänger das falsche Bit erhält.)
Qubits kodieren
Der 3-Bit-Wiederholungscode ist ein klassischer fehlerkorrigierender Code, aber wir können überlegen, was passiert, wenn wir ihn zum Schutz von Qubits gegen Fehler einsetzen. Wie wir sehen werden, ist er kein besonders beeindruckender Quanten-Fehlerkorrekturcode, da er einige Fehler tatsächlich wahrscheinlicher macht. Er ist jedoch der erste Schritt zum Shor-Code und wird uns aus pädagogischer Sicht gute Dienste leisten.
Wenn wir vom 3-Bit-Wiederholungscode für Qubits sprechen, meinen wir eine Kodierung eines Qubits, bei der Standardbasiszustände dreimal wiederholt werden, sodass ein Ein-Qubit-Zustandsvektor wie folgt kodiert wird.
Diese Kodierung lässt sich leicht mit folgendem Quantenschaltkreis implementieren, der zwei initialisierte Workspace-Qubits und zwei kontrollierte-NOT-Gates verwendet.
Zu beachten ist insbesondere, dass diese Kodierung nicht dasselbe ist wie das dreimalige Wiederholen des Quantenzustands, also eine Kodierung eines gegebenen Qubit-Zustandsvektors als