Espaços de código e palavras de código
Um código de correção de erro quântico é frequentemente identificado com o espaço de código (Nielsen e Chuang certamente parecem fazê-lo). O espaço de código C de, por exemplo, um código de correção de erro quântico de n bits é um subespaço vetorial C⊆H⊗n2 .
Uma palavra de código (terminologia que foi emprestada da teoria clássica da correção de erros) é um estado para um código-espaço, isto é, é um estado que codifica alguns dados.|ψ⟩∈C
Códigos de correção de erros quânticos
Na prática, exigimos algumas propriedades não triviais para conter um código de correção de erro quântico, como:
- dimC⩾2
- Que existe um conjunto de pelo menos dois operadores, incluindo o operador , tal que - se é o projetor ortogonal em - temos
para alguns escalares (conhecidos como condições de Knill – Laflamme ).E={E1,E2,…}E1=1PC
PEjEkP=αj,kP
αj,k
Isso determina algum conjunto de operadores de erro contra os quais você pode, em princípio, proteger um estado , pois se as condições de Knill – Laflamme mantiverem um conjunto de operadores e algum operador age em seu estado, é possível, em princípio, detectar o fato de que ocorreu (em oposição a outro operador em ) e desfazer o erro, sem interromper os dados armazenados no estado original .|ψ⟩∈CEE∈EEE|ψ⟩
Um código de correção de erro quântico é um espaço de código , junto com um conjunto de operadores de erro que atendem às condições de Knill – Laflamme - ou seja, um código de correção de erro quântico deve especificar quais erros ele deve proteger. .CE
Por que é comum identificar códigos de correção de erros quânticos com seus espaços de código
Você não pode determinar um conjunto único de operadores que satisfaçam as condições Knill-LaFlamme a partir do código-space sozinho. No entanto, é mais comum considerar quais operadores de baixo peso (que atuam apenas em um pequeno número de qubits) podem ser simultaneamente corrigidos por um código e, em certa medida, isso pode ser derivado apenas do espaço de código. A distância do código de um espaço de código é o menor número de qubits em que você precisa agir, para transformar uma "palavra-código" em uma palavra-chave distinta . Se descrevermos um espaço de código como sendo umECC|ψ⟩∈C|ψ′⟩∈C[[n,k,d]] , isso indica que tem dimensão , e que o conjunto que consideramos é o conjunto de todos os operadores Pauli com peso no máximo .C⊆H⊗n22kE⌊(d−1)/2⌋
Em alguns casos, descrever um código como um código É suficiente. Por exemplo, o código de 5 qubit é um código , E é possível mostrar que cinco qubits não podem codificar um único qubit de forma que outros erros possam ser corrigidos além de todos os erros de qubit único. No entanto, o mesmo não se aplica ao código Steane , Que pode proteger contra qualquer erro de Pauli de um qubit único, bem como alguns (mas não todos) erros de Pauli de dois qubit. Quais erros Pauli de dois qubit você deve[[n,k,d]][[5,1,3]][[7,1,3]]proteger contra depende de qual é o seu modelo de erro; e se seu ruído for simétrico e distribuído independentemente, não importará muito o que você escolher (para que você provavelmente faça a escolha convencional de qualquer erro único junto com qualquer erro único ). É, no entanto, uma escolha , e uma que guiará como você protege seus dados contra ruídos.XZ
Códigos do estabilizador
Um código estabilizador é um código de correção de erro quântico determinado por um conjunto de geradores estabilizadores , que são operadores Pauli que se comutam entre si e que definem um espaço de código pela interseção de seus espaços + 1-eigens. (Geralmente é útil considerar o grupo estabilizador formado por produtos de )SC GP∈S
Quase todos os códigos de correção quântica de erros que as pessoas consideram na prática são códigos estabilizadores. Essa é uma das razões pelas quais você pode ter problemas para distinguir os dois termos. No entanto, não exigimos que um código de correção de erro quântico seja um código estabilizador - assim como, em princípio, não exigimos que um código de correção de erro clássico seja um código linear. Os códigos estabilizadores são uma maneira extremamente bem-sucedida de descrever códigos de correção de erros quânticos, assim como os códigos lineares de correção de erros são uma maneira extremamente bem-sucedida de descrever códigos clássicos de correção de erros. E, de fato, os códigos estabilizadores podem ser considerados como uma generalização natural da teoria dos códigos lineares clássicos para a correção quântica de erros.
Como as pessoas geralmente se interessam apenas pelos operadores de baixo peso, que estão a menos da metade da distância do código, o conjunto de estabilizadores é o que costumam dizer sobre um código de correção do estabilizador. No entanto, para especificar o conjunto de erros contra os quais o código pode proteger, é necessário também especificar um relacionamento entre os operadores de produtos Pauli e os subconjuntos , de modo queEσES⊆S
- E anticomuta com se e somente se para ;P∈SP∈Sσ(E,S)
- Se satisfazem e , então .E,E′σ(E,S)σ(E′,S)EE′∈G=⟨S⟩
Isso define um conjunto de erros contra os quais o código pode proteger. Os subconjuntos são chamados síndromes de erro , e a relação que eu chamei aqui (que você normalmente não vê com um nome explícito) associa síndromes a um ou mais erros que 'causam' essa síndrome e cujos efeitos no código são equivalentes.
E={E∣∣∃S⊆S:σ(E,S)}
S⊆Sσ
'Síndromes' representam informações que podem realmente ser obtidas sobre um erro por 'medição coerente' - isto é, medindo os operadores como observáveis (um processo que geralmente é simulado por estimativa de valor próprio). Um erro 'causa' uma síndrome se, para qualquer palavra-código , o estado estiver no espaço e de todos operadores , e no -eigenspace de todos os outros operadores em . (Esta propriedade está diretamente relacionada à anticomutação de com todos os elementos deP∈SES⊆S|ψ⟩∈CE|ψ⟩−1P∈S+1SES⊆S e apenas esses elementos.)