O que é um computador quântico? Explicado com um exemplo simples.

por YK Sugi

Hi everyone!

No outro dia, visitei a D-Wave Systems em Vancouver, Canadá. É uma empresa que faz computadores quânticos de vanguarda.

Tenho de aprender muito sobre computadores quânticos lá, por isso gostaria de partilhar convosco parte do que aprendi neste artigo.

O objectivo deste artigo é dar-vos uma intuição precisa do que é um computador quântico usando um exemplo simples.

Este artigo não exigirá que tenha conhecimentos prévios de física quântica ou de informática para ser capaz de o compreender.

Okay, vamos começar.

Editar (26 de Fevereiro de 2019): Publiquei recentemente um vídeo sobre o mesmo tema no meu canal YouTube. Recomendaria vê-lo (clique aqui) antes ou depois de ler este artigo porque adicionei alguns argumentos adicionais, mais matizados, no vídeo.

O que é um computador quântico?

Aqui está um resumo de uma frase do que é um computador quântico:

Um computador quântico é um tipo de computador que utiliza a mecânica quântica para que possa efectuar certos tipos de computação de forma mais eficiente do que um computador normal.

Há muito para desempacotar nesta frase, por isso deixem-me explicar-vos o que é exactamente usando um exemplo simples.

Para explicar o que é um computador quântico, precisarei primeiro de explicar um pouco sobre computadores normais (não quânticos).

Como um computador normal armazena informação

Agora, um computador normal armazena informação numa série de 0’s e 1’s.

Diferentes tipos de informação, tais como números, texto, e imagens podem ser representados desta forma.

Cada unidade desta série de 0’s e 1’s é chamada um pouco. Assim, um bit pode ser definido como 0 ou 1,

Agora, e os computadores quânticos?

Um computador quântico não utiliza bits para armazenar informação. Em vez disso, utiliza algo chamado qubits.

Cada bit pode não só ser definido em 1 ou 0, mas também pode ser definido em 1 e 0. Mas o que significa isso exactamente?

Deixe-me explicar isto com um exemplo simples. Este vai ser um exemplo algo artificial. Mas ainda vai ser útil para compreender como funcionam os computadores quânticos.

Um exemplo simples para compreender como funcionam os computadores quânticos

Agora, suponha que está a gerir uma agência de viagens, e que precisa de mover um grupo de pessoas de um local para outro.

Para manter isto simples, digamos que precisa de mudar apenas 3 pessoas por agora – Alice, Becky, e Chris.

E suponha que reservou 2 táxis para este fim, e que quer descobrir quem entra em que táxi.

Ainda isso, suponha aqui que lhe é dada informação sobre quem é amigo de quem, e quem é inimigo de quem.

P>Aqui, digamos que:

  • Alice e Becky são amigos
  • Alice e Chris são inimigos
  • Becky e Chris são inimigos

E suponha que o seu objectivo aqui é dividir este grupo de 3 pessoas nos dois táxis para alcançar os dois objectivos seguintes:

  • Maximizar o número de pares de amigos que partilham o mesmo carro
  • Minimizar o número de pares de inimigos que partilham o mesmo carro

Okay, portanto esta é a premissa básica deste problema. Pensemos primeiro em como resolveríamos este problema com um computador normal.

Solucionar este problema com um computador normal

Para resolver este problema com um computador normal, não quântico, será necessário primeiro descobrir como armazenar a informação relevante com bits.

Etiquete os dois táxis Taxi #1 e Taxi #0.

Então, pode representar quem entra em que carro com 3 bits.

Por exemplo, podemos definir os três bits para 0, 0, e 1 para representar:

  • Alice entra no táxi #0
  • Becky entra no táxi #0
  • Chris entra no táxi #1

P>Posto que há duas escolhas para cada pessoa, há 2*2*2 = 8 formas de dividir este grupo de pessoas em dois carros.

Aqui está uma lista de todas as configurações possíveis:

p>A | B | B | C
0 | 0 | 0 | 0 | 0 | 1
0 | 1 | 0
0 | 1 | 1 |br>1 | 0 | 0 | 0 | 1 |br>1 | 1 | 0
1 | 1 | 1 | 1 |/p>p>p> usando 3 bits, é possível representar qualquer uma destas combinações.

Computando a pontuação para cada configuração

Agora, usando um computador normal, como determinaríamos qual a configuração que é a melhor solução?

Para isso, vamos definir como podemos calcular a pontuação para cada configuração. Esta pontuação representará a medida em que cada solução atinge os dois objectivos que mencionei anteriormente:

  • Maximizar o número de pares de amigos que partilham o mesmo carro
  • Minimizar o número de pares inimigos que partilham o mesmo carro

Vamos simplesmente definir a nossa pontuação como se segue:

(a pontuação de uma dada configuração) = (# pares amigos que partilham o mesmo carro) – (# pares inimigos que partilham o mesmo carro)

Por exemplo, suponha que Alice, Becky, e Chris entram todos no táxi #1. Com três bits, isto pode ser expresso como 111.

Neste caso, há apenas um par amigo que partilha o mesmo carro – Alice e Becky.

No entanto, há dois pares inimigos que partilham o mesmo carro – Alice e Chris, e Becky e Chris.

Assim, a pontuação total desta configuração é 1-2 = -1.

Solucionando o problema

Com toda esta configuração, podemos finalmente resolver este problema.

Com um computador normal, para encontrar a melhor configuração, terá de percorrer essencialmente todas as configurações para ver qual delas atinge a pontuação mais alta.

Assim, pode pensar em construir uma tabela como esta:

A | B | C | Pontuação
0 | 0 | 0 | | -1
0 | 0 | 1 | 1 <- uma das melhores soluções
0 | 1 | 0 | -1
0 | 1 | 1 | -1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- a outra melhor solução
1 | 1 | 1 | -1

como se pode ver, há aqui duas soluções correctas – 001 e 110, ambas atingindo a pontuação de 1.

Este problema é bastante simples. Rapidamente torna-se demasiado difícil de resolver com um computador normal à medida que aumentamos o número de pessoas neste problema.

Vimos que com 3 pessoas, precisamos de passar por 8 configurações possíveis.

E se houver 4 pessoas? Nesse caso, teremos de passar por 2*2*2*2 = 16 configurações.

Com n pessoas, teremos de passar (2 à potência de n) configurações para encontrar a melhor solução.

Assim, se houver 100 pessoas, teremos de passar:

  • 2¹⁰⁰ ~= 10³⁰ = um milhão de milhões de milhões de configurações.

Isto é simplesmente impossível de resolver com um computador normal.

Solver este problema com um computador quântico

Como resolveríamos este problema com um computador quântico?

Para pensar nisso, voltemos ao caso da divisão de 3 pessoas em dois táxis.

Como vimos anteriormente, havia 8 soluções possíveis para este problema:

p>A | B | C
0 | 0 | 0 | 0 |br>0 | 0 | 1 |br>0 | 1 | 0
0 | 1 | 1 |br>1 | 0 | 0 | 1 |br>1 | 1 | 0
1 | 1 | 1 |/p>

com um computador normal, utilizando 3 bits, conseguimos representar apenas uma destas soluções de cada vez – por exemplo, 001.

No entanto, com um computador quântico, usando 3 qubits, podemos representar todas as 8 destas soluções ao mesmo tempo.

Há debates sobre o seu significado exacto, mas é assim que eu penso.

P>Primeiro, examinar a primeira qubits destas 3 qubits. Quando se fixa em 0 e 1, é como se se criassem dois mundos paralelos. (Sim, é estranho, mas basta seguir aqui.)

Num desses mundos paralelos, o qubit está definido para 0. No outro, está definido para 1.

Agora, e se definir o segundo qubit para 0 e 1, também? Então, é como criar 4 mundos paralelos.

No primeiro mundo, as duas qubits estão definidas para 00. No segundo, elas são 01. No terceiro, são 10. No quarto, são 11.

Similiarmente, se se definirem as três qubits para 0 e 1, estariam a criar 8 mundos paralelos – 000, 001, 010, 011, 100, 101, 110, e 111.

Esta é uma forma estranha de pensar, mas é uma das formas correctas de interpretar como as qubits se comportam no mundo real.

Agora, quando se aplica algum tipo de cálculo a estas três qubits, está-se a aplicar o mesmo cálculo em todos esses 8 mundos paralelos ao mesmo tempo.

Assim, em vez de passarmos por cada uma dessas soluções potenciais sequencialmente, podemos calcular a pontuação de todas as soluções ao mesmo tempo.

Com este exemplo particular, em teoria, o seu computador quântico seria capaz de encontrar uma das melhores soluções em poucos milissegundos. Mais uma vez, isso é 001 ou 110, como vimos anteriormente:

A | B | C | Pontuação
0 | 0 | 0 | | -1
0 | 0 | 1 | 1 <- uma das melhores soluções
0 | 1 | 0 | -1
0 | 1 | 1 | -1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- a outra melhor solução
1 | 1 | 1 | -1

Na realidade, para resolver este problema, teria de dar duas coisas ao seu computador quântico:

  • Todas as soluções potenciais representadas com qubits
  • Uma função que transforma cada solução potencial numa pontuação. Neste caso, esta é a função que conta os números de pares amigos e pares inimigos que partilham o mesmo carro.

Dadas estas duas coisas, o seu computador quântico cuspirá uma das melhores soluções em poucos milissegundos. Neste caso, isso é 001 ou 110 com uma pontuação de 1.

Agora, em teoria, um computador quântico é capaz de encontrar uma das melhores soluções cada vez que corre.

No entanto, na realidade, há erros quando se corre um computador quântico. Assim, em vez de encontrar a melhor solução, poderá encontrar a segunda melhor solução, a terceira melhor solução, e assim por diante.

Estes erros tornam-se mais proeminentes à medida que o problema se torna cada vez mais complexo.

Assim, na prática, provavelmente irá querer executar a mesma operação num computador quântico dezenas de vezes ou centenas de vezes. Depois escolha o melhor resultado entre os muitos resultados que obtém.

Como é que um computador quântico pode escalar

Com os erros que mencionei, o computador quântico não tem o mesmo problema de escalas que um computador normal sofre.

Quando há 3 pessoas que precisamos de dividir em dois carros, o número de operações que precisamos de realizar num computador quântico é 1. Isto porque um computador quântico calcula a pontuação de todas as configurações ao mesmo tempo.

Quando há 4 pessoas, o número de operações ainda é 1.

Quando há 100 pessoas, o número de operações ainda é 1. Com uma única operação, um computador quântico calcula a pontuação de todas as 2¹⁰⁰ ~= 10³⁰ = um milhão de milhões de milhões de configurações ao mesmo tempo.

Como mencionei anteriormente, na prática, é provavelmente melhor executar o seu computador quântico dezenas ou centenas de vezes e escolher o melhor resultado entre os muitos resultados obtidos.

No entanto, ainda é muito melhor do que executar o mesmo problema num computador normal e ter de repetir o mesmo tipo de cálculo um milhão de milhões de milhões de vezes.

Embrulho

Excelente agradecimento a todos na D-Wave Systems por me explicarem pacientemente tudo isto.

D-Wave lançou recentemente um ambiente de nuvem para interagir com um computador quântico.

Se é um programador e gostaria realmente de tentar usar um computador quântico, é provavelmente a forma mais fácil de o fazer.

Chama-se Saltar, e está em https://cloud.dwavesys.com/leap. Pode utilizá-lo gratuitamente para resolver milhares de problemas, e eles também têm tutoriais fáceis de seguir sobre como começar com computadores quânticos uma vez que se inscreve.

Footnote:

  • Neste artigo, utilizei o termo “computador normal” para me referir a um computador não quântico. Contudo, na indústria da computação quântica, os computadores não quânticos são normalmente referidos como computadores clássicos.

Leave a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *