Zum Hauptinhalt springen

Andere Code-Familien

Es ist über 25 Jahre her, seit der Torische Code entdeckt wurde, und seitdem wurde intensiv zu quantenfehlerkorrigierenden Codes geforscht – einschließlich der Entdeckung anderer topologischer Quantencodes, die vom Torischen Code inspiriert wurden, sowie Codes auf anderen Grundlagen. Eine umfassende Liste bekannter Quantenfehlerkorrektur-Code-Konstruktionen wäre hier unmöglich unterzubringen – aber wir wollen die Oberfläche zumindest etwas ankratzen und kurz zwei prominente Beispiele betrachten.

Oberflächencodes

Wie sich herausstellt, muss der Torische Code keine periodischen Ränder haben. Man kann also einfach einen Teil des Torischen Codes ausschneiden und auf einer zweidimensionalen Fläche statt auf einem Torus ausbreiten, um einen quantenfehlerkorrigierenden Code zu erhalten – sofern die Stabilisatorgeneratoren an den Rändern ordnungsgemäß definiert werden. Was wir erhalten, wird als Oberflächencode bezeichnet.

Hier ist zum Beispiel ein Diagramm eines Oberflächencodes, bei dem das Gitter an der Ober- und Unterseite sogenannte raue Ränder und an den Seiten glatte Ränder aufweist. Die Randfälle für die Stabilisatorgeneratoren sind auf natürliche Weise definiert: Pauli-Operationen auf „fehlenden" Qubits werden einfach weggelassen.

Diagramm eines Oberflächencodes

Oberflächencodes dieser Form kodieren ein einzelnes Qubit statt zwei wie der Torische Code. Die Stabilisatorgeneratoren bilden in diesem Fall eine minimale Erzeugendenmenge, ohne dass wie beim Torischen Code jeweils einer von jedem Typ entfernt werden muss. Trotz dieser Unterschiede werden die wichtigen Eigenschaften des Torischen Codes geerbt. Insbesondere entsprechen nicht-triviale, unerkannte Fehler für diesen Code Fehlerketten, die entweder vom linken zum rechten Rand (für Ketten von XX-Fehlern) oder von oben nach unten (für Ketten von ZZ-Fehlern) verlaufen.

Es ist auch möglich, die Ränder eines Oberflächencodes diagonal zu schneiden und so sogenannte rotierte Oberflächencodes zu erhalten, die so benannt wurden nicht weil die Codes in einem bedeutsamen Sinne rotiert sind, sondern weil die Diagramme (um 45 Grad) rotiert sind. Hier ist beispielsweise ein Diagramm eines rotierten Oberflächencodes mit Distanz 5.

Diagramm eines rotierten Oberflächencodes

In diesem Diagrammtyp zeigen schwarze Kacheln (einschließlich der abgerundeten an den Rändern) XX-Stabilisatorgeneratoren an, wobei XX-Operationen auf die (zwei oder vier) Eckpunkte jeder Kachel angewendet werden, während weiße Kacheln ZZ-Stabilisatorgeneratoren darstellen. Rotierte Oberflächencodes haben ähnliche Eigenschaften wie (nicht rotierte) Oberflächencodes, sind jedoch hinsichtlich der Anzahl der verwendeten Qubits effizienter.

Farb-Codes

Farb-Codes sind eine weitere interessante Klasse von Codes, die ebenfalls in die allgemeine Kategorie der topologischen Quantencodes fallen. Sie werden hier nur kurz beschrieben.

Eine Möglichkeit, Farb-Codes zu verstehen, ist, sie als geometrische Verallgemeinerungen des 7-Qubit-Steane-Codes zu betrachten. Betrachten wir den 7-Qubit-Steane-Code erneut und nehmen an, dass die sieben Qubits mit Qiskits Nummerierungskonvention als (Q6,Q5,Q4,Q3,Q2,Q1,Q0)(\mathsf{Q}_6,\mathsf{Q}_5,\mathsf{Q}_4,\mathsf{Q}_3,\mathsf{Q}_2,\mathsf{Q}_1,\mathsf{Q}_0) benannt und geordnet sind. Die Stabilisatorgeneratoren für diesen Code lauten wie folgt.

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

Wenn wir diese sieben Qubits den Eckpunkten des folgenden Graphen zuordnen, stellen wir fest, dass die Stabilisatorgeneratoren genau mit den Flächen übereinstimmen, die von den Kanten des Graphen gebildet werden.

Diagramm zur geometrischen Lokalität des 7-Qubit-Steane-Codes

Das heißt: Für jede Fläche gibt es sowohl einen ZZ-Stabilisatorgenerator als auch einen XX-Stabilisatorgenerator, die auf die Qubits an den Eckpunkten dieser Fläche nicht-trivial wirken. Der 7-Qubit-Steane-Code besitzt daher geometrische Lokalität, was bedeutet, dass es prinzipiell nicht notwendig ist, Qubits über große Entfernungen zu bewegen, um die Stabilisatorgeneratoren zu messen. Die Tatsache, dass die ZZ- und XX-Stabilisatorgeneratoren immer auf genau denselben Qubit-Mengen nicht-trivial wirken, ist aus Gründen, die mit fehlertoleranter Quantenberechnung zusammenhängen – dem Thema der nächsten Lektion –, ebenfalls vorteilhaft.

Farb-Codes sind quantenfehlerkorrigierende Codes (genauer gesagt CSS-Codes), die dieses grundlegende Muster verallgemeinern, wobei die zugrunde liegenden Graphen unterschiedlich sein können. Hier ist zum Beispiel ein Graph mit 19 Eckpunkten, der funktioniert. Er definiert einen Code, der ein Qubit in 19 Qubits kodiert und Distanz 5 hat (d.h. es ist ein [[19,1,5]][[19,1,5]]-Stabilisator-Code).

Diagramm eines Farb-Codes

Das kann mit vielen anderen Graphen gemacht werden, einschließlich Familien von Graphen, die in der Größe wachsen und interessante Strukturen aufweisen.

Farb-Codes sind so benannt, weil eine der erforderlichen Bedingungen für die Graphen, die sie definieren, ist, dass die Flächen dreifärbbar sind, d.h. jeder Fläche kann eine von drei Farben zugewiesen werden, sodass keine zwei Flächen gleicher Farbe eine Kante gemeinsam haben (wie im obigen Diagramm). Die Farben sind für die Definition des Codes selbst eigentlich irrelevant – es gibt immer ZZ- und XX-Stabilisatorgeneratoren für jede Fläche, unabhängig von ihrer Farbe –, aber die Farben sind wichtig für die Analyse der Funktionsweise der Codes.

Andere Codes

Quantenfehlerkorrektur ist ein aktives und sich schnell entwickelndes Forschungsgebiet. Wer tiefer einsteigen möchte, kann den Error Correction Zoo konsultieren, der zahlreiche Beispiele und Kategorisierungen von quantenfehlerkorrigierenden Codes auflistet.

Beispiel: Der Gross-Code

Der Gross-Code ist ein kürzlich entdeckter [[144,12,12]][[144,12,12]]-Stabilisator-Code. Er ähnelt dem Torischen Code, außer dass jeder Stabilisatorgenerator auf zwei zusätzliche Qubits nicht-trivial wirkt, die etwas weiter entfernt von der Kachel oder dem Eckpunkt für diesen Generator sind (also hat jeder Stabilisatorgenerator Gewicht 6). Der Vorteil dieses Codes liegt darin, dass er 12 Qubits kodieren kann, verglichen mit nur zwei beim Torischen Code.