O que é 'Código de superfície'? (Correção de erro quântico)

21

Estou estudando computação quântica e informação. Cruzei com a frase 'Surface Code', mas não consigo encontrar uma breve explicação sobre o que é e como funciona. Espero que vocês possam me ajudar com isso.

Nota: Se você quiser, pode usar matemática complicada, eu estou familiarizado com a mecânica quântica até certo ponto.

Ivanovitch
fonte
1
Bem vinda! Para esclarecer: as respostas devem assumir que você já examinou os códigos tóricos e estabilizadores no nível da Wikipédia ?
agaitaarino 19/05/19
2
Não sei sobre códigos tóricos ou códigos estabilizadores: | Mas vou ler sobre isso #
Ivanovitch
1
Agradável! Então isso deve ser um ótimo começo, eu acho. Sugiro que você dê uma rápida olhada nelas e coloque mais alguns detalhes na questão: coisas que você já acha que entende e outras que ainda não fazem muito sentido. Uma vez respondida, pode ser uma pergunta e uma pergunta muito útil para as pessoas que vêm atrás de você: esses são conceitos importantes e a terminologia é realmente um pouco confusa.
agaitaarino
4
Não sei de nada, mas arxiv.org/abs/1208.0928 é onde eu comecei a aprender sobre o código de superfície.
Craig Gidney

Respostas:

10

Os códigos de superfície são uma família de códigos de correção de erros quânticos definidos em uma rede 2D de qubits. Cada código dentro desta família possui estabilizadores que são definidos equivalentemente em massa, mas diferem um do outro em suas condições de contorno.

Às vezes, os membros da família de códigos de superfície também são descritos por nomes mais específicos: o código tórico é um código de superfície com condições de contorno periódicas, o código planar é aquele definido em um plano etc. O termo "código de superfície" também é usado às vezes de forma intercambiável com o 'código planar', já que este é o exemplo mais realista da família de códigos de superfície.

Os códigos de superfície são atualmente uma grande área de pesquisa, por isso vou apontar alguns bons pontos de entrada (além do artigo da Wikipedia vinculado acima).

Os códigos de superfície também podem ser generalizados para qudits. Para mais informações, veja aqui .

James Wootton
fonte
Os códigos de superfície funcionam apenas para computadores quânticos topológicos?
Ivanovitch 28/05
2
Os códigos de superfície funcionariam para qualquer qubits. Em certo sentido, com os códigos de superfície, você está criando um computador quântico topológico usando qubits não topológicos.
James Wootton
13

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.

insira a descrição da imagem aqui

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,
Xp
UMAs=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[UMAs,UMAs]=[Bp,Bp]=0 0Eu[UMAs,Bp]=0 0[XX,ZZ]=0 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 |ψ Isso define o espaço de código do código. Devemos determinar quão grande é.

s:UMAs|ψ=|ψp:Bp|ψ=|ψ.

N×NN22N2N2UMAsBp±1UMAs2=Bp2=Eu

sUMAs=pBp=EuUMAsBp

Operadores lógicos

X1,euZ1,euX2,euZ2,eu

[X1,eu,X2,eu]=0 0[X1,eu,Z2,eu]=0 0[Z1,eu,Z2,eu]=0 0[Z1,eu,X2,eu]=0 0
{X1,eu,Z1,eu}=0 0{X2,eu,Z2,eu}=0 0

Existem algumas convenções diferentes sobre como rotular os diferentes operadores. Eu vou com o meu favorito (que provavelmente é o menos popular):

  • ZZ1,eu

  • ZX2,euZ2,eu

  • XZ2,eu

  • XX1,eu

XZ

|ψx,y:Z1,eu|ψx,y=(-1)x|ψx,y,Z2,eu|ψ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.

DaftWullie
fonte