Autores: Sergey Bravyi Andrew W. Cross Jay M. Gambetta Dmitri Maslov Patrick Rall Theodore J. Yoder Resumo O acúmulo de erros físicos impede a execução de algoritmos de larga escala em computadores quânticos atuais. A correção de erros quânticos promete uma solução codificando qubits lógicos em um número maior de qubits físicos, de modo que os erros físicos sejam suprimidos o suficiente para permitir a execução de um cálculo desejado com fidelidade tolerável. A correção de erros quânticos torna-se praticamente realizável assim que a taxa de erro físico está abaixo de um valor limite que depende da escolha do código quântico, do circuito de medição de síndrome e do algoritmo de decodificação. Apresentamos um protocolo de correção de erros quânticos de ponta a ponta que implementa memória tolerante a falhas com base em uma família de códigos de paridade de baixa densidade (LDPC). Nossa abordagem atinge um limite de erro de 0,7% para o modelo de ruído padrão baseado em circuito, igualando o código de superfície, que por 20 anos foi o código líder em termos de limite de erro. O ciclo de medição de síndrome para um código de comprimento em nossa família requer qubits auxiliares e um circuito de profundidade 8 com portas CNOT, inicializações de qubits e medições. A conectividade de qubit necessária é um grafo de grau 6 composto por dois subgrafos planares disjuntos de arestas. Em particular, mostramos que 12 qubits lógicos podem ser preservados por quase 1 milhão de ciclos de síndrome usando 288 qubits físicos no total, assumindo uma taxa de erro físico de 0,1%, enquanto o código de superfície exigiria quase 3.000 qubits físicos para atingir o desempenho declarado. Nossas descobertas aproximam as demonstrações de memória quântica tolerante a falhas de baixo overhead ao alcance de processadores quânticos de curto prazo. k n n n Principal A computação quântica atraiu atenção devido à sua capacidade de oferecer soluções assintoticamente mais rápidas para um conjunto de problemas computacionais em comparação com os melhores algoritmos clássicos conhecidos. Acredita-se que um computador quântico escalável funcionando possa ajudar a resolver problemas computacionais em áreas como descoberta científica, pesquisa de materiais, química e design de medicamentos, para citar alguns. O principal obstáculo para a construção de um computador quântico é a fragilidade da informação quântica, devido a várias fontes de ruído que a afetam. Como isolar um computador quântico de efeitos externos e controlá-lo para induzir um cálculo desejado entram em conflito um com o outro, o ruído parece ser inevitável. As fontes de ruído incluem imperfeições em qubits, materiais utilizados, aparato de controle, erros de preparação e medição de estado e uma variedade de fatores externos que vão desde fatores artificiais locais, como campos eletromagnéticos espúrios, até aqueles inerentes ao Universo, como raios cósmicos. Veja ref. para um resumo. Embora algumas fontes de ruído possam ser eliminadas com melhor controle, materiais e blindagem, várias outras fontes parecem ser difíceis, se não impossíveis, de remover. O último tipo pode incluir emissão espontânea e estimulada em íons aprisionados, e a interação com o banho (efeito Purcell) em circuitos supercondutores – cobrindo ambas as tecnologias quânticas líderes. Assim, a correção de erros torna-se um requisito chave para a construção de um computador quântico escalável funcional. A possibilidade de tolerância a falhas quânticas está bem estabelecida. Codificar um qubit lógico redundante em muitos qubits físicos permite diagnosticar e corrigir erros medindo repetidamente síndromes de operadores de verificação de paridade. No entanto, a correção de erros só é benéfica se a taxa de erro do hardware estiver abaixo de um certo valor limite que depende de um protocolo de correção de erros específico. As primeiras propostas para correção de erros quânticos, como códigos concatenados, focaram em demonstrar a possibilidade teórica de supressão de erros. À medida que a compreensão da correção de erros quânticos e as capacidades das tecnologias quânticas amadureceram, o foco mudou para a busca de protocolos práticos de correção de erros quânticos. Isso resultou no desenvolvimento do código de superfície, que oferece um alto limite de erro próximo a 1%, algoritmos de decodificação rápidos e compatibilidade com os processadores quânticos existentes que dependem da conectividade de qubits em grade quadrada bidimensional (2D). Pequenos exemplos do código de superfície com um único qubit lógico já foram demonstrados experimentalmente por vários grupos. No entanto, aumentar a escala do código de superfície para 100 ou mais qubits lógicos seria proibitivamente caro devido à sua baixa eficiência de codificação. Isso despertou interesse em códigos quânticos mais gerais conhecidos como códigos de paridade de baixa densidade (LDPC). O progresso recente no estudo de códigos LDPC sugere que eles podem alcançar tolerância a falhas quânticas com uma eficiência de codificação muito maior. Aqui, focamos no estudo de códigos LDPC, pois nosso objetivo é encontrar códigos e protocolos de correção de erros quânticos que sejam eficientes e possíveis de demonstrar na prática, dadas as limitações das tecnologias de computação quântica. Um código de correção de erros quânticos é do tipo LDPC se cada operador de verificação do código atuar apenas em poucos qubits e cada qubit participar de poucas verificações. Várias variantes dos códigos LDPC foram propostas recentemente, incluindo códigos de superfície hiperbólicos, produto de hipergrafo, códigos de produto balanceados, códigos de dois blocos baseados em grupos finitos e códigos de Tanner quânticos. Estes últimos demonstraram ser assintoticamente 'bons' no sentido de oferecer uma taxa de codificação constante e distância linear: um parâmetro que quantifica o número de erros corrigíveis. Em contraste, o código de superfície tem uma taxa de codificação assintoticamente zero e apenas distância de raiz quadrada. Substituir o código de superfície por um código LDPC de alta taxa e alta distância poderia ter implicações práticas importantes. Primeiro, o overhead de tolerância a falhas (a razão entre o número de qubits físicos e lógicos) poderia ser notavelmente reduzido. Segundo, códigos de alta distância mostram uma diminuição muito acentuada na taxa de erro lógico: à medida que a probabilidade de erro físico cruza o valor limite, a quantidade de supressão de erro alcançada pelo código pode aumentar em ordens de magnitude, mesmo com uma pequena redução na taxa de erro físico. Essa característica torna os códigos LDPC de alta distância atraentes para demonstrações de curto prazo que provavelmente operarão no regime próximo ao limite. No entanto, acreditava-se anteriormente que superar o código de superfície para modelos de ruído realistas, incluindo erros de memória, portas e preparação e medição de estado, pode exigir códigos LDPC muito grandes com mais de 10.000 qubits físicos. Aqui apresentamos vários exemplos concretos de códigos LDPC de alta taxa com algumas centenas de qubits físicos equipados com um circuito de medição de síndrome de baixa profundidade, um algoritmo de decodificação eficiente e um protocolo tolerante a falhas para endereçar qubits lógicos individuais. Esses códigos mostram um limite de erro próximo a 0,7%, apresentam excelente desempenho no regime próximo ao limite e oferecem uma redução de 10 vezes no overhead de codificação em comparação com o código de superfície. Os requisitos de hardware para realizar nossos protocolos de correção de erros são relativamente brandos, pois cada qubit físico é acoplado por portas de dois qubits com apenas seis outros qubits. Embora o grafo de conectividade de qubits não seja localmente incorporável em uma grade 2D, ele pode ser decomposto em dois subgrafos planares de grau 3. Conforme argumentamos abaixo, tal conectividade de qubits é bem adequada para arquiteturas baseadas em qubits supercondutores. Nossos códigos são uma generalização dos códigos de bicicleta propostos por MacKay et al. e estudados com mais profundidade nas refs.. Nomeamos nossos códigos de bicicleta bivariada (BB) porque eles são baseados em polinômios bivariados, como detalhado nos [Métodos]. Estes são códigos estabilizadores do tipo Calderbank–Shor–Steane (CSS) que podem ser descritos por uma coleção de operadores de verificação de seis qubits (estabilizadores) compostos por Pauli e . Em um nível alto, um código BB é semelhante ao código tóroidal bidimensional. Em particular, os qubits físicos de um código BB podem ser dispostos em uma grade bidimensional com condições de contorno periódicas de tal forma que todos os operadores de verificação sejam obtidos de um único par de verificações e por meio de deslocamentos horizontais e verticais da grade. No entanto, em contraste com os estabilizadores de plaquetas e vértices que descrevem o código tóroidal, os operadores de verificação dos códigos BB não são geometricamente locais. Além disso, cada verificação atua em seis qubits em vez de quatro qubits. Descreveremos o código por um grafo de Tanner tal que cada vértice de representa um qubit de dados ou um operador de verificação. Um vértice de verificação e um vértice de dados são conectados por uma aresta se o operador de verificação atua não trivialmente no qubit de dados (aplicando Pauli ou ). Veja a Figura 1a,b para exemplos de grafos de Tanner de códigos de superfície e BB, respectivamente. O grafo de Tanner de qualquer código BB tem grau de vértice seis e espessura de grafo igual a dois, o que significa que ele pode ser decomposto em dois subgrafos planares disjuntos de arestas (Métodos). A conectividade de qubit de espessura 2 é bem adequada para qubits supercondutores acoplados por ressonadores de micro-ondas. Por exemplo, duas camadas planares de acopladores e suas linhas de controle podem ser anexadas ao lado superior e inferior do chip que hospeda os qubits, e os dois lados matedos. X Z X Z G G i j i j X Z , Grafo de Tanner de um código de superfície, para comparação. , Grafo de Tanner de um código BB com parâmetros [] incorporado em um toro. Qualquer aresta do grafo de Tanner conecta um vértice de dados e um de verificação. Os qubits de dados associados aos registradores ( ) e ( ) são mostrados por círculos azuis e laranja. Cada vértice tem seis arestas incidentes, incluindo quatro arestas de curto alcance (apontando para norte, sul, leste e oeste) e duas arestas de longo alcance. Mostramos apenas algumas arestas de longo alcance para evitar poluição visual. Arestas pontilhadas e contínuas indicam dois subgrafos planares que abrangem o grafo de Tanner, veja os [Métodos]. , Esboço de uma extensão de grafo de Tanner para medir e seguindo a ref., anexando a um código de superfície. A auxiliar correspondente à medição de pode ser conectada a um código de superfície, permitindo operações de carga-armazenamento para todos os qubits lógicos por meio de teletransporte quântico e algumas unitárias lógicas. Este grafo de Tanner estendido também tem uma implementação em uma arquitetura de espessura 2 por meio das arestas e (Métodos). a b q L q R c A B Um código BB com parâmetros [[ , , ]] codifica qubits lógicos em qubits de dados oferecendo uma distância de código , o que significa que qualquer erro lógico abrange pelo menos qubits de dados. Dividimos qubits de dados em registradores ( ) e ( ) de tamanho /2 cada. Qualquer verificação atua em três qubits de ( ) e três qubits de ( ). O código depende de qubits auxiliares de verificação para medir a síndrome de erro. Dividimos qubits de verificação em registradores ( ) e ( ) de tamanho /2 que coletam síndromes dos tipos e , respectivamente. No total, a codificação depende de 2 qubits físicos. A taxa de codificação líquida é, portanto, = /(2 ). Por exemplo, a arquitetura padrão de código de superfície codifica = 1 qubit lógico em = qubits de dados para um código de distância- e usa - 1 qubits de verificação para medições de síndrome. A taxa de codificação líquida é ≈ 1/(2 ), que rapidamente se torna impraticável, pois somos forçados a escolher uma grande distância de código, devido, por exemplo, a os erros físicos estarem próximos do valor limite. Em contraste, os códigos BB têm taxa de codificação ≫ 1/ , veja a Tabela 1 para exemplos de códigos. Pelo nosso conhecimento, todos os códigos mostrados na Tabela 1 são novos. O código de distância 12 [] pode ser o mais promissor para demonstrações de curto prazo, pois combina grande distância e alta taxa de codificação líquida = 1/24. Para comparação, o código de superfície de distância 11 tem uma taxa de codificação líquida = 1/241. Abaixo, mostramos que o código BB de distância 12 supera o código de superfície de distância 11 para a faixa de taxas de erro experimentalmente relevante. n k d k n d d n q L q R n q L q R n n q X q Z n X Z n r k n k n d 2 d n r d 2 r d 2 r r Para evitar o acúmulo de erros, é preciso ser capaz de medir a síndrome de erro com frequência suficiente. Isso é realizado por um circuito de medição de síndrome que acopla qubits de dados no suporte de cada operador de verificação com o qubit auxiliar respectivo por uma sequência de portas CNOT. Os qubits de verificação são então medidos, revelando o valor da síndrome de erro. O tempo necessário para implementar o circuito de medição de síndrome é proporcional à sua profundidade: o número de camadas de portas compostas por CNOTs não sobrepostas. Como novos erros continuam a ocorrer enquanto o circuito de medição de síndrome é executado, sua profundidade deve ser minimizada. O ciclo completo de medição de síndrome para um código BB é ilustrado na Figura 2. O ciclo de síndrome requer apenas sete camadas de CNOTs, independentemente do comprimento do código. Os qubits de verificação são inicializados e medidos no início e no final do ciclo de síndrome, respectivamente (veja os [Métodos] para detalhes). O circuito respeita a simetria de deslocamento cíclico do código subjacente. Ciclo completo de medições de síndrome contando com sete camadas de CNOTs. Fornecemos uma visão local do circuito que inclui apenas um qubit de dados de cada registro ( ) e ( ). O circuito é simétrico sob deslocamentos horizontais e verticais do grafo de Tanner. Cada qubit de dados é acoplado por CNOTs com três qubits de verificação e três qubits de verificação : veja os [Métodos] para mais detalhes. q L q R X Z O protocolo completo de correção de erros executa ≫ 1 ciclos de medição de síndrome e, em seguida, chama um decodificador: um algoritmo clássico que recebe como entrada as síndromes medidas e produz uma estimativa do erro final nos qubits de dados. A correção de erros é bem-sucedida se o erro estimado e o real coincidirem módulo um produto de operadores de verificação. Neste caso, os dois erros têm a mesma ação em qualquer estado codificado (lógico). Assim, aplicar o inverso do erro estimado retorna os qubits de dados ao estado lógico inicial. Caso contrário, se o erro estimado e o real diferirem por um operador lógico não trivial, a correção de erros falha, resultando em um erro lógico. Nossos experimentos numéricos baseiam-se na propagação de crenças com um decodificador de estatísticas ordenadas (BP-OSD) proposto por Panteleev e Kalachev. O trabalho original descreveu o BP-OSD no contexto de um modelo de ruído de brinquedo com apenas erros de memória. Aqui, mostramos como estender o BP-OSD ao modelo de ruído baseado em circuito, veja as [Informações Suplementares] para detalhes. Nossa abordagem segue de perto as refs.. N c Uma versão ruidosa do circuito de medição de síndrome pode incluir vários tipos de operações defeituosas, como erros de memória em qubits de dados ou verificação ociosos, portas CNOT defeituosas, inicializações e medições de qubits. Consideramos o modelo de ruído baseado em circuito em que cada operação falha independentemente com probabilidade . A probabilidade de um erro lógico depende da taxa de erro , detalhes dos circuitos de medição de síndrome e do algoritmo de decodificação. Seja ( ) a probabilidade de erro lógico após a execução de ciclos de síndrome. Definimos a taxa de erro lógico como . Informalmente, pode ser vista como a probabilidade de erro lógico por ciclo de síndrome. Seguindo a prática comum, escolhemos = para um código de distância- . A Figura 3 mostra a taxa de erro lógico alcançada por códigos da Tabela 1. A taxa de erro lógico foi calculada numericamente para ≥ 10 e extrapolada para taxas de erro mais baixas usando uma fórmula de ajuste (Métodos). O pseudo-limite é definido como uma solução da equação de ponto de equilíbrio ( ) = . Aqui é uma estimativa da probabilidade de que pelo menos um dos qubits não codificados sofra um erro. Os códigos BB oferecem um pseudo-limite próximo a 0,7%, veja a Tabela 1, que é quase o mesmo que o limite de erro do código de superfície e excede o limite de todos os códigos LDPC de alta taxa conhecidos pelos autores. p p L p p L N c N c p L N c d d p −3 p 0 p L p kp kp k , Taxa de erro lógico versus físico para pequenos exemplos de códigos LDPC BB. Uma estimativa numérica de (losangos) foi obtida simulando ciclos de síndrome para um código de distância- . A maioria dos pontos de dados tem barras de erro aproximadamente iguais a /10 devido a erros de amostragem. , Comparação entre o código LDPC BB [] e códigos de superfície com 12 qubits lógicos e distância ∈ {9, 11, 13, 15}. O código de superfície de distância- com 12 qubits lógicos tem comprimento = 12 porque cada qubit lógico é codificado em um patch × separado da rede do código de superfície. a p L d d p L b d d n d 2 d d Por exemplo, suponha que a taxa de erro físico seja = 10 , que é uma meta realista para demonstrações de curto prazo. Codificar 12 qubits lógicos usando o código de distância 12 da Tabela 1 ofereceria a taxa de erro lógico de 2 × 10 , o que é suficiente para preservar 12 qubits lógicos por quase 1 milhão de ciclos de síndrome. O número total de qubits físicos necessários para essa codificação é 288. O código de distância 18 da Tabela 1 exigiria 576 qubits físicos, enquanto suprimir a taxa de erro de 10 para 2 × 10 permitiria quase cem bilhões de ciclos de síndrome. Para comparação, codificar 12 qubits lógicos em patches separados do código de superfície exigiria mais de 3.000 qubits físicos para suprimir a taxa de erro de 10 para 10 (Figura 3). Neste exemplo, o código BB de distância 12 oferece uma economia de 10 vezes no número de qubits físicos em comparação com o código de superfície. p −3 −7 −3 −12 −3 −7 Uma proposta de correção de erros quânticos só é útil se os qubits lógicos forem acessíveis. Felizmente, os códigos LDPC BB possuem as características necessárias para atuar como memória lógica. Como mostrado na Figura 1c, extensões do grafo de Tanner aproveitando técnicas de Cohen et al. permitem operações de medição tolerantes a falhas envolvendo um código de superfície auxiliar. Essas medições facilitam operações de carga-armazenamento tolerantes a falhas. Veja as [Informações Suplementares] para detalhes. Nosso trabalho destaca desafios chave de hardware para habilitar os novos códigos com qubits supercondutores: (1) o desenvolvimento de segunda camada de baixa perda na arquitetura de espessura 2; (2) o desenvolvimento de qubits que podem ser acoplados a sete conexões (seis barramentos e uma linha de controle); e (3) o desenvolvimento de acopladores de longo alcance. Todos estes são difíceis de resolver, mas não impossíveis. Para o primeiro desafio, podemos imaginar uma pequena mudança na embalagem que foi desenvolvida para o processador IBM Quantum Eagle. O mais simples seria colocar os barramentos extras no lado oposto do chip de qubits. Isso exigiria o desenvolvimento de vias através do substrato de alto que fariam parte dos barramentos de acoplamento e, como tal, exigiriam simulação de micro-ondas intensiva para garantir que essas vias através do substrato pudessem suportar a propagação de micro-ondas, sem introduzir grande crosstalk indesejado. Q O segundo desafio é uma extensão do número de acopladores do arranjo de rede heavy hex, que é quatro (três acopladores e um controle) para sete. A implicação disso é que a porta de ressonância cruzada, que tem sido a porta principal usada em grandes sistemas quânticos nos últimos anos, não seria o caminho a seguir. Os qubits em portas de ressonância cruzada não são sintonizáveis e, como tal, para um dispositivo grande com muitas conexões, a probabilidade de colisões de energia (não apenas os níveis de qubit, mas também níveis mais altos do transmon) tende a um muito rapidamente. No entanto, com o acoplador sintonizável no IBM Quantum Egret e agora em desenvolvimento para o IBM Quantum Heron, este problema não existe mais, pois as frequências dos qubits podem ser projetadas para serem mais distantes. Esta nova porta também é semelhante às portas usadas pelo Google Quantum AI, que mostraram que um arranjo de rede quadrada é possível. Estender o mapa de acoplamento para sete conexões exigirá modelagem de micro-ondas notável; no entanto, transmons típicos têm cerca de 60 fF de capacitância e cada porta tem cerca de 5 fF para obter as forças de acoplamento apropriadas aos barramentos, portanto, é fundamentalmente possível desenvolver este mapa de acoplamento sem alterar os longos tempos de coerência e a estabilidade dos qubits transmon. O desafio final é o mais difícil. Para os barramentos que são curtos o suficiente para que o modo fundamental possa ser usado, o modelo padrão de eletrodinâmica quântica de circuito se mantém. No entanto, para demonstrar o código de 144 qubits, alguns dos barramentos serão longos o suficiente para que precisemos de engenharia de frequência. Uma maneira de conseguir isso é com ressonadores de filtragem, e um experimento de prova de princípio foi demonstrado na ref.. Em resumo, oferecemos uma nova perspectiva sobre como uma memória quântica tolerante a falhas poderia ser realizada usando processadores quânticos de curto prazo com um baixo overhead de qubits. Embora esses códigos LDPC não sejam geometricamente locais, a conectividade de qubits necessária para medições de síndrome é descrita por um grafo de espessura 2 que pode ser implementado usando duas camadas planares de acopladores de qubits de grau 3. Esta é uma solução arquitetônica válida para plataformas baseadas em qubits supercondutores. Simulações numéricas realizadas para o modelo de ruído baseado em circuito indicam que os códigos LDPC propostos se comparam favoravelmente com o código de superfície na faixa praticamente relevante de taxas de erro ≥ 0,1%, oferecendo o mesmo nível de supressão de erro com uma redução de 10 vezes no overhead de qubits. Enquanto isso, permanece incerto se nossos exemplos de código podem ser escalados mantendo a alta taxa de codificação no limite de comprimento de código grande. p Métodos Construção do código Começamos com uma definição formal dos códigos BB. Sejam e a matriz identidade e a matriz de deslocamento cíclico de tamanho × , respectivamente. A -ésima linha de tem uma única entrada não nula igual a um na coluna . Por exemplo, I ℓ S ℓ ℓ ℓ i S ℓ Considere as matrizes Observe que = , = = , e = = . Um código BB é definido por um par de matrizes xy yx x T x y T y I ℓm x ℓ y m I ℓm onde cada matriz e é uma potência de ou . Aqui e abaixo, a adição e multiplicação de matrizes binárias são realizadas módulo dois, a menos que declarado de outra forma. Assim, também assumimos que os são distintos e os são distintos para evitar cancelamento de termos. Por exemplo, pode-se escolher = + + e = + + . Observe que e têm exatamente três entradas não nulas em cada linha e cada coluna. Além disso, = porque = . Os dados acima definem um código quântico BB denotado QC( , ) com comprimento = 2 e matrizes de verificação A i B j x y A i B j A x 3 y y 2 B y 3 x x 2 A B AB BA xy yx A B n ℓm Aqui a barra vertical indica empilhamento de matrizes horizontalmente e representa a transposição da matriz. Ambas as matrizes e têm tamanho ( /2) × . Cada linha de define um operador de verificação do tipo . Cada linha de define um operador de verificação do tipo . Qualquer verificação e comuta, pois elas se sobrepõem em um número par de qubits (observe que ). Por construção, o código QC( , ) tem operadores de verificação de peso 6 e cada qubit participa de seis verificações (três do tipo mais três do tipo ). Consequentemente, o código QC( , ) tem um grafo de Tanner de grau 6. Pode-se ver as matrizes e como polinômios bivariados sobre as variáveis e . A especialização de códigos BB para o caso = 1 e = dá os códigos de bicicleta originais baseados em polinômios univariados. Da mesma forma, os códigos BB são uma especialização dos códigos de bicicleta generalizados, códigos de grupo de dois blocos e códigos baseados em polinômios. Dada uma matriz binária , seja seu espaço nulo gerado por todos os vetores binários **v** tais que . Seja rs( ) o espaço das linhas de gerado pelas linhas de . T H X H Z n n H X X H Z Z X Z A B X Z A B A B x y m B A T M M M M Lema 1 O código QC( , ) tem parâmetros [[ , , ]], onde A B n k d O código oferece distância igual para erros do tipo e do tipo . X Z A prova, baseada em álgebra linear elementar, é adiada para as [Informações Suplementares]. A Tabela de Dados Estendidos 1 descreve os polinômios e que dão origem a exemplos de códigos BB de alta taxa e alta distância encontrados por uma busca numérica. Isso inclui todos os códigos da Tabela 1 e dois exemplos de códigos de maior distância. Pelo nosso conhecimento, todos esses exemplos são novos. O código [[360, 12, ≤24]] melhora um código [[882, 24, ≤24]] com verificações de peso 6 encontrado por Panteleev e Kalachev na ref. (assumindo que nosso limite superior de distância é apertado). De fato, tomar duas cópias independentes do código de 360 qubits dá os parâmetros [[720, 24, ≤24]]. O Apêndice C na ref. também descreve um código [] que tem parâmetros semelhantes aos nossos. Este código tem a forma QC( , ) com = 1 + + , = 1 + + , = 63 e = 1. Observamos que o trabalho recente de Wang, Lin e Pryadko descreveu exemplos de códigos baseados em grupos intimamente relacionados aos códigos considerados aqui. Alguns A B A B A x 43 x 37 B x 59 x 31 ℓ m