É um equivalente de computação quântica de uma porta lógica. Uma porta lógica quântica recebe como entrada N qubits e transforma seus estados em novos estados, isso é diferente de portas lógicas clássicas que podem potencialmente ter um número diferente de valores de entrada e saída. Porta lógica quântica são representadas por matrizes complexas que transformam os estados dos qubits, que podem ser vistos como pontos no espaço multidimensional, veja a esfera de Bloch. Uma porta operando em N qubits é representada por uma matriz 2^Nx2^N. Essas matrizes precisam ser unitárias. Operações realizadas por portaz lógicas quânticas podem ser invertidas, diferentemente das lógicas.
Normalmente representamos um único estado de qubit com um vetor de coluna |a> = a0 * |0> + a1 * |1> => [a0, a1], consulte a notação bra-ket. Vários estados de qubit são representados como um produto tensorial do estado individual: |a,b> = [a0 * b0, a0 * b1, a1 * b0, a1 * b1]. A aplicação de uma porta quântica G a tal vetor qubit q é realizada por multiplicação de matriz simples: G * v.
Aqui estão algumas das portas quânticas comuns:
IdentidadeAtua em 1 qubit, deixa o estado do qubit inalterado.
1 0 0 1Portas Pauli
Atua em 1 qubit. Existem três tipos de portas Pauli: X, Y e Z, cada uma gira o qubit em torno do respectivo eixo em pi radianos.
A porta X é:
0 1 1 0
A porta Y é:
0 -i i 0
A porta Z é:
1 0 0 -1NOT
A porta NOT é idêntica à porta X de Pauli. Ela atua em 1 qubit e alterna probabilidades de medir 0 vs 1.
CNOTNÃO controlado, atua em 2 qubits. Executa NÃO no segundo qubit se o primeiro qubit for |1>:
1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
TODO
Impulsionado por nada. Todo conteúdo é disponível sob CC0 1.0 domínio público. Envie comentários e correções para Mr. Unix em victor_hermian@disroot.org.