La terminologie du «code de surface» est un peu variable. Il peut se référer à une classe entière de choses, des variantes du code Toric sur différents réseaux, ou il peut se référer au code Planaire, la variante spécifique sur un réseau carré avec des conditions aux limites ouvertes.
Le code torique
Je vais résumer certaines des propriétés de base du code Toric. Imaginez un réseau carré avec des conditions aux limites périodiques, c'est-à-dire que le bord supérieur est joint au bord inférieur et le bord gauche est joint au bord droit. Si vous essayez ceci avec une feuille de papier, vous constaterez que vous obtenez une forme de beignet, ou tore. Sur ce treillis, nous plaçons un qubit sur chaque bord d'un carré.
Stabilisateurs
Ensuite, nous définissons tout un tas d'opérateurs. Pour chaque carré du réseau (comprenant 4 qubits au milieu de chaque bord), nous écrivons
agissant une rotation Pauli- X sur chacun des 4 qubits. L'étiquette p fait référence à «plaquette», et n'est qu'un indice pour que nous puissions ensuite compter sur l'ensemble des plaquettes. Sur tous les sommets du réseau (entouré de 4 qubits), nous définissons
A s = Z Z Z Z . s fait référence à la forme d'étoile et, encore une fois, nous permet de résumer tous ces termes.
Bp= XXXX,
XpUNEs= ZZZZ.
s
Nous observons que tous ces termes commuent mutuellement. C'est trivial pour car les opérateurs de Pauli font la navette entre eux et moi . Plus de prudence est requise avec [ A s , B p ] = 0 , notez que ces deux termes ont soit 0 ou 2 sites en commun, et que des paires d'opérateurs de Pauli différents font la navette, [ X X , Z Z ] = 0[ As, As′] = [ Bp, Bp′] = 0je[ As, Bp] = 0[ XX, ZZ] = 0.
Espace de code
Puisque tous ces opérateurs font la navette, nous pouvons définir un état propre simultané de tous, un état telle que
∀ s : A s | ψ ⟩ = | ψ ⟩| ψ⟩
Ceci définit l'espace de code du code. Nous devons déterminer sa taille.
∀ s : As| ψ⟩= | ψ⟩∀ p : Bp| ψ⟩= | ψ⟩.
N× NN22N2N2UNEsBp± 1UNE2s= B2p= Je
∏sUNEs= ∏pBp= JeUNEsBp
Opérateurs logiques
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
Il existe quelques conventions différentes pour étiqueter les différents opérateurs. J'irai avec mon préféré (qui est probablement le moins populaire):
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
Détection et correction d'erreurs
UNEsBp± 1
X- 1+ 1XXX
Erreur de correction du seuil
NNNXZpp = 0,1111 %. Il a également un seuil tolérant aux pannes fini (où vous autorisez des mesures et des corrections erronées avec un certain taux d'erreur par qubit)
Le code planaire
Les détails sont plus identiques au code Toric, sauf que les conditions aux limites du réseau sont ouvertes au lieu de périodiques. Ce mens que, sur les bords, les stabilisateurs se définissent légèrement différemment. Dans ce cas, il n'y a qu'un seul qubit logique dans le code au lieu de deux.