(Eu escrevi uma introdução à computação quântica encontrada aqui. Se você é novo no campo, será um lugar melhor para começar.)
Se você quer entrar na computação quântica, não há como contorná-la: você terá que dominar o conceito nebuloso da porta quântica. Como tudo na computação quântica, para não mencionar a mecânica quântica, os portões quânticos estão envoltos em uma névoa desconhecida de jargão e matemática matricial que reflete o mistério quântico. Meu objetivo neste post é desvendar algumas camadas desse mistério. Mas vou poupar-te o suspense: ninguém se pode livrar completamente dele. Pelo menos, não em 2018. Tudo o que podemos fazer hoje é revelar as notáveis semelhanças e diferenças alarmantes entre os portões clássicos e os portões quânticos, e explorar as implicações para o futuro próximo e distante da computação.
Striking similarities
If nothing else, classical logic gates and quantum logic gates are both logic gates. Então vamos começar por aí. Uma porta lógica, clássica ou quântica, é qualquer estrutura física ou sistema que pega um conjunto de entradas binárias (seja 0s e 1s, maçãs e laranjas, elétrons spin-up e elétrons spin-down, você a nomeia) e cospe uma única saída binária: um 1, um laranja, um elétron spin-up, ou mesmo um dos dois estados de superposição. O que governa a saída é uma função booleana. Isso soa a fantasia e presságio, mas confie em mim, não é. Você pode pensar em uma função booleana como nada mais do que uma regra para responder a perguntas de Sim/Não. É tão simples quanto isso. Os portões são então combinados em circuitos, e os circuitos em CPUs ou outros componentes computacionais. Isto é verdade se estamos falando do Babbage’s Difference Engine, ENIAC, campeão aposentado de xadrez Deep Blue, ou o mais recente computador quântico de preenchimento de quartos, de arrefecimento de ossos, de cabeça de linha de produção.
Diferenças alarmantes
Portões clássicos operam em bits clássicos, enquanto portões quânticos operam em bits quânticos (qubits). Isto significa que os portões quânticos podem aproveitar dois aspectos chave da mecânica quântica que estão totalmente fora do alcance dos portões clássicos: superposição e emaranhamento. Estes são os dois conceitos que você ouvirá mais frequentemente no contexto da computação quântica, e aqui está o porquê. Mas há um conceito menos conhecido que talvez seja igualmente importante: a reversibilidade. Em poucas palavras, os portões quânticos são reversíveis. Você aprenderá muito sobre reversibilidade à medida que for se aprofundando na computação quântica, por isso vale a pena pesquisar a fundo. Por enquanto, você pode pensar desta forma – todos os portões quânticos vêm com um botão de desfazer, enquanto muitos portões clássicos não vêm, pelo menos ainda não. Isto significa que, pelo menos em princípio, os portões quânticos nunca perdem informação. Qubits que estão enredados em seu caminho para o portão quântico permanecem enredados na saída, mantendo suas informações seladas com segurança durante toda a transição. Muitos dos portões clássicos encontrados em computadores convencionais, por outro lado, perdem informações e, portanto, não conseguem rastrear seus passos. Curiosamente, essa informação não é finalmente perdida para o universo, mas sim infiltra-se no seu quarto ou no seu colo como o calor do seu computador clássico.
V é para vector
Não podemos falar de portões quânticos sem falar de matrizes, e não podemos falar de matrizes sem falar de vectores. Então vamos continuar com isto. Na linguagem da mecânica quântica e computação, os vetores são representados em um pacote reconhecidamente bastante estranho chamado ket, que vem da segunda metade da palavra braquete. E eles parecem a parte. Aqui está um vector de ket: |u>, onde u representa os valores no vector. Para começar, vamos usar dois ket, |0> e |1>, que vão ficar para qubits sob a forma de electrões nos estados spin-up (|0>) e spin-down (|1>). Estes vetores podem abranger qualquer número de números, por assim dizer. Mas no caso de um estado binário, como um qubit de electrões spin up/down, eles têm apenas dois. Assim, em vez de parecerem vectores de colunas em torre, eles apenas pareciam números empilhados em duas alturas. Aqui está como |0> parece:
/ 1 \
\ 0 /
Agora, o que os portões/matrices fazem é transformar estes estados, estes vectores, estes kets, estas colunas de números, em novíssimos. Por exemplo, um portão pode transformar um estado superior (|0>) em um estado inferior (|1>), como por magia:
/ 1 \ → / 0 \
\ 0 / \ 1 /
M é para matriz
Esta transformação de um vector em outro, ocorre através da magia mal compreendida da multiplicação matricial, que é completamente diferente do tipo de multiplicação que todos nós aprendemos na escola pré-quântica. No entanto, uma vez que se apanha o jeito deste tipo de matemática, é extremamente gratificante, porque se pode aplicá-la repetidamente a inúmeras equações de outra forma incompreensíveis que deixam os não iniciados estupefactos. Se você precisa de mais motivação, basta lembrar que foi através da linguagem da matemática matricial que Heisenberg desbloqueou os segredos do princípio da incerteza abrangente.
Tudo o mesmo, se você não está familiarizado com este combustível a jato de uma ferramenta matemática, seus olhos vão brilhar se eu começar a preencher este post com grandes matrizes quadradas de números neste ponto. E nós não podemos deixar isso acontecer. Então vamos esperar mais alguns parágrafos para a matemática matricial e notação. É suficiente dizer, por enquanto, que geralmente usamos uma matriz para substituir uma porta quântica. O tamanho e o fator de medo da matriz dependerá do número de qubits em que ela estiver operando. Se houver apenas um qubit para transformar, a matriz será agradável e simples, apenas uma matriz 2 x 2 com quatro elementos. Mas o tamanho dos balões da matriz com duas, três ou mais qubits. Isto porque uma equação decididamente exponencial, que vale a pena memorizar, conduz ao tamanho da matriz (e assim a sofisticação da porta quântica):
2^n x 2^n = the total number of matrix elements
Aqui, n é o número de qubits em que a porta quântica está operando. Como você pode ver, este número atravessa o telhado conforme aumenta o número de qubits (n). Com uma qubit, é 4. Com duas, é 16. Com três, é 64. Com quatro, é… sem esperança. Então, por enquanto, vou me ater a um qubit, e tem o Pauli escrito por todo lado.
Os portões Pauli
Os portões Pauli têm o nome de Wolfgang Pauli, que não só tem um nome legal, mas conseguiu imortalizar-se em dois dos princípios mais conhecidos da física moderna: o célebre princípio de exclusão Pauli e o temido efeito Pauli.
Os portões Pauli são baseados nas mais conhecidas matrizes Pauli (também conhecidas como matrizes Pauli spin) que são incrivelmente úteis para o cálculo de mudanças no spin de um único elétron. Uma vez que o spin de electrões é a propriedade favorita para usar para um qubit nos portões quânticos de hoje, as matrizes e portões Pauli são mesmo no nosso beco. Em qualquer caso, existe essencialmente um portão/matriz Pauli para cada eixo no espaço (X, Y e Z).
Então você pode imaginar cada um deles empunhando o poder de mudar a direção do giro de um elétron ao longo de seu eixo correspondente no espaço 3D. Claro que, como tudo no mundo quântico, há um senão: este não é o nosso espaço 3D comum, porque inclui uma dimensão imaginária. Mas deixemos isso deslizar por agora, devemos?
Mercilmente, os portões de Pauli são praticamente os portões quânticos mais simples que alguma vez irá encontrar. (Pelo menos os portões X e Z são. O Y é um pouco estranho.) Portanto, mesmo que você nunca tenha visto uma matriz em sua vida, Pauli os torna manejáveis. Os portões dele agem sobre um, e apenas um, qubit de cada vez. Isto traduz-se em simples, 2 x 2 matrizes com apenas 4 elementos por peça.
O Pauli X-gate
O Pauli X-gate é um sonho tornado realidade para aqueles que temem a matemática matricial. Sem números imaginários. Sem sinais de menos. E uma operação simples: a negação. Isto é apenas natural, porque o Pauli X-gate corresponde a um clássico NOT gate. Por esta razão, a porta X é frequentemente chamada também de porta quântica NOT.
Num cenário real, a porta X geralmente transforma o estado de spin-up |0> de um electrão num estado de spin-down |1> e vice-versa.
|0> --> |1> OR |1> --> |0>
Um “X” maiúsculo muitas vezes representa a porta X de Pauli ou a própria matriz. Aqui está como X se parece:
/ 0 1 \
\ 1 0 /
Em termos de notação apropriada, aplicar uma porta quântica a um qubit é uma questão de multiplicar um vetor ket por uma matriz. Neste caso, estamos a multiplicar o vector ket spin-up |0> pelo Pauli X-gate ou matriz X. Eis o que X|0> se parece:
/ 0 1 \ /1\
\ 1 0 / \0/
Nota que se coloca sempre a matriz à esquerda do ket. Como já devem ter ouvido, a multiplicação da matriz, ao contrário da multiplicação normal, não comuta, o que vai contra tudo o que nos foi ensinado na escola. É como se 2 x 4 nem sempre fosse igual a 4 x 2. Mas é assim que a multiplicação matricial funciona, e uma vez que você pegue o jeito, você verá o porquê. Entretanto, tendo em mente a ordenação de todos os elementos, a notação completa para aplicar o quantum NOT-gate ao nosso qubit (neste caso o estado de spin-up de um elétron), parece assim:
X|0> = / 0 1 \ /1\ = /0\ = |1>
\ 1 0 / \0/ \1/
Aplicada a um vetor spin-down, a notação completa parece assim:
X|1> = / 0 1 \ /0\ = /1\ = |0>
\ 1 0 / \1/ \1/ \2>
Apesar de toda a notação estrangeira, em ambos os casos o que está realmente a acontecer aqui é que um qubit na forma de um único electrão está a passar por uma porta quântica e a sair pelo outro lado com o seu spin invertido completamente.
Os portões Pauli Y e Z
Eu poupo-te a matemática com estes dois. Mas você deve ao menos saber sobre eles de passagem.
Dos três portões Pauli, o Pauli Y-gate é o elegante. É muito parecido com o portão X, mas com um i (sim, a raiz quadrada insana de -1) no lugar do normal 1, e um sinal negativo na parte superior direita. Aqui está como Y se parece:
/ 0 -i \
\ i 0 /
O Pauli Z-gate é muito mais fácil de seguir. Parece uma espécie de imagem espelho da porta X acima, mas com um sinal negativo atirado para a mistura. Aqui está como Z se parece:
/ 1 0 \
\ 0 -1 /
O Y-gate e o Z-gate também mudam o giro do nosso electrão qubit. Mas eu provavelmente precisaria mergulhar nos mistérios esotéricos da esfera Bloch para realmente explicar como, e eu tenho outro portal para passar no momento…
O portão Hadamard
Embora os portões Pauli sejam muito parecidos com os portões lógicos clássicos em alguns aspectos, o portão Hadamard, ou H-gate, é uma besta quântica de boa-fé. Ele aparece em todo lugar na computação quântica, e por uma boa razão. O portão Hadamard tem a capacidade quântica característica de transformar um estado quântico definido, como o spin-up, em um estado obscuro, como uma sobreposição de ambos spin-up e spin-down ao mesmo tempo.
Após enviar um electrão spin-up ou spin-down através de uma porta H, ele tornar-se-á como um cêntimo de pé na sua extremidade, com probabilidades precisas de 50/50 de acabar em cabeça (spin-up) ou cauda (spin-down) quando tombado e medido. Este H-gate é extremamente útil para realizar o primeiro cálculo em qualquer programa quântico, porque ele transforma os portões quânticos pré-definidos, ou inicializados, em seu estado fluido natural, a fim de aproveitar todas as suas potências quânticas.
Outros portões quânticos
Existem vários outros portões quânticos que você está obrigado a encontrar. Muitos deles operam em várias qubits de cada vez, levando a matrizes 4×4 ou mesmo 8×8 com elementos de numeração complexa. Estes são bastante peludos se você ainda não tem algumas habilidades matrizes sérias debaixo da sua cintura. Portanto, vou poupar-lhe os detalhes.
Os portões principais que você vai querer conhecer são os que nós cobrimos mostrados no gráfico abaixo:
Você deve saber que existem outros portões, então aqui está uma lista rápida de alguns dos outros portões quânticos mais utilizados, apenas para que você possa ter uma idéia do jargão:
- Toffoli gateFredkin gate
- Deutsch gate
- Swap gate (e raiz quadrada da porta de troca)
- NOT-gate square root
- ControlledNOT gate (C-NOT) e outros portões controlados
Existem muitos mais. Mas não se deixe enganar pelos números. Assim como você pode realizar qualquer cálculo clássico com uma combinação de NOT + OR = NOR gates ou AND + NOT= NAND gates, você pode reduzir a lista de portões quânticos a um simples conjunto de portões quânticos universais. Mas vamos guardar essa escritura para outro dia.