Die Terminologie von 'Oberflächencode' ist ein wenig variabel. Es kann sich auf eine ganze Klasse von Dingen beziehen, auf Varianten des Toric-Codes auf verschiedenen Gittern, oder auf den Planar-Code, die spezifische Variante auf einem quadratischen Gitter mit offenen Randbedingungen.
Der Toric Code
Ich werde einige der grundlegenden Eigenschaften des Toric-Codes zusammenfassen. Stellen Sie sich ein quadratisches Gitter mit periodischen Randbedingungen vor, dh die obere Kante wird mit der unteren Kante und die linke Kante mit der rechten Kante verbunden. Wenn Sie dies mit einem Blatt Papier versuchen, erhalten Sie eine Donutform oder einen Torus. Auf diesem Gitter platzieren wir ein Qubit an jeder Kante eines Quadrats.
Stabilisatoren
Als nächstes definieren wir eine ganze Reihe von Operatoren. Für jedes Quadrat auf dem Gitter (bestehend aus 4 Qubits in der Mitte jeder Kante) schreiben wir
wobei auf jedes der 4 Qubits eine Pauli- X- Drehung angewendet wird . Die Bezeichnung p bezieht sich auf "Plakette" und ist nur ein Index, damit wir später über den gesamten Plakettensatz hinweg zählen können. An jedem Scheitelpunkt des Gitters (umgeben von 4 Qubits) definieren wir
A s = Z Z Z Z . s bezieht sich auf die Sternform und lässt uns noch einmal alle diese Begriffe zusammenfassen.
Bp= XXXX,
XpAs=ZZZZ.
s
Wir stellen fest, dass sich alle diese Begriffe gegenseitig austauschen. Es ist trivial für weil Pauli-Operatoren mit sich selbst und mir pendeln . Bei [ A s , B p ] = 0 ist mehr Sorgfalt geboten. Beachten Sie, dass diese beiden Terme entweder 0 oder 2 Stellen gemeinsam haben und dass Paare verschiedener Pauli-Operatoren [ X X , Z Z ] = 0 austauschen[As,As′]=[Bp,Bp′]=0I[As,Bp]=0[XX,ZZ]=0.
Codespace
Da alle diese Operatoren pendeln, können wir einen simultanen Eigenzustand von allen definieren, einen Zustand so dass
∀ s : A s | & psgr; ⟩ = | & psgr; ⟩| & psgr;⟩
Dies definiert den Codespace des Codes. Wir sollten bestimmen, wie groß es ist.
∀ s : As| & psgr;⟩= | & psgr;⟩∀ p : Bp| & psgr;⟩= | & psgr;⟩.
N× NN22N2N2EINsBp± 1EIN2s= B2p= Ich
∏sEINs= ∏pBp= IchEINsBp
Logische Operatoren
X1 , LZ1 , LX2 , LZ2 , L
[ X1 , L, X2 , L] = 0[ X1 , L, Z2 , L] = 0[ Z1 , L, Z2 , L] = 0[ Z1 , L, X2 , L] = 0
{ X1 , L, Z1 , L} = 0{ X2 , L, Z2 , L} = 0
Es gibt verschiedene Konventionen, um die verschiedenen Operatoren zu kennzeichnen. Ich gehe mit meinem Favoriten (der wahrscheinlich weniger beliebt ist):
ZZ1 , L
ZX2 , LZ2 , L
XZ2 , L
XX1 , L
XZ
| ψx , y⟩ : Z1 , L| ψx , y⟩ = ( - 1 )x| ψx , y⟩ ,Z2 , L| ψx , y⟩ = ( - 1 )y| ψx , y⟩
NN
Fehlererkennung und -korrektur
EINsBp± 1
X- 1+ 1XXX
Fehler beim Korrigieren des Schwellenwerts
NNNXZpp = 0,1111 %. Es hat auch einen endlichen fehlertoleranten Schwellenwert (bei dem Sie fehlerhafte Messungen und Korrekturen mit einer Fehlerrate pro Qubit zulassen).
Der Planare Code
Details sind größtenteils identisch mit dem Toric-Code, außer dass die Randbedingungen des Gitters nicht periodisch, sondern offen sind. Dies bedeutet, dass die Stabilisatoren an den Rändern etwas anders definiert werden. In diesem Fall enthält der Code nur ein logisches Qubit anstelle von zwei.