A terminologia do 'código de superfície' é um pouco variável. Pode se referir a toda uma classe de coisas, variantes do código Toric em redes diferentes, ou pode se referir ao código Planar, a variante específica em uma rede quadrada com condições de contorno aberto.
O Código Toric
Vou resumir algumas das propriedades básicas do código Toric. Imagine uma treliça quadrada com condições de contorno periódicas, ou seja, a borda superior é unida à borda inferior e a borda esquerda é unida à borda direita. Se você tentar fazer isso com uma folha de papel, verá uma forma de rosquinha ou toro. Nesta rede, colocamos um qubit em cada extremidade de um quadrado.
Estabilizadores
Em seguida, definimos um monte de operadores. Para cada quadrado na rede (compreendendo 4 qubits no meio de cada aresta), escrevemos
atuando uma rotação Pauli- X em cada um dos 4 qubits. O rótulo p refere-se a 'plaqueta' e é apenas um índice para que possamos contar mais tarde em todo o conjunto de plaquetas. Em cada vértice do retículo (4 rodeada por qubits), definimos
uma s = Z Z Z Z . s refere-se à forma da estrela e, novamente, vamos somar todos esses termos.
Bp= XXXX,
XpUMAs= ZZZZ.
s
Observamos que todos esses termos se alternam mutuamente. É trivial para porque os operadores Pauli comutam entre si e eu . É necessário mais cuidado com [ A s , B p ] = 0 , note que esses dois termos têm 0 ou 2 sites em comum e pares de diferentes operadores Pauli são comutados, [ X X , Z Z ] = 0[ As, As′] = [ Bp, Bp′] = 0Eu[ As, Bp] = 0[ XX, ZZ] = 0.
Codespace
Como todos esses operadores comutam, podemos definir um auto-estatuto simultâneo de todos eles, um estado tal que
∀ s : A s | ip ⟩ = | ip ⟩| ip⟩
Isso define o espaço de código do código. Devemos determinar quão grande é.
∀ s : As| ip⟩= | ip⟩∀ p : Bp| ip⟩= | ip⟩.
N× NN22N2N2UMAsBp± 1UMA2s= B2p= I
∏sUMAs= ∏pBp= IUMAsBp
Operadores lógicos
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
Existem algumas convenções diferentes sobre como rotular os diferentes operadores. Eu vou com o meu favorito (que provavelmente é o menos popular):
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
Detecção e correção de erros
UMAsBp± 1
X- 1+ 1XXX
Erro ao corrigir o limite
NNNXZpp = 0,1111 %. Ele também possui um limite tolerante a falhas finito (onde você permite medições e correções com falha com alguma taxa de erro por qubit)
O Código Planar
Os detalhes são muito idênticos ao código Toric, exceto que as condições de contorno da rede estão abertas em vez de periódicas. Isso significa que, nas bordas, os estabilizadores são definidos de maneira ligeiramente diferente. Nesse caso, há apenas um qubit lógico no código em vez de dois.