Pular para o conteúdo principal

Outras famílias de códigos

Já se passaram mais de 25 anos desde a descoberta do código tórico, e desde então houve uma enorme quantidade de pesquisa em códigos de correção de erros quânticos, incluindo a descoberta de outros códigos quânticos topológicos inspirados pelo código tórico, além de códigos baseados em ideias diferentes. Uma lista abrangente de todas as construções de códigos de correção de erros quânticos conhecidas seria impossível de incluir aqui — mas vamos arranhar a superfície um pouco para examinar brevemente alguns exemplos proeminentes.

Códigos de superfície

Como se descobriu, não é estritamente necessário que o código tórico tenha fronteiras periódicas. Ou seja, é possível recortar apenas uma parte do código tórico e colocá-la sobre uma superfície bidimensional, em vez de um toro, para obter um código de correção de erros quânticos — desde que os geradores do estabilizador nas bordas sejam definidos adequadamente. O que obtemos é chamado de código de superfície.

Por exemplo, aqui está um diagrama de um código de superfície, onde o reticulado é cortado com as chamadas bordas rugosas no topo e na base e bordas lisas nas laterais. Os casos de borda para os geradores do estabilizador são definidos de forma natural: as operações de Pauli sobre qubits "ausentes" são simplesmente omitidas.

Diagrama de um código de superfície

Códigos de superfície dessa forma codificam um único qubit, em vez de dois como o código tórico. Os geradores do estabilizador formam, nesse caso, um conjunto gerador mínimo, sem a necessidade de remover um de cada tipo como ocorre com o código tórico. Porém, apesar dessas diferenças, as características importantes do código tórico são herdadas. Em particular, erros não triviais não detectados neste código correspondem a cadeias de erros que se estendem da borda esquerda até a borda direita (para cadeias de erros XX) ou de cima para baixo (para cadeias de erros ZZ).

Também é possível cortar as bordas de um código de superfície na diagonal para obter o que às vezes é chamado de códigos de superfície rotacionados, cujo nome não se deve ao fato de os códigos serem rotacionados em algum sentido significativo, mas sim porque os diagramas são rotacionados (em 45 graus). Por exemplo, aqui está um diagrama de um código de superfície rotacionado com distância 5.

Diagrama de um código de superfície rotacionado

Neste tipo de diagrama, tiles pretos (incluindo os arredondados nas bordas) indicam geradores do estabilizador XX, onde operações XX são aplicadas aos vértices (dois ou quatro) de cada tile, enquanto tiles brancos representam geradores do estabilizador ZZ. Códigos de superfície rotacionados têm propriedades semelhantes aos códigos de superfície (não rotacionados), mas são mais econômicos em termos de quantos qubits são utilizados.

Códigos de cor

Códigos de cor são outra classe interessante de códigos, que também se enquadram na categoria geral de códigos quânticos topológicos. Eles serão descritos apenas brevemente aqui.

Uma forma de pensar sobre os códigos de cor é vê-los como generalizações geométricas do código de Steane de 7 qubits. Com isso em mente, vamos considerar o código de Steane de 7 qubits novamente, e supor que os sete qubits são nomeados e ordenados usando a convenção de numeração do Qiskit como (Q6,Q5,Q4,Q3,Q2,Q1,Q0).(\mathsf{Q}_6,\mathsf{Q}_5,\mathsf{Q}_4,\mathsf{Q}_3,\mathsf{Q}_2,\mathsf{Q}_1,\mathsf{Q}_0). Lembre-se de que os geradores do estabilizador para este código são os seguintes.

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

Se associarmos esses sete qubits aos vértices do grafo a seguir, descobrimos que os geradores do estabilizador correspondem precisamente às faces formadas pelas arestas do grafo.

Diagrama ilustrando a localidade geométrica do código de Steane de 7 qubits

Ou seja, para cada face, há tanto um gerador do estabilizador ZZ quanto um gerador do estabilizador XX que atuam de forma não trivial sobre os qubits encontrados nos vértices dessa face. O código de Steane de 7 qubits, portanto, possui localidade geométrica, de modo que, em princípio, não é necessário mover qubits por grandes distâncias para medir os geradores do estabilizador. O fato de que os geradores do estabilizador ZZ e XX atuam de forma não trivial sobre exatamente os mesmos conjuntos de qubits também é conveniente por razões relacionadas à computação quântica tolerante a falhas, que é o tema da próxima lição.

Códigos de cor são códigos de correção de erros quânticos (mais precisamente, códigos CSS) que generalizam esse padrão básico, exceto que os grafos subjacentes podem ser diferentes. Por exemplo, aqui está um grafo com 19 vértices que funciona. Ele define um código que codifica um qubit em 19 qubits e tem distância 5 (ou seja, é um código estabilizador [[19,1,5]][[19,1,5]]).

Diagrama de um código de cor

Isso pode ser feito com muitos outros grafos, incluindo famílias de grafos que crescem em tamanho e possuem estruturas interessantes.

Os códigos de cor recebem esse nome porque uma das condições exigidas sobre os grafos que os definem é que as faces possam ser coloridas com três cores, ou seja, cada face pode receber uma das três cores de tal forma que duas faces da mesma cor nunca compartilhem uma aresta (como temos no diagrama anterior). As cores em si não importam para a definição do próprio código — sempre há geradores do estabilizador ZZ e XX para cada face, independentemente de sua cor — mas as cores são importantes para analisar como os códigos funcionam.

Outros códigos

A correção de erros quânticos é uma área de pesquisa ativa e em rápida evolução. Quem tiver interesse em explorar mais a fundo pode consultar o Error Correction Zoo, que lista numerosos exemplos e categorizações de códigos de correção de erros quânticos.

Exemplo: O código grosso

O código grosso é um código estabilizador [[144,12,12]][[144,12,12]] descoberto recentemente. Ele é semelhante ao código tórico, exceto que cada gerador do estabilizador atua de forma não trivial sobre dois qubits adicionais, um pouco mais distantes do tile ou vértice correspondente ao gerador (portanto, cada gerador do estabilizador tem peso 6). A vantagem deste código é que ele pode codificar 12 qubits, comparado a apenas dois para o código tórico.