Pular para o conteúdo principal

Código de repetição revisitado

A seguir, vamos dar uma segunda olhada no código de repetição de 3 bits, desta vez formulando-o em termos de operações de Pauli. Este será nosso primeiro exemplo de um código estabilizador.

Observáveis de Pauli para o código de repetição

Lembre-se de que, quando aplicamos o código de repetição de 3 bits a qubits, um dado vetor de estado de qubit α0+β1\alpha\vert 0\rangle + \beta\vert 1\rangle é codificado como

ψ=α000+β111.\vert\psi\rangle = \alpha\vert 000\rangle + \beta\vert 111\rangle.

Qualquer estado ψ\vert\psi\rangle dessa forma é uma codificação válida de 3 qubits de um estado de qubit — mas se tivéssemos um estado sobre o qual não tivéssemos certeza, poderíamos verificar que temos uma codificação válida checando as duas equações a seguir.

(ZZI)ψ=ψ(IZZ)ψ=ψ\begin{aligned} (Z \otimes Z \otimes \mathbb{I}) \vert\psi\rangle & = \vert\psi\rangle\\[1mm] (\mathbb{I} \otimes Z \otimes Z) \vert\psi\rangle & = \vert\psi\rangle \end{aligned}

A primeira equação afirma que aplicar operações ZZ aos dois qubits mais à esquerda de ψ\vert\psi\rangle não tem nenhum efeito, ou seja, ψ\vert\psi\rangle é um autovetor de ZZIZ\otimes Z\otimes \mathbb{I} com autovalor 1.1. A segunda equação é similar, exceto que as operações ZZ são aplicadas aos dois qubits mais à direita. A ideia é que, se pensarmos em ψ\vert\psi\rangle como uma combinação linear de estados da base padrão, então a primeira equação implica que só podemos ter coeficientes não nulos para estados da base padrão em que os dois bits mais à esquerda têm paridade par (ou, de forma equivalente, são iguais), e a segunda equação implica que só podemos ter coeficientes não nulos para estados da base padrão nos quais os dois bits mais à direita têm paridade par.

De forma equivalente, se visualizarmos as duas operações de Pauli ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z como observáveis e medirmos ambas usando os circuitos sugeridos ao final da seção anterior, então teríamos certeza de obter resultados de medição correspondentes a autovalores +1+1, porque ψ\vert\psi\rangle é um autovetor de ambos os observáveis com autovalor 1.1. Mas a versão simplificada do circuito (combinado) para medir ambos os observáveis de forma independente, mostrada aqui, nada mais é do que o circuito de verificação de paridade para o código de repetição de 3 bits.

Circuito de verificação de paridade para o código de repetição de 3 bits

As duas equações acima, portanto, implicam que o circuito de verificação de paridade produz saída 00,00, que é a síndrome que indica que nenhum erro foi detectado.

As operações de Pauli de 3 qubits ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z são chamadas de geradores estabilizadores para este código, e o estabilizador do código é o conjunto gerado pelos geradores estabilizadores.

ZZI,IZZ={III,ZZI,ZIZ,IZZ}\langle Z\otimes Z\otimes \mathbb{I}, \mathbb{I}\otimes Z\otimes Z\rangle = \{ \mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z\otimes Z\otimes\mathbb{I}, Z\otimes\mathbb{I}\otimes Z, \mathbb{I}\otimes Z\otimes Z \}

O estabilizador é um objeto matemático fundamentalmente importante associado a este código, e o papel que ele desempenha será discutido à medida que a lição avança. Por ora, vamos observar que poderíamos ter feito uma escolha diferente para os geradores e as verificações de paridade correspondentes, especificamente tomando ZIZZ\otimes\mathbb{I}\otimes Z no lugar de qualquer um dos geradores que selecionamos, mas o estabilizador e o próprio código permaneceriam inalterados.

Detecção de erros

A seguir, vamos considerar a detecção de inversão de bit para o código de repetição de 3 bits, com foco nas interações e relações entre as operações de Pauli envolvidas: os geradores estabilizadores e os próprios erros.

Suponha que codificamos um qubit usando o código de repetição de 3 bits e ocorre um erro de inversão de bit no qubit mais à esquerda. Isso faz com que o estado ψ\vert\psi\rangle seja transformado pela ação de uma operação XX (ou erro XX).

ψ(XII)ψ\vert\psi\rangle \mapsto (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle

Esse erro pode ser detectado realizando as verificações de paridade para o código de repetição de 3 bits, como discutido na lição anterior, o que é equivalente a medir de forma não destrutiva os geradores estabilizadores ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z como observáveis.

Vamos começar com o primeiro gerador estabilizador. O estado ψ\vert\psi\rangle foi afetado por um erro XX no qubit mais à esquerda, e nosso objetivo é entender como a medição desse gerador estabilizador, como observável, é influenciada por esse erro. Como XX e ZZ anti-comutam, enquanto toda matriz comuta com a matriz identidade, segue que ZZIZ\otimes Z\otimes \mathbb{I} anti-comuta com XII.X\otimes\mathbb{I}\otimes\mathbb{I}. Enquanto isso, como ψ\vert\psi\rangle é uma codificação válida de um qubit, ZZIZ\otimes Z\otimes \mathbb{I} age de forma trivial sobre ψ.\vert\psi\rangle.

(ZZI)(XII)ψ=(XII)(ZZI)ψ=(XII)ψ\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\vert\psi\rangle \\ & = -(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

Portanto, (XII)ψ(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle é um autovetor de ZZIZ \otimes Z \otimes \mathbb{I} com autovalor 1.-1. Quando a medição associada ao observável ZZIZ \otimes Z \otimes \mathbb{I} é realizada sobre o estado (XII)ψ,(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle, o resultado é, portanto, certamente aquele associado ao autovalor 1.-1.

Um raciocínio similar pode ser aplicado ao segundo gerador estabilizador, mas desta vez o erro comuta com o gerador estabilizador em vez de anti-comutar, e portanto o resultado desta medição é aquele associado ao autovalor +1.+1.

(IZZ)(XII)ψ=(XII)(IZZ)ψ=(XII)ψ\begin{aligned} (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z)\vert\psi\rangle\\ & = (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

O que encontramos ao considerar essas equações é que, independentemente do nosso estado original ψ,\vert\psi\rangle, o estado corrompido é um autovetor de ambos os geradores estabilizadores, e se o autovalor é +1+1 ou 1-1 é determinado por se o erro comuta ou anti-comuta com cada gerador estabilizador. Para erros representados por operações de Pauli, sempre será um ou outro, porque quaisquer duas operações de Pauli ou comutam ou anti-comutam. Enquanto isso, o estado real ψ\vert\psi\rangle não desempenha um papel importante, exceto pelo fato de que os geradores estabilizadores agem de forma trivial sobre esse estado.

Por essa razão, realmente não precisamos nos preocupar em geral com o estado codificado específico com o qual estamos trabalhando. O que importa é se o erro comuta ou anti-comuta com cada gerador estabilizador. Em particular, estas são as equações relevantes em relação a este erro específico para este código.

(ZZI)(XII)=(XII)(ZZI)(IZZ)(XII)=(XII)(IZZ)\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\\[1mm] (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z) \end{aligned}

Aqui está uma tabela com uma linha para cada gerador estabilizador e uma coluna para cada erro. A entrada na tabela é +1+1 ou 1-1 dependendo de se o erro e o gerador estabilizador comutam ou anti-comutam. A tabela inclui apenas colunas para os erros correspondentes a uma única inversão de bit, bem como nenhum erro, que é descrito pela identidade tensorada com ela mesma três vezes. Poderíamos adicionar mais colunas para outros erros, mas por ora nosso foco será apenas nesses erros.

IIIXIIIXIIIXZZI+111+1IZZ+1+111\begin{array}{c|cccc} & \mathbb{I}\otimes\mathbb{I} \otimes\mathbb{I} & X \otimes \mathbb{I} \otimes \mathbb{I} & \mathbb{I}\otimes X\otimes\mathbb{I} & \mathbb{I} \otimes\mathbb{I} \otimes X \\ \hline Z\otimes Z\otimes\mathbb{I} & +1 & -1 & -1 & +1 \\ \mathbb{I}\otimes Z\otimes Z & +1 & +1 & -1 & -1 \end{array}

Para cada erro na tabela, a coluna correspondente revela como esse erro transforma qualquer codificação em um autovetor de +1+1 ou 1-1 de cada gerador estabilizador. De forma equivalente, as colunas descrevem a síndrome que obteríamos das verificações de paridade, que são equivalentes a medições não destrutivas dos geradores estabilizadores como observáveis. Naturalmente, a tabela tem entradas +1+1 e 1-1 em vez de entradas 00 e 11 — e é comum pensar em uma síndrome como sendo uma string binária em vez de uma coluna de entradas +1+1 e 1-1 — mas podemos igualmente pensar nesses vetores com entradas +1+1 e 1-1 como síndromes para conectá-los diretamente aos autovalores dos geradores estabilizadores. Em geral, as síndromes nos dizem algo sobre o erro que ocorreu, e se soubermos que um dos quatro possíveis erros listados na tabela ocorreu, a síndrome indica qual foi.

Síndromes

As codificações para o código de repetição de 3 bits são estados de 3 qubits, portanto são vetores unitários em um espaço vetorial complexo de 8 dimensões. As quatro síndromes possíveis dividem efetivamente esse espaço de 8 dimensões em quatro subespaços de 2 dimensões, onde vetores de estado quântico em cada subespaço sempre resultam na mesma síndrome. O diagrama a seguir ilustra especificamente como o espaço de 8 dimensões é dividido pelos dois geradores estabilizadores.

Divisão de subespaços para o código de repetição de 3 bits

Cada gerador estabilizador divide o espaço em dois subespaços de igual dimensão, a saber, o espaço dos autovetores de +1+1 e o espaço dos autovetores de 1-1 para aquele observável. Por exemplo, os autovetores de +1+1 de ZZIZ\otimes Z\otimes\mathbb{I} são combinações lineares de estados da base padrão nos quais os dois bits mais à esquerda têm paridade par, e os autovetores de 1-1 são combinações lineares de estados da base padrão nos quais os dois bits mais à esquerda têm paridade ímpar. A situação é similar para o outro gerador estabilizador, exceto que para este são os dois bits mais à direita em vez dos dois bits mais à esquerda.

Os quatro subespaços de 2 dimensões correspondentes às quatro síndromes possíveis são fáceis de descrever neste caso, graças ao fato de que este é um código muito simples. Em particular, o subespaço correspondente à síndrome (+1,+1)(+1,+1) é o espaço gerado por 000\vert 000\rangle e 111\vert 111\rangle, que é o espaço das codificações válidas (também conhecido como espaço do código), e em geral os espaços são gerados pela base padrão mostrada nos quadrados correspondentes.

As síndromes também particionam todas as operações de Pauli de 3 qubits em 4 coleções de tamanho igual, dependendo de qual síndrome essa operação (como um erro) causaria. Por exemplo, qualquer operação de Pauli que comuta com ambos os geradores estabilizadores resulta na síndrome (+1,+1),(+1,+1), e entre as 64 possíveis operações de Pauli de 3 qubits, há exatamente 16 delas nessa categoria (incluindo IIZ,\mathbb{I}\otimes \mathbb{I}\otimes Z, ZZZZ\otimes Z\otimes Z e XXXX\otimes X\otimes X, por exemplo), e da mesma forma para as outras 3 síndromes.

Ambas essas propriedades — que as síndromes particionam tanto o espaço de estados em que as codificações vivem quanto todas as operações de Pauli nesse espaço em coleções de tamanho igual — são verdadeiras em geral para códigos estabilizadores, que definiremos precisamente na próxima seção.

Embora seja principalmente uma observação lateral neste ponto, vale mencionar que as operações de Pauli que comutam com ambos os geradores estabilizadores, ou de forma equivalente, operações de Pauli que resultam na síndrome (+1,+1),(+1,+1), mas não são elas mesmas proporcionais a elementos do estabilizador, acabam se comportando exatamente como operações de Pauli de qubit único no qubit codificado (ou seja, o qubit lógico) para este código. Por exemplo, XXXX\otimes X \otimes X comuta com ambos os geradores estabilizadores, mas não é em si proporcional a nenhum elemento do estabilizador, e de fato o efeito dessa operação sobre uma codificação é equivalente a um Gate XX no qubit lógico que está sendo codificado.

(XXX)(α000+β111)=α111+β000(X\otimes X \otimes X)(\alpha \vert 000\rangle + \beta \vert 111\rangle) = \alpha \vert 111\rangle + \beta \vert 000\rangle

Novamente, este é um fenômeno que se generaliza para todos os códigos estabilizadores.