Como aprender Física Quântica programando um Computador Quântico real

Brazil Quantum
7 min readNov 12, 2020

Por: Bruna Shinohara (Editora e Host do ViaCast, Doutoranda de Física na USP)
@ViaSaber

Sabia que é possível programar um computador quântico da sua casa? Sabia também que você não precisa saber quântica antes de começar? Vem comigo e com o Qiskit, vamos te mostrar!

Que título doido! Mas como pode uma coisa dessas?

Seguinte, o Qiskit é uma plataforma da IBM baseada na linguagem de programação Python para programar computadores quânticos. O legal é que podemos usar o que se chama de backends [1] da própria IBM (que podem ser tantos simuladores de computadores quânticos quanto unidades reais) para aprender sobre computação quântica (com o Qiskit Textbook) ou para rodar circuitos próprios [2]. É interessante saber Python para mexer, mas também é possível tentar entender sem grandes domínios, já que é uma linguagem relativamente clara.

Esse texto não tem a intenção de aprofundar nos temas e sim ser um guia informal para estudo autodidata, explicando alguns caminhos possíveis para entender computação quântica, dependendo da sua bagagem sobre o tema. É claro que, se quiserem, podemos nos aprofundar nisso em outros textos! Mas, por enquanto, vamos:

1 — Começar com princípios de computação

Indicado para: quem quer entender mais de computação tradicional antes de começar.

Como prometido, não precisamos começar sabendo quântica! É ideal começar com um resuminho sobre a computação tradicional (também chamada de “clássica”). O que são bits? Por que servem para computação? Como manipulá-los pra que façam o que a gente quer?

Daqui já podemos começar a fuçar o Qiskit! Na seção “The Atoms of Computation” [3], já somos introduzidos às primeiras linhas de código. Se você não é familiarizado com isso, só lembre-se de clicar em “run” (inicar) para importar o que for necessário do Qiskit, senão terá mensagens de erro em todos os outros códigos.

Aqui, vamos entender como a nossa matemática é baseada no sistema decimal (potências de 10), enquanto a computação é sistema binário (potências de 2). Clique no exemplo do número 9213 e mexa com o programinha de conversão para binário para ficar mais claro!

Na computação, codificamos tudo com 2 estados com os bits, que podem ter dois valores: “zero” ou “um”. Mas para fazermos algo de útil, precisamos poder fazer operações com isso, como na matemática tradicional (adicionar, subtrair etc). Isso é possível através de portas lógicas, um nome emprestado da computação clássica. Chamamos assim porque operações com essas portas são operações lógicas: com dois valores possíveis (um ou zero, verdadeiro ou falso, sim ou não), temos um resultado. Queremos que zeros virem uns, por exemplo? Temos uma porta lógica para isso.

Tendo portas suficientes, podemos colocá-las em sequência no que chamamos de “circuito quântico” e, assim, fazemos qualquer operação! Algumas são tão importantes que precisamos falar especificamente sobre elas. O Qiskit agora explica como uma operação chamada “CNOT” — o equivalente da operação XOR na computação tradicional, é necessária para conseguirmos fazer adição no sistema binário. Básico, mas crucial!

2- Agora vai: física quântica!

Indicado para: quem quer entender como a física quântica transforma a computação.

Já entendemos o que é o bit (não entendeu? corre lá na seção anterior ou nas referências!), precisamos agora entender sua versão quântica, o qubit. O que tem de especial nele, já que podemos fazer coisas fantásticas, como ver gifs de bichinhos ou ler esse texto, com a computação normal?

A sacada do qubit é usar a propriedade da física quântica chamada “superposição”. Grosso modo, em vez de termos apenas as possibilidades “zero” e “um”, agora podemos ter os dois ao mesmo tempo, pelo menos antes de fazermos a medida! Caso você já tenha ouvido falar do experimento Gato de Schrodinger, isso deve soar familiar. De fato, o experimento mental de Schrodinger era sobre superposição.

Aqui no Qiskit, no entanto, veremos a ideia de medida de forma mais concreta: isso vai entrar como parte do circuito quântico. Isso tudo é introduzido no [4]. Aqui não tem jeito, é preciso encarar alguma matemática, mas confie, vale a pena :)

“Mas Bruna, você tá me enrolando… se após a medida, o estado vai virar zero ou um, qual vai ser a diferença?” Ah, isso é complicado, mas que bom que bateu a curiosidade sobre isso! Agora não tem jeito, você vai ter que ir para a próxima seção, a de teletransporte quântico em específico. Mas, se quiser confiar em mim e na computação quântica, saiba que operações com qubits permitem que muitas contas que são notoriamente demoradas sejam feitas em um tempo muito menor [5].

3 — Legal, o que mais dá pra aprender?

Algumas sugestões:

  • Não esqueci da pergunta sobre a medida, não! O fenômeno de teletransporte é a base da comunicação por meios quânticos e também ajuda a entender como que os fenômenos quânticos continuam lá, apesar da medição. O capítulo é bem auto-contido, então acredito ser um bom fenômeno para se explorar logo de cara! Veja a seção Quantum Teleportation [6].
  • Lembra que eu comentei sobre como a computação quântica pode fazer certas contas com mais rapidez? Pois bem, a criptografia mais comumente usada atualmente envolve a “fatoração em primos”, que é a decomposição de um número em multiplicação de números que sejam primos. Por que isso é um processo de segurança? Porque não há um algoritmo rápido para essa fatoração. Isso faz com que o processo seja demorado para números muito grandes. Em termos mais técnicos, é um problema tipo “NP” (fácil de testar uma resposta, difícil de achar solução em tempo hábil)[7]. Com a computação quântica, no entanto, é previsto que esse tipo de processo seja feito em um tempo muito menor e esse tipo de criptografia pode entrar em desuso. Quer aprender sobre isso? Shor’s Algorithm [8]
  • Criptografia quântica a resgate! Ao mesmo tempo que o computador quântico poderia, eventualmente, ser usado para quebrar criptografias da forma que temos hoje, existe também uma área da física chamada “criptografia quântica”. Nesse modelo, é apenas necessário que o remetente e destinatário da mensagem tenham previamente combinado a sequência de decodificação dos qubits. Além disso, seria possível detectar se alguém está interceptando uma mensagem criptografada, já que uma tentativa de espionagem necessariamente modificaria a mensagem que o destinatário original receberia. Quer entender melhor? Quantum Key Distribution [9]

Show, mas cadê meu computador quântico?

Ok, eu prometi, vou cumprir. A forma de rodar as coisas é explicada no Quantum Teleportation. Seção 5.1 e 5.2, e pode ser estendida para outras contas. Para um computador real, é preciso fazer uma conta no IBM Quantum Experience (gratuita!).

Depois de logar na sua conta, repare nessas linhas de código. Explicando rapidamente, essa parte do código vai descobrir quais dos computadores da IBM você pode usar. Essa é a minha lista:

Nessa outra linha, o código vai solicitar o computador com menor fila de trabalhos para fazer a sua conta.

A função job_exp vai conter essa informação e usar para rodar o programa, no código seguinte.

Chamando a função, conseguimos o resultado com um hardware quântico!

Ah, mas está tudo em inglês…

Acreditamos que a dificuldade da popularização das ciências está muito ligada com a dificuldade de encontrar bons conteúdos em português. Quer ajudar a traduzir os conteúdos do Qiskit Textbook? Tem um link que explica como! [10]

E por que surfar nessa onda quântica?

Computação quântica é uma área que tem recebido crescente atenção (leia-se: investimento!) de grandes empresas como Google, IBM, Microsoft, Amazon até startups, governos e investidores individuais [11, 12]. Não é para menos: um computador quântico, em teoria, permitiria a resolução de vários problemas até então computacionalmente custosos, como a simulação de moléculas, resolução de problemas complicados de otimização e a tão temida quebra de criptografia [13].

No entanto, ainda há muito a ser aprimorado. Um problema comum que os mais diversos sistemas de computação quântica é a necessidade de baixíssimas temperaturas para termos as características quânticas necessárias para a computação. A metodologia para correção de erros causados pela temperatura e outros aspectos ainda é uma área de estudos muito ativa. Também é necessário encontrar formas de aumentar a escala de computadores já existentes, que por enquanto não podem resolver grande parte dos problemas de interesse porque estão limitados pela quantidade de qubits [14].

Muitos comparam o estado da computação quântica atual com o início da computação clássica, no sentido que ainda há muito a ser descoberto. É um momento histórico muito único para essa tecnologia, porque não tentar fazer parte? :)

Referências

[1] https://medium.com/qiskit/qiskit-backends-what-they-are-and-how-to-work-with-them-fb66b3bd0463

[2] https://qiskit.org/textbook/preface.html

[3] https://qiskit.org/textbook/ch-states/atoms-computation.html

[4] https://qiskit.org/textbook/ch-states/representing-qubit-states.html

[5] https://qiskit.org/textbook/ch-states/case-for-quantum.html

[6] https://qiskit.org/textbook/ch-algorithms/teleportation.html

[7]https://brasil.elpais.com/brasil/2017/05/19/tecnologia/1495202801_698394.html

[8] https://qiskit.org/textbook/ch-algorithms/shor.html

[9] https://qiskit.org/textbook/ch-algorithms/quantum-key-distribution.html

[10] https://medium.com/qiskit/qiskit-in-my-language-is-qiskit-73d4626a99d3

[11]https://physicsworld.com/a/mapping-the-commercial-landscape-for-quantum-technologies/

[12] https://www.protocol.com/manuals/quantum-computing/vc-investments-bullish-quantum-computing-coronavirus

[13] P. W. Shor, “Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer,”SIAM review, vol. 41, no. 2, pp. 303–332, 1999.

[14] Preskill, John. “Quantum Computing in the NISQ era and beyond.” Quantum 2 (2018): 79.

--

--