Pular para o conteúdo principal
Este projeto está em fase beta. Encontrou um bug? Abra uma issue no GitHub. Tem uma pergunta ou ideia? Pergunte no Discussions — adoraríamos receber seu feedback!
Como está a qualidade da tradução nesta página?

Dressed boxes

Os mecanismos físicos de ruído que ocorrem durante a execução de circuitos quânticos são contextuais. Ao aplicar operações simultaneamente em conjuntos disjuntos de qubits, o perfil de ruído da operação como um todo pode diferir dos perfis de ruído das partes constituintes se elas fossem aplicadas isoladamente. Da mesma forma, para operações que idealmente comutam nos mesmos qubits, o perfil de ruído associado às operações individuais pode não comutar e pode ser totalmente diferente se a ordem das operações mudar. Portanto, os protocolos para suprimir, mitigar e corrigir ruído precisam conhecer o contexto em que ele surge.

O Samplomatic usa instruções de caixa (box) para raciocinar sobre conjuntos de operações do circuito que devem ser tratados como tendo um contexto de ruído estável, e usa anotações nas caixas para permitir que os usuários declarem e configurem essa intenção. Cada caixa é um escopo que possui um conjunto de qubits, as operações que atuam nesses qubits e uma lista de anotações. As anotações do Samplomatic especificam diretivas e dressings. As diretivas especificam o que fazer com a caixa, por exemplo, aplicar twirling na caixa. Os dressings são grupos de portas parametrizadas a serem adicionadas ao lado esquerdo ou direito da caixa, por exemplo, uma camada de portas de um qubit. As portas de um dressing incorporam portas da caixa e operações necessárias para executar as diretivas, como as seguintes:

  • Portas na caixa que são compatíveis com as portas parametrizadas e estão do mesmo lado que elas.

  • Portas de twirling amostradas de um conjunto para randomizar a caixa.

  • Portas de injeção de ruído amostradas de um mapa de Pauli Lindblad.

  • Portas de mudança de base especificadas pelo usuário.

Observe que as diretivas podem alterar os dressings de outras caixas.

Exemplo​

Suponha que queremos aplicar twirling ao circuito a seguir, adicionando portas de Pauli aleatórias antes e depois das portas emaranhadoras paralelas, que não alteram o conteúdo lógico do circuito, mas alteram o modelo de ruído efetivo.

../_images/undressed_pauli.drawio.png

Circuito para aplicar Pauli twirling.

Isso é feito estratificando o circuito em caixas e adicionando anotações de twirl.

../_images/dressed_pauli_twirl.drawio.png

Circuito com diretivas de Pauli twirling. O símbolo @ é usado para especificar diretivas; por padrão, o dressing fica à esquerda.

Cada dressed box contém uma camada de portas de um qubit e uma camada de portas emaranhadoras de dois qubits em pares disjuntos de qubits. A camada de portas emaranhadoras é cercada por camadas de portas de Pauli aleatórias de tal forma que a ação lógica da caixa permanece inalterada. Essas camadas de Pauli aleatórias são virtuais, da mesma forma que uma porta Z virtual. Elas não adicionam operações ao circuito, mas atuam como uma diretiva para alterar como as portas de um qubit adjacentes são implementadas.

../_images/pauli_twirl.drawio.png

Circuito com dressings e portas das diretivas. Os dressings são as caixas tracejadas. As camadas de Pauli ligadas por setas se cancelam mutuamente. A última camada de Pauli será aplicada como inversões de bit (bit flips) nos resultados de medição.

A camada de Pauli aleatória entre as portas emaranhadoras e as portas de um qubit é composta na camada de portas de um qubit e implementada em seu dressing. A outra camada de Pauli aleatória será composta no dressing da próxima dressed box.

Em resumo, a diretiva de twirl à esquerda (ou à direita) implementa um Pauli aleatório no dressing desta caixa e aplica o Pauli que o desfaz no dressing da próxima (ou da anterior) caixa. As diretivas de injeção de ruído e de mudança de base são análogas.

Randomização de circuitos com portas virtuais​

O Samplomatic usa o framework de portas virtuais para raciocinar sobre circuitos com dressed boxes. Conceitualmente, e conforme implementado em uma instância de Samplex produzida pelo processo build(), as portas virtuais são geradas na fronteira da caixa oposta ao seu dressing. Essas portas virtuais são movidas pelo circuito de uma maneira prescrita e precisam ser compostas em um dressing. Se todas as portas virtuais puderem ser compostas em um dressing, as randomizações do circuito podem ser construídas proceduralmente.

../_images/dressed_box.drawio.png

Circuito com diretivas de twirl, mudança de base e injeção de ruído.

As portas no lado do dressing que são compatíveis com a parametrização de template do dressing podem ser compostas nele, reduzindo o número de portas físicas. Elas são chamadas de portas easy. O restante da caixa é chamado de hard e é implementado como está.

../_images/dressed_box_uncollected.drawio.png

Exemplos de circuitos com portas virtuais pendentes. As portas virtuais no lado oposto do dressing não têm onde ser implementadas.

../_images/dressed_box_collected.drawio.png

Exemplos de circuitos em que todas as portas virtuais são compostas em dressings. As medições recebem portas de Pauli compostas considerando a inversão de bit que elas induzem.

../_images/dressed_box_mixed_collect.drawio.png

Exemplo complexo em que todas as portas virtuais são coletadas. As portas virtuais geradas por uma caixa podem ser compostas em dressings diferentes.

Isso permite construções em que as dressed boxes não precisam ter a mesma largura.