Desenvolvimento

14 dez, 2018

Computação Quântica – Desvendando o futuro dos computadores

Publicidade

Nos últimos anos estamos vendo uma gama imensa de novidades que vão surgindo aqui e ali – uma nova linguagem, um novo framework, um novo modo de programar, até uma nova arquitetura para hardware.

Porém, algo que promete mudar não só o modo como programamos, mas também a estrutura da computação como um todo, está surgindo e ganhando cada vez mais foco: a computação quântica.

Em um resumo muito simplista, computação quântica é definida como:

  • A ciência que estuda as aplicações das teorias e propriedades da mecânica quântica na Ciência da Computação.

Ou seja, a ideia principal é: “Como podemos aplicar o que sabemos sobre física quântica nos computadores atuais?”. E, talvez mais importante do que entender o que é a computação quântica em si, é entender o que é a física quântica.

O que é física quântica

Física ou mecânica quântica é o ramo da física que estuda sistemas cujas dimensões são iguais ou menores do que a escala atômica (moléculas, átomos, elétrons, prótons, neutrons, quarks e por ai vai).

Não vamos nos ater aos detalhes deste estudo, porque ele é extremamente complexo e exige várias horas de estudo, mas a ideia básica que permeia a existência desse ramo é bastante simples (se você quiser saber mais, a Wikipedia tem um artigo muito bacana sobre esse tema).

Pense que, na física que aprendemos no colégio, estamos tratando com corpos enormes, como planetas, pessoas, carros, pedras e etc.

Para esse tipo de sistema podemos utilizar a física clássica (aquela de Newton) sem problemas. Porém, quanto mais reduzimos o tamanho destes sistemas até o ponto que eles se tornam atômicos ou subatômicos (quando temos que lidar com as partículas e átomos em si, ao invés de corpos inteiros), essas leis da mecânica clássica já não são mais suficientes.

O mundo subatômico é um lugar muito estranho para podermos aplicar a fórmula da velocidade média, e além disso, propriedades importantes – como a condutividade elétrica – começam a ser perdidas quando chegamos a níveis muito pequenos.

Não poder aplicar a física clássica em partículas muito pequenas tornou-se inaceitável para os físicos, de forma que muitos cientistas que você já deve ter ouvido falar, como: Albert Einstein, Erwin Schrödinger, Max Planck, Richard Feynman, Werner Heisenberg e alguns outros começaram a tentar entender como tudo isso funcionava, e assim surgiram os alicerces da física quântica, um ramo que é ainda muito recente. Portanto, ainda não sabemos muito sobre ele.

Computadores clássicos

Para entendermos a importância da computação quântica e o impacto que ela vai causar, primeiramente precisamos entender como nossa arquitetura de computação atual funciona.

Hoje, utilizamos a arquitetura criada pelo cientista John Von Neumann – que também é um dos fundadores da mecânica quântica. Essa arquitetura, essencialmente, coloca elementos de processamento e armazenamento em locais separados.

Ou seja, temos um processador e uma memória RAM que são separados um do outro e se comunicam através de um barramento de comunicação, e tendo um processamento sequencial, como podemos ver na seguinte imagem:

Essa arquitetura é caracterizada por:

  • uma unidade de memória
  • uma Unidade Lógico-Aritmética (ULA), responsável por executar operações lógico-aritméticas sobre a entrada
  • uma unidade central de processamento (CPU), que possui registradores capazes de manter um estado
  • uma unidade de controle que é responsável por implementar o que chamamos de Máquina de Turing, que essencialmente é uma fita de instruções que são executadas seguindo uma ordem contínua

Apesar de esta ser a base da arquitetura que conhecemos e usamos hoje, os computadores atuais já atuam com muito mais tecnologia e outros mecanismos que, apesar de baseados na arquitetura clássica, permitem que tenhamos uma capacidade de processamento muito maior a um custo muito menor de energia. Ou seja, mais eficiente.

O problema

Se buscarmos um processador, memória ou armazenamento comercial, vamos perceber que seu tamanho vem diminuindo enquanto sua capacidade aumenta.

Temos processadores de múltiplos núcleos capazes de rodar a uma frequência de 10 a 100 vezes maior do que os processadores que tínhamos há duas décadas, enquanto possuem menos de um quarto do tamanho daquelas velharias. O mesmo vale para memórias, que estão cada vez mais potentes e rápidas.

Tecnologias de armazenamento como o HD – armazenamento em disco magnético – estão aos poucos se tornando obsoletas em favor de armazenamento em estado sólido com os SSDs que são muito mais rápidos, muito menores e menos propensos a falhas, mas custam o dobro do preço.

O grande problema é que estamos à sombra do que é chamado de Lei de Moore, criada por Gordon Moore, em 1965, e que previa o seguinte:

  • “O número de transistores presentes em chips de processamento dobraria, pelo mesmo custo, a cada período de 18 meses.”

Essa profecia acabou sendo realidade e até hoje acreditamos que ela valerá para sempre, o que não é verdade. Dobrar o número de transistores em um chip implica em algumas coisas:

  • 1 – Os transistores devem ficar cada vez menores
  • 2 – Na mesma área, devemos ser capazes de colocar o dobro de transistores

Logicamente podemos ver que isso não é infinito, uma vez que temos um limite de espaço: os átomos. Um átomo pode medir de 0.1 a 0.5 nanômetros (isso é algo como 1 * 10⁻¹⁰ metros) e o menor transistor que tínhamos em 2016 tinha cerca de 1nm, e em 2004 já havia uma demonstração de um transistor de um único átomo, ou seja, não vai demorar muito para que o item 1 de nossa lista seja impraticável – não teremos como reduzir mais o tamanho de um transistor.

Para o item 2, temos o mesmo problema. O menor processador que temos em funcionamento hoje possui 7nm e já foi provado que podemos chegar a 5nm, basta uma conta básica para entender que uma hora os processadores atingirão o limite físico que impedirá que tenhamos mais poder de processamento uma hora ou outra.

Aliado a isso, a arquitetura de processamento atual possui limitações, principalmente para áreas como IA, onde a velocidade de processamento e a potência destes processadores se torna crucial para a execução de algoritmos de Machine Learning, Deep Learning, entre outros, tornando impossível a ideia do desenvolvimento e mantenimento de uma IA avançada com a nossa velocidade atual de processamento – mesmo com GPUs.

Além disso, muitos avanços nos ramos da matemática e física dependem de computadores que são rápidos o suficiente para poder realizar cálculos extensos, como: Fatoração de primos, logaritmos discretos, cálculos de casas decimais para números irracionais como o Pi e a √2.

Desta forma, surgiu a necessidade da criação não só de uma outra arquitetura, mas também de um novo tipo de processamento capaz de fazer o que os nossos não vão mais ser capazes de realizar daqui a alguns anos.

Computadores quânticos

O primeiro registro de alguém querer aplicar o conceito de física quântica à computadores vem da década de 50. Porém, a primeira proposta para a utilização desse tipo de mecânica aplicada aconteceu em 1981, onde Richard Feynman demonstrou uma proposta para a utilização de sistemas quânticos em computadores que poderiam ter a capacidade muito maior do que os computadores comuns.

O computador quântico é mais poderoso do que um computador comum porque, ao invés de ter bits que assumem valores 0 ou 1, ele possui q-bits (ou qubits), que podem assumir estados 0 e 1 ao mesmo tempo. Isso pode ser bastante estranho, afinal, como algo pode ter dois estados ao mesmo tempo?

Isso é explicado pelo experimento mental do Gato de Schrödinger. Isso significa que, ao invés de termos um processamento sequencial – como tínhamos na computação clássica – todo o processamento quântico é dado de forma simultânea. É como se, ao invés de termos de procurar itens em uma lista um por um, pudéssemos procurar vários itens de uma só vez.

Veja um exemplo, se tivermos dois bits e quisermos buscar o resultado 10, vamos precisar de quatro rodadas de cálculo para poder alcançar o objetivo:

Enquanto isso, usando 2 qubits, vamos precisar somente de uma operação, porque teremos todos os 4 estados sobrepostos:

Além disso, enquanto temos um aumento gradativo do poder de processamento quando aumentamos o número de bits tradicionais, ao utilizarmos qubits vamos dobrando a nossa capacidade de processamento a cada qubit adicionado, como podemos ver na tabela a seguir:

Veja que, com 9 qubits já temos o suficiente para fazer 1,34078079 * 10¹⁵⁴ operações simultâneas, o que é muita coisa. Porém, o que mais importa para nós, hoje, é que a computação quântica não tem nenhum limite teórico, já que um átomo pode armazenar uma quantidade muito maior de informações do que um bit comum. O grande problema é que ainda não conseguimos criar um computador que tenha mais do que 16 qubits.

As dificuldades

Apesar de termos computadores quânticos funcionais hoje – como o IBM Q – e também linguagens de programação funcionais como o Q# da Microsoft, ainda estamos longe de ter um computador quântico aceitável e economicamente viável. Isso se deve por vários problemas físicos.

Computador quântico – DWAVE 2000Q

Primeiramente, para que seja possível manter o estado dos qubits de forma aceitável, os computadores quânticos utilizam um metal raro chamado Nióbio, que só pode ser usado de forma eficiente quando resfriado a -272.98ºC – isto é algo próximo de 0,17K, sendo que 0K é o zero absoluto – você já pode imaginar que manter essa temperatura exige uma boa quantidade de energia.

Além disso, o aparato pra manter essa temperatura é muito grande, quase comparado aos primeiros computadores que ocupavam andares inteiros. Outra preocupação é o isolamento, pois como estamos brincando com átomos, muitas das operações lógicas que fazemos – como o AND, OR, XOR – são realizadas utilizando manipulações eletromagnéticas utilizando fótons ou então magnetismo, então, qualquer interferência externa de radiações eletromagnéticas de fundo podem interferir completamente no funcionamento da máquina.

Um outro problema muito interessante que só vai acontecer nesse tipo de arquitetura é a aferição de erros. Hoje temos diversos tipos de ferramentas para certificar que cálculos e valores estão corretos, isso porque qualquer tipo de interferência elétrica ou eletromagnética pode alterar o estado de um bit e causar problemas sérios de perda de informações.

Porém, existe um conceito chamado de efeito do observador, que diz, essencialmente, que o próprio ato de observar já altera o resultado final – o mesmo vale para os qubits, então, o próprio ato de observar o valor de um qubit já pode alterar o seu resultado e esse é um problema que ainda não conseguimos resolver.

Isso vai mudar as nossas vidas

Já podemos imaginar que algo tão grande assim iria trazer grandes mudanças para as nossas vidas e também para a computação atual. A primeira área que iria sofrer com o advento da computação quântica é a criptografia.

Criptografia

Hoje, toda a nossa criptografia atual é baseada em geração e fatoração de números primos – como é o caso da criptografia RSA. Isso porque, como mencionado anteriormente, fatorar números primos é possível, porém, muito demorado para qualquer computador atual.

Então, basicamente todo o nosso sistema criptográfico atual se baseia na ideia de que demoraria muito tempo para se derivar uma chave, tornando qualquer ataque inviável.

Com a computação quântica isso se torna viável, pois podemos fatorar números usando um algoritmo chamado de “algoritmo de Shor” para fatorar números primos de forma mais rápida.

Por outro lado, há papers científicos que dizem que a chave RSA pode não estar em perigo justamente pelo fato de que, por mais rápido que os algoritmos quânticos sejam, o algoritmo RSA continua sendo mais rápido para gerar novas chaves com um maior número de bits, mas seria necessário uma chave RSA de 1TB para que um computador quântico leve um tempo inviável para resolver sua derivação, e uma chave de 1TB é bastante complexa de se trabalhar.

Uma nova criptografia

Nem tudo são lágrimas. Da mesma forma como vamos aposentar alguns algoritmos de criptografia antigos, vamos também criar novos algoritmos mais eficientes. Alguns algoritmos de criptografia quântica se baseiam na ideia do efeito do observador, sendo possível enviar uma mensagem de segurança junto com a mensagem original.

Se qualquer pessoa tentar visualizar o conteúdo da mensagem, ela será alterada e então saberemos que a mensagem foi vista por um observador externo.

Outros sistemas de criptografia se baseiam no entrelaçamento quântico para poder transmitir dados de forma instantânea, sem que nenhum observador consiga obter seu resultado, e depois a comunicação seria feita através de um canal quântico utilizando a criptografia de distribuição de chaves que descrevemos no parágrafo anterior. O grande problema é que a aplicação destes dois modelos de criptografia ainda são muito custosos.

Problemas matemáticos

Outro ponto que teremos uma grande mudança será no modo como vamos resolver problemas que antes eram insolúveis, como a fatoração de números primos, operações de teoria dos grafos – como o problema do caixeiro viajante que, se resolvido, pode criar uma nova era na logística mundial. Todos estes problemas só são insolúveis porque demoram muito tempo para serem resolvidos.

Também temos os chamados problemas NP – então, hoje tentamos achar uma solução eficiente e rápida para eles, mas se tivermos a possibilidade de resolver através de um brute force, provavelmente não será necessário pensar em uma forma eficiente – podemos simplesmente tentar todas as possibilidades.

Conclusão

A computação quântica é ainda um mundo completamente novo. Não sabemos exatamente o que pode vir a seguir e estamos a beira de um abismo que só foi visto na época das grandes navegações – um local desconhecido que estamos, aos poucos, desbravando e entendendo como funciona.

Hoje já existem computadores quânticos que podem ser acessados pelo público geral – como o IBM Q – ou então simulados em seu próprio computador utilizando a Microsoft Q#, de forma que, quando estes computadores se tornarem comercialmente viáveis, já teremos algumas aplicações e algum mindset já formado.

Além disso, é importante salientar que, por mais que a computação quântica pareça a resolução de todos os nossos problemas, ainda assim os computadores quânticos não podem realizar todas as tarefas de um computador clássicos – eles foram feitos para fins específicos.

Obviamente este cenário pode ser alterado, e computadores quânticos podem se tornar o “novo computador”, mas este não é o sinal que estamos vendo hoje. Portanto, é possível que, mesmo com a computação quântica avançada, computadores clássicos ainda sejam usados para algumas tarefas, mesmo depois de nosso poder de processamento chegar a um limite.

Para montar este artigo, realizei uma pesquisa em diversos sites externos. Muitos deles coloquei como links direto no artigo. Além disso, me inspirei a escrever este artigo através de uma palestra de um amigo chamado Igor França, que demonstrou um conteúdo incrível, que pode ser acessado neste link.

Alguns outros externos deixo logo abaixo como oportunidade de estudo adicional: