thumb|right|upright=2|Portas lógicas quânticas comuns por nome (incluindo abreviatura), forma(s) de circuito e as matrizes unitárias correspondentes
Em computação quântica e especificamente no modelo de circuito de computação, uma porta lógica quântica (ou simplesmente porta quântica) é um circuito quântico básico que opera em um pequeno número de qubits. Portas lógicas quânticas são os blocos de construção de circuitos quânticos, assim como portas lógicas clássicas são para circuitos digitais convencionais.
Ao contrário de muitas portas lógicas clássicas, as portas lógicas quânticas são reversíveis. É possível realizar computação clássica usando apenas portas reversíveis. Por exemplo, a porta de Toffoli reversível pode implementar todas as funções booleanas, muitas vezes ao custo de ter que usar bits ancilla. A porta de Toffoli tem um equivalente quântico direto, mostrando que circuitos quânticos podem realizar todas as operações realizadas por circuitos clássicos.
Portas quânticas são operadores unitários e são descritas como matrizes unitárias em relação a alguma base ortonormal base. Normalmente a base computacional é usada, o que, a menos que comparando com algo, significa apenas que para um sistema quântico de nível d (como um qubit, um registrador quântico, ou qutrits e qudits) os vetores da base ortonormal são rotulados ou usa-se a notação binária.
História A notação atual para portas quânticas foi desenvolvida por muitos dos fundadores da ciência da informação quântica, incluindo Adriano Barenco, Charles Bennett, Richard Cleve, David P. DiVincenzo, Norman Margolus, Peter Shor, Tycho Sleator, John A. Smolin e Harald Weinfurter, com base na notação introduzida por Richard Feynman em 1986.
Representação thumb|upright=0.8|Estados de um único qubit que não são emaranhados e não possuem fase global podem ser representados como pontos na superfície da esfera de Bloch, escritos como Rotações em torno dos eixos da esfera de Bloch são representadas pelas portas de operador de rotação.
Portas lógicas quânticas são representadas por matrizes unitárias. Uma porta que atua em qubits (um registrador) é representada por uma matriz unitária , e o conjunto de todas essas portas com a operação de grupo de multiplicação de matrizes é o grupo unitário U(2n). Os estados quânticos sobre os quais as portas atuam são vetores unitários em dimensões complexas, com a norma euclidiana complexa (a 2-norma). Os vetores de base (às vezes chamados de autoestados) são os resultados possíveis se o estado dos qubits for medido, e um estado quântico é uma combinação linear desses resultados. As portas quânticas mais comuns operam em espaços vetoriais de um ou dois qubits, assim como as portas lógicas clássicas comuns operam em um ou dois bits.
Mesmo que as portas lógicas quânticas pertençam a grupos de simetria contínua, o hardware real é inexato e, portanto, limitado em precisão. A aplicação de portas tipicamente introduz erros, e as fidelidades dos estados quânticos diminuem ao longo do tempo. Se a correção de erros for usada, as portas utilizáveis são ainda mais restritas a um conjunto finito. Mais adiante neste artigo, isso é ignorado, pois o foco está nas propriedades ideais das portas quânticas.
Estados quânticos são tipicamente representados por "kets", a partir de uma notação conhecida como bra-ket.
A representação vetorial de um único qubit é
Aqui, e são as amplitudes de probabilidade complexas do qubit. Esses valores determinam a probabilidade de medir um 0 ou um 1, ao medir o estado do qubit. Veja medição abaixo para detalhes.
O valor zero é representado pelo ket e o valor um é representado pelo ket
O produto tensorial (ou produto de Kronecker) é usado para combinar estados quânticos. O estado combinado para um registrador de qubits é o produto tensorial dos qubits constituintes. O produto tensorial é denotado pelo símbolo
A representação vetorial de dois qubits é:
A ação da porta em um estado quântico específico é encontrada multiplicando o vetor , que representa o estado pela matriz que representa a porta. O resultado é um novo estado quântico
Relação com o operador de evolução temporal A equação de Schrödinger descreve como sistemas quânticos que não são observados evoluem ao longo do tempo, e é Quando o sistema está em um ambiente estável, de modo que tem um Hamiltoniano constante, a solução para esta equação é Se o tempo é sempre o mesmo, pode ser omitido por simplicidade, e a maneira como os estados quânticos evoluem pode ser descrita como assim como na seção acima.
Ou seja, uma porta quântica é como um sistema quântico que não é observado evolui durante algum tempo específico, ou equivalentemente, uma porta é o operador unitário de evolução temporal agindo em um estado quântico por uma duração específica.
Exemplos notáveis
Existe um número infinitamente incontável de portas. Algumas delas foram nomeadas por vários autores, e abaixo seguem algumas das mais frequentemente usadas na literatura.
Porta identidade A porta identidade é a matriz identidade, geralmente escrita como I, e é definida para um único qubit como
onde I é independente da base e não modifica o estado quântico. A porta identidade é mais útil ao descrever matematicamente o resultado de várias operações de porta ou ao discutir circuitos multi-qubit.
Portas de Pauli (X, Y, Z)
As portas de Pauli são as três matrizes de Pauli e atuam em um único qubit. As Pauli X, Y e Z equivalem, respectivamente, a uma rotação em torno dos eixos x, y e z da esfera de Bloch por radianos.
A porta Pauli-X é o equivalente quântico da porta NOT para computadores clássicos em relação à base padrão que distingue o eixo z na esfera de Bloch. Às vezes é chamada de inversão de bit, pois mapeia para e para . Similarmente, a Pauli-Y mapeia para e para . Pauli Z deixa o estado base inalterado e mapeia para Devido a essa natureza, Pauli Z é às vezes chamada de inversão de fase.
Essas matrizes são geralmente representadas como
As matrizes de Pauli são involutórias, o que significa que o quadrado de uma matriz de Pauli é a matriz identidade.
As matrizes de Pauli também anticomutam, por exemplo
A exponencial de matriz de uma matriz de Pauli é uma porta de rotação, frequentemente escrita como
Portas controladas
upright=0.4|thumb|Representação de circuito da porta controlada-U Portas controladas atuam em 2 ou mais qubits, onde um ou mais qubits atuam como controle para alguma operação. Por exemplo, a porta NOT controlada (ou CNOT ou CX) atua em 2 qubits e realiza a operação NOT no segundo qubit apenas quando o primeiro qubit é e caso contrário o deixa inalterado. Com relação à base é representada pela matriz hermitiana unitária:
A porta CNOT (ou Pauli-X controlada) pode ser descrita como a porta que mapeia os estados base , onde é XOR.
A CNOT pode ser expressa na base de Pauli como:
Sendo um operador unitário hermitiano, a CNOT tem a propriedade de que e , e é involutória.
Mais geralmente, se U é uma porta que opera em um único qubit com representação matricial
então a porta controlada-U é uma porta que opera em dois qubits de tal forma que o primeiro qubit serve como controle. Ela mapeia os estados base como segue.
A matriz que representa a U controlada é
Quando U é um dos operadores de Pauli, X, Y, Z, os respectivos termos "controlada-X", "controlada-Y" ou "controlada-Z" são às vezes usados. Às vezes isso é abreviado para CX, CY e CZ.
Em geral, qualquer porta unitária de um único qubit pode ser expressa como , onde H é uma matriz hermitiana, e então a U controlada é
O controle pode ser estendido para portas com número arbitrário de qubits e funções em linguagens de programação. Funções podem ser condicionadas em estados de superposição.
Controle clássico
thumb|upright=0.8|Exemplo: O qubit é medido, e o resultado desta medição é um valor booleano, que é consumido pelo computador clássico. Se medir 1, então o computador clássico instrui o computador quântico a aplicar a porta U em .Em diagramas de circuito, linhas simples são qubits, e linhas duplas são bits.
Portas também podem ser controladas por lógica clássica. Um computador quântico é controlado por um computador clássico e se comporta como um coprocessador que recebe instruções do computador clássico sobre quais portas executar em quais qubits. O controle clássico é simplesmente a inclusão, ou omissão, de portas na sequência de instruções para o computador quântico. Realizar medições no meio de um circuito quântico, em oposição ao final dele, é difícil e tecnicamente desafiador devido a problemas de temporização e decoerência. Por causa disso, nem todos os computadores quânticos suportam essas instruções condicionais clássicas, onde dados quânticos são convertidos em bits, que então controlam o fluxo do programa.
Portas de deslocamento de fase O deslocamento de fase é uma família de portas de um único qubit que mapeiam os estados base e . A probabilidade de medir um ou permanece inalterada após aplicar esta porta, no entanto ela modifica a fase do estado quântico. Isso é equivalente a traçar um círculo horizontal (uma linha de latitude constante), ou uma rotação em torno do eixo z na esfera de Bloch por radianos. A porta de deslocamento de fase é representada pela matriz:
onde é o deslocamento de fase com o período . Alguns exemplos comuns são a porta T onde (historicamente conhecida como a porta ), a porta de fase (também conhecida como porta S, escrita como S, embora S seja às vezes usada para portas SWAP) onde e a porta Pauli-Z onde
As portas de deslocamento de fase estão relacionadas entre si da seguinte forma:
Observe que a porta de fase não é hermitiana (exceto para todos ). Essas portas são diferentes de seus conjugados hermitianos: . As duas portas adjuntas (ou transposta conjugada) e às vezes são incluídas em conjuntos de instruções. Qiskit documentação online. cQASM documentação online.
Porta de Hadamard A porta de Hadamard ou Walsh-Hadamard, nomeada em homenagem a Jacques Hadamard () e Joseph L. Walsh, atua em um único qubit. Ela mapeia os estados base e (cria um estado de superposição igual se for dado um estado da base computacional). Os dois estados e são às vezes escritos como e respectivamente. A porta de Hadamard realiza uma rotação de em torno do eixo na esfera de Bloch e, portanto, é involutória. É representada pela matriz de Hadamard: upright=0.4|thumb|Representação de circuito da porta de Hadamard
Se a porta de Hadamard hermitiana (portanto ) é usada para realizar uma mudança de base, ela inverte e . Por exemplo, e
Porta SWAP
upright=0.4|thumb|Representação de circuito da porta SWAP A porta SWAP troca dois qubits. Com relação à base , , , , é representada pela matriz
A porta SWAP pode ser decomposta na forma de soma:
Porta de Toffoli (CCNOT)
upright=0.4|thumb|Representação de circuito da porta de Toffoli A porta de Toffoli, nomeada em homenagem a Tommaso Toffoli e também chamada de porta CCNOT ou porta de Deutsch , é uma porta de 3 bits que é universal para computação clássica, mas não para computação quântica. A porta quântica de Toffoli é a mesma porta, definida para 3 qubits. Se nos limitarmos a aceitar apenas qubits de entrada que são e então se os dois primeiros bits estiverem no estado ela aplica uma Pauli-X (ou NOT) no terceiro bit, caso contrário não faz nada. É um exemplo de porta CC-U (Unidade controlada-controlada). Como é o análogo quântico de uma porta clássica, é completamente especificada por sua tabela verdade. A porta de Toffoli é universal quando combinada com a porta de Hadamard de um único qubit.
Tabela verdade Forma matricial Entrada Saída 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0
A porta de Toffoli está relacionada às operações clássicas AND () e XOR (), pois realiza o mapeamento em estados na base computacional.
A porta de Toffoli pode ser expressa usando matrizes de Pauli como
Portas quânticas universais