Desmistificando os princípios da computação quântica

Desmistificando os princípios da computação quântica
“Acho que posso dizer com segurança que ninguém entende a mecânica quântica.” – Richard Feynman

O tema da computação quântica sempre fascinou escritores e jornalistas de tecnologia. Seu potencial computacional e complexidade conferiam-lhe uma certa aura mística. Muitas vezes, artigos de destaque e infográficos descrevem detalhadamente as diversas perspectivas desta indústria, mal abordando sua aplicação prática: isso pode enganar o leitor menos atento.

Artigos científicos populares omitem descrições de sistemas quânticos e fazem afirmações como:

Um bit normal pode ser 1 ou 0, mas um qubit pode ser 1 e 0 ao mesmo tempo.

Se você tiver muita sorte (o que não tenho certeza), será informado de que:

O qubit está em uma superposição entre “1” e “0”.

Nenhuma destas explicações parece plausível, uma vez que estamos a tentar formular um fenómeno de mecânica quântica utilizando uma linguagem desenvolvida num mundo muito tradicional. Para explicar claramente os princípios da computação quântica, é necessário utilizar outra linguagem - a matemática. 

Neste tutorial, abordarei as ferramentas matemáticas necessárias para modelar e compreender sistemas de computação quântica, bem como ilustrar e aplicar a lógica da computação quântica. Além disso, darei um exemplo de algoritmo quântico e direi qual é sua vantagem em relação a um computador tradicional.

Farei o meu melhor para explicar tudo isso em linguagem clara, mas ainda espero que os leitores deste artigo tenham uma compreensão básica de álgebra linear e lógica digital (a álgebra linear é abordada aqui, sobre lógica digital - aqui). 

Primeiro, vamos examinar os princípios da lógica digital. Baseia-se na utilização de circuitos elétricos para a realização de cálculos. Para tornar a nossa descrição mais abstrata, vamos simplificar o estado do fio elétrico para “1” ou “0”, que corresponderá aos estados “ligado” ou “desligado”. Ao organizar os transistores em uma determinada sequência, criaremos os chamados elementos lógicos que pegam um ou mais valores de sinal de entrada e os convertem em um sinal de saída com base em certas regras da lógica booleana.

Desmistificando os princípios da computação quântica

Portas lógicas comuns e suas tabelas de estados

Com base nas cadeias de tais elementos básicos, podem ser criados elementos mais complexos e, com base nas cadeias de elementos mais complexos, podemos, em última análise, com um grande grau de abstração, esperar obter um análogo do processador central.

Como mencionei anteriormente, precisamos de uma maneira de representar matematicamente a lógica digital. Primeiro, vamos apresentar a lógica matemática tradicional. Usando álgebra linear, os bits clássicos com os valores "1" e "0" podem ser representados como dois vetores coluna:
Desmistificando os princípios da computação quântica
onde estão os números à esquerda Notação de Dirac vetor. Ao representar nossos bits dessa forma, podemos modelar operações lógicas nos bits usando transformações vetoriais. Atenção: embora o uso de dois bits em portas lógicas possa realizar muitas operações (AND, NOT, XOR, etc.), ao usar um bit, apenas quatro operações podem ser realizadas: conversão de identidade, negação, cálculo da constante “0” e cálculo da constante “1”. Com uma conversão de identidade, o bit permanece inalterado, com uma negação, o valor do bit muda para o oposto (de “0” para “1” ou de “1” para “0”), e o cálculo da constante “1” ou “0” define o bit como “1” ou “0”, independentemente de seu valor anterior.
Desmistificando os princípios da computação quântica

Dados de identificação: Transformação de identidade
Negação Negação
Constante-0 Cálculo da constante "0"
Constante-1 Cálculo da constante "1"

Com base em nossa nova representação proposta de um bit, é bastante fácil realizar operações no bit correspondente usando uma transformação vetorial:

Desmistificando os princípios da computação quântica

Antes de prosseguirmos, vamos dar uma olhada no conceito cálculos reversíveis, o que implica simplesmente que para garantir a reversibilidade de uma operação ou elemento lógico, é necessário determinar uma lista de valores de sinais de entrada com base nos sinais de saída e nos nomes das operações utilizadas. Assim, podemos concluir que a transformação e negação da identidade são reversíveis, mas as operações de cálculo das constantes “1” e “0” não o são. Graças a unitariedade mecânica quântica, os computadores quânticos usam exclusivamente operações reversíveis, e é nisso que vamos nos concentrar. A seguir, convertemos elementos irreversíveis em elementos reversíveis para permitir que sejam usados ​​por um computador quântico.

Com produto tensorial bits individuais podem ser representados por muitos bits:
Desmistificando os princípios da computação quântica
Agora que temos quase todos os conceitos matemáticos necessários, vamos passar para a nossa primeira porta lógica quântica. Este é o operador NÃO, ou Not controlado (NOT), que é de grande importância na computação reversível e quântica. O elemento CNOT se aplica a dois bits e retorna dois bits. O primeiro bit é designado como bit de “controle” e o segundo como bit de “controle”. Se o bit de controle estiver definido como “1”, o bit de controle altera seu valor; Se o bit de controle estiver definido como "0", o bit de controle não será alterado.
Desmistificando os princípios da computação quântica
Este operador pode ser representado como o seguinte vetor de transformação:
Desmistificando os princípios da computação quântica
Para demonstrar tudo o que abordamos até agora, mostrarei como usar o elemento CNOT em vários bits:
Desmistificando os princípios da computação quântica
Para resumir o que já foi dito: no primeiro exemplo decompomos |10⟩ em partes do seu produto tensorial e usamos a matriz CNOT para obter um novo estado correspondente do produto; então fatoramos para |11⟩ de acordo com a tabela de valores CNOT fornecida anteriormente.

Assim, lembramos de todas as regras matemáticas que nos ajudarão a entender a computação tradicional e os bits comuns, e podemos finalmente passar para a computação quântica moderna e os qubits.

Se você leu até aqui, tenho boas notícias para você: qubits podem ser facilmente expressos matematicamente. Em geral, se um bit clássico (cbit) puder ser definido como |1⟩ ou |0⟩, o qubit está simplesmente em superposição e pode ser |0⟩ e |1⟩ antes da medição. Após a medição, ele se transforma em |0⟩ ou |1⟩. Em outras palavras, um qubit pode ser representado como uma combinação linear de |0⟩ e |1⟩ de acordo com a fórmula abaixo:
Desmistificando os princípios da computação quântica
onde um₀ и a₁ representam, respectivamente, as amplitudes |0⟩ e |1⟩. Estas podem ser pensadas como "probabilidades quânticas", que representam a probabilidade de um qubit entrar em colapso em um dos estados após ser medido, uma vez que na mecânica quântica um objeto em superposição entra em colapso em um dos estados após ser fixado. Vamos expandir esta expressão e obter o seguinte:
Desmistificando os princípios da computação quântica
Para simplificar minha explicação, esta é a representação que utilizarei neste artigo.

Para este qubit, a chance de cair para o valor um₀ após a medição é igual a |a₀|², e a chance de cair para o valor a₁ é igual a |a₁|². Por exemplo, para o seguinte qubit:
Desmistificando os princípios da computação quântica
a chance de cair em “1” é igual a |1/ √2|², ou ½, ou seja, 50/50.

Como no sistema clássico todas as probabilidades devem somar um (para uma distribuição de probabilidade completa), podemos concluir que os quadrados dos valores absolutos das amplitudes |0⟩ e |1⟩ devem somar um. Com base nessas informações podemos formular a seguinte equação:
Desmistificando os princípios da computação quântica
Se você estiver familiarizado com trigonometria, notará que esta equação corresponde ao teorema de Pitágoras (a²+b²=c²), ou seja, podemos representar graficamente os possíveis estados do qubit como pontos no círculo unitário, a saber:
Desmistificando os princípios da computação quântica
Operadores e elementos lógicos são aplicados aos qubits da mesma forma que na situação com bits clássicos - com base em uma transformação de matriz. Todos os operadores de matriz invertíveis que lembramos até agora, em particular o CNOT, podem ser usados ​​para trabalhar com qubits. Esses operadores de matriz permitem usar cada uma das amplitudes do qubit sem medi-lo e reduzi-lo. Deixe-me dar um exemplo de uso do operador de negação em um qubit:
Desmistificando os princípios da computação quântica
Antes de continuarmos, deixe-me lembrá-lo que os valores de amplitude a₀ e a₁ são na verdade números complexos, então o estado de um qubit pode ser mapeado com mais precisão em uma esfera unitária tridimensional, também conhecida como Esfera de pulga:
Desmistificando os princípios da computação quântica
Porém, para simplificar a explicação, nos limitaremos aqui aos números reais.

Parece que é hora de discutir alguns elementos lógicos que fazem sentido apenas no contexto da computação quântica.

Um dos operadores mais importantes é o "elemento Hadamard": ele pega um bit no estado "0" ou "1" e o coloca na superposição apropriada com 50% de chance de entrar em colapso em "1" ou "0" após a medição. 
Desmistificando os princípios da computação quântica
Observe que há um número negativo no canto inferior direito do operador Hadamard. Isto se deve ao fato de que o resultado da aplicação do operador depende do valor do sinal de entrada: - |1⟩ ou |0⟩, e portanto o cálculo é reversível.

Outro ponto importante sobre o elemento Hadamard é a sua invertibilidade, o que significa que ele pode pegar um qubit na superposição apropriada e transformá-lo em |0⟩ ou |1⟩.
Desmistificando os princípios da computação quântica
Isto é muito importante porque nos dá a capacidade de transformar um estado quântico sem determinar o estado do qubit - e, consequentemente, sem colapsá-lo. Assim, podemos estruturar a computação quântica com base em um princípio determinístico e não probabilístico.

Os operadores quânticos contendo apenas números reais são o seu oposto, portanto, podemos representar o resultado da aplicação do operador a um qubit como uma transformação dentro do círculo unitário na forma de uma máquina de estados:
Desmistificando os princípios da computação quântica
Assim, o qubit, cujo estado é apresentado no diagrama acima, após a aplicação da operação Hadamard, é transformado no estado indicado pela seta correspondente. Da mesma forma, podemos construir outra máquina de estados que ilustrará a transformação de um qubit usando o operador de negação mostrado acima (também conhecido como operador de negação de Pauli, ou inversão de bits), conforme mostrado abaixo:
Desmistificando os princípios da computação quântica
Para realizar operações mais complexas em nosso qubit, podemos encadear vários operadores ou aplicar elementos várias vezes. Exemplo de transformação serial baseada em representações de circuitos quânticos é o seguinte:
Desmistificando os princípios da computação quântica
Ou seja, se começarmos com o bit |0⟩, aplicarmos uma inversão de bits, e depois uma operação Hadamard, depois outra inversão de bits, e novamente uma operação Hadamard, seguida por uma inversão final de bits, terminaremos com o vetor dado por on o lado direito da cadeia. Ao sobrepor diferentes máquinas de estados, podemos começar em |0⟩ e traçar as setas coloridas correspondentes a cada uma das transformações para entender como tudo funciona.
Desmistificando os princípios da computação quântica
Já que chegamos até aqui, é hora de considerar um dos tipos de algoritmos quânticos, a saber - Algoritmo Deutsch-Jozsa, e mostre sua vantagem sobre um computador clássico. Vale ressaltar que o algoritmo Deutsch-Jozsa é totalmente determinístico, ou seja, retorna a resposta correta 100% das vezes (ao contrário de muitos outros algoritmos quânticos baseados na definição probabilística de qubits).

Vamos imaginar que você tem uma caixa preta que contém uma função/operador em um bit (lembre-se - com um bit, apenas quatro operações podem ser realizadas: conversão de identidade, negação, avaliação da constante "0" e avaliação da constante "1 "). Qual é exatamente a função desempenhada na caixa? Você não sabe qual, mas pode passar por quantas variantes de valores de entrada quiser e avaliar os resultados de saída.

Desmistificando os princípios da computação quântica
Quantas entradas e saídas você teria que passar pela caixa preta para descobrir qual função está sendo usada? Pense nisso por um segundo.

No caso de um computador clássico, você precisará fazer 2 consultas para determinar a função a utilizar. Por exemplo, se a entrada “1” produz uma saída “0”, fica claro que é utilizada a função de cálculo da constante “0” ou a função de negação, após a qual será necessário alterar o valor do sinal de entrada para "0" e veja o que acontece na saída.

No caso de um computador quântico, também serão necessárias duas consultas, pois ainda serão necessários dois valores de saída diferentes para definir com precisão a função a ser aplicada ao valor de entrada. Porém, se você reformular um pouco a questão, verifica-se que os computadores quânticos ainda têm uma séria vantagem: se você quisesse saber se a função que está sendo usada é constante ou variável, os computadores quânticos teriam a vantagem.

A função usada na caixa é variável se diferentes valores do sinal de entrada produzirem resultados diferentes na saída (por exemplo, conversão de identidade e inversão de bits), e se o valor de saída não mudar independentemente do valor de entrada, então o função é constante (por exemplo, calculando uma constante "1" ou calculando a constante "0").

Usando um algoritmo quântico, você pode determinar se uma função em uma caixa preta é constante ou variável com base em apenas uma consulta. Mas antes de vermos como fazer isso em detalhes, precisamos encontrar uma maneira de estruturar cada uma dessas funções em um computador quântico. Como quaisquer operadores quânticos devem ser invertíveis, enfrentamos imediatamente um problema: as funções para calcular as constantes “1” e “0” não o são.

Uma solução comum usada na computação quântica é adicionar um qubit de saída extra que retorne qualquer valor de entrada que a função receba. 

Para: Depois:
Desmistificando os princípios da computação quântica Desmistificando os princípios da computação quântica

Desta forma, podemos determinar os valores de entrada apenas com base no valor de saída, e a função torna-se invertível. A estrutura dos circuitos quânticos cria a necessidade de um bit de entrada adicional. Para desenvolver os operadores correspondentes, assumiremos que o qubit de entrada adicional está definido como |0⟩.

Usando a mesma representação de circuito quântico que usamos anteriormente, vamos ver como cada um dos quatro elementos (transformação de identidade, negação, avaliação da constante “0” e avaliação da constante “1”) pode ser implementado usando operadores quânticos. 

Por exemplo, é assim que você pode implementar a função para calcular a constante “0”:

Cálculo da constante "0":
Desmistificando os princípios da computação quântica
Aqui não precisamos de operadores. O primeiro qubit de entrada (que assumimos ser |0⟩) retorna com o mesmo valor, e o segundo valor de entrada retorna sozinho - como de costume.

Com a função de cálculo da constante “1” a situação é um pouco diferente:

Cálculo da constante "1":
Desmistificando os princípios da computação quântica
Como assumimos que o primeiro qubit de entrada é sempre definido como |0⟩, o resultado da aplicação do operador de inversão de bits é que ele sempre produz um na saída. E como sempre, o segundo qubit fornece seu próprio valor na saída.

Ao exibir o operador de transformação de identidade, a tarefa começa a ficar mais complicada. Veja como fazer isso:

Transformação idêntica:
Desmistificando os princípios da computação quântica
O símbolo usado aqui denota o elemento CNOT: a linha superior indica o bit de controle e a linha inferior indica o bit de controle. Deixe-me lembrá-lo de que ao usar o operador CNOT, o valor do bit de controle muda se o bit de controle for igual a |1⟩, mas permanece inalterado se o bit de controle for igual a |0⟩. Como assumimos que o valor da linha superior é sempre igual a |0⟩, seu valor é sempre atribuído à linha inferior.

Procedemos de maneira semelhante com o operador de negação:

Negação:
Desmistificando os princípios da computação quântica
Simplesmente invertemos o bit no final da linha de saída.

Agora que já esclarecemos esse entendimento preliminar, vamos examinar as vantagens específicas de um computador quântico em relação a um computador tradicional quando se trata de determinar a constância ou variabilidade de uma função oculta em uma caixa preta usando apenas uma consulta.

Para resolver esse problema utilizando computação quântica em uma única solicitação, é necessário colocar os qubits de entrada em uma superposição antes de passá-los para a função, conforme mostrado abaixo:
Desmistificando os princípios da computação quântica
O elemento Hadamard é reaplicado ao resultado da função para quebrar os qubits da superposição e tornar o algoritmo determinístico. Iniciamos o sistema no estado |00⟩ e, por motivos que explicarei em breve, obtemos o resultado |11⟩ se a função aplicada for constante. Se a função dentro da caixa preta for variável, após a medição o sistema retornará o resultado |01⟩.

Para entender o restante do artigo, vejamos a ilustração que mostrei anteriormente:
Desmistificando os princípios da computação quântica
Usando o operador de inversão de bits e depois aplicando o elemento Hadamard a ambos os valores de entrada iguais a |0⟩, garantimos que eles sejam traduzidos na mesma superposição de |0⟩ e |1⟩, como segue:
Desmistificando os princípios da computação quântica
Usando o exemplo de passagem desse valor para uma função de caixa preta, é fácil demonstrar que ambas as funções de valor constante geram |11⟩.

Cálculo da constante "0":
Desmistificando os princípios da computação quântica
Da mesma forma, vemos que a função de cálculo da constante “1” também produz |11⟩ como saída, ou seja:

Cálculo da constante "1":
Desmistificando os princípios da computação quântica
Observe que a saída será |1⟩, já que -1² = 1.

Pelo mesmo princípio, podemos provar que ao usar ambas as funções variáveis, sempre obteremos |01⟩ na saída (desde que usemos o mesmo método), embora tudo seja um pouco mais complicado.

Transformação idêntica:
Desmistificando os princípios da computação quântica
Como o CNOT é um operador de dois qubits, ele não pode ser representado como uma máquina de estados simples e, portanto, é necessário definir dois sinais de saída com base no produto tensorial de ambos os qubits de entrada e na multiplicação pela matriz CNOT conforme descrito anteriormente:
Desmistificando os princípios da computação quântica
Com este método também podemos confirmar que o valor de saída |01⟩ é recebido se a função de negação estiver oculta na caixa preta:

Negação:
Desmistificando os princípios da computação quântica
Assim, acabamos de demonstrar uma situação em que um computador quântico é claramente mais eficiente que um computador convencional.

Qual será a próxima?

Sugiro que terminemos aqui. Já fizemos um ótimo trabalho. Se você entendeu tudo o que abordei, acho que agora tem um bom entendimento dos fundamentos da computação quântica e da lógica quântica e por que os algoritmos quânticos podem ser mais eficientes do que a computação tradicional em determinadas situações.

Minha descrição dificilmente pode ser chamada de um guia completo para computação quântica e algoritmos - em vez disso, é uma breve introdução à matemática e à notação, projetada para dissipar as ideias dos leitores sobre o assunto impostas por fontes científicas populares (sério, muitos realmente não conseguem entender a situação!). Não tive tempo de abordar muitos temas importantes, como emaranhado quântico de qubits, complexidade dos valores de amplitude |0⟩ e |1⟩ e o funcionamento de vários elementos da lógica quântica durante a transformação pela esfera de Bloch.

Se você deseja sistematizar e estruturar seu conhecimento sobre computadores quânticos, fortemente Eu recomendo que você leia "Uma introdução aos algoritmos quânticos" Emma Strubel: apesar da abundância de fórmulas matemáticas, este livro discute algoritmos quânticos com muito mais detalhes.

Fonte: habr.com

Adicionar um comentário