Pesquisar aqui

sábado, 29 de janeiro de 2022

Uma nova linguagem para computação quântica

Cristais do tempo. Microondas. Diamantes. O que essas três coisas díspares têm em comum? 

Computação quântica. Ao contrário dos computadores tradicionais que usam bits, os computadores quânticos usam qubits para codificar informações como zeros ou uns, ou ambos ao mesmo tempo. Juntamente com um coquetel de forças da física quântica, essas máquinas do tamanho de geladeiras podem processar muitas informações – mas estão longe de serem perfeitas. Assim como nossos computadores comuns, precisamos ter as linguagens de programação corretas para computar adequadamente em computadores quânticos. 

Programar computadores quânticos requer consciência de algo chamado “emaranhamento”, um multiplicador computacional para tipos de qubits, o que se traduz em muito poder. Quando dois qubits estão emaranhados, as ações em um qubit podem alterar o valor do outro, mesmo quando estão fisicamente separados, dando origem à caracterização de Einstein de “ação assustadora à distância”. Mas essa potência é em partes iguais uma fonte de fraqueza. Ao programar, descartar um qubit sem estar atento ao seu emaranhamento com outro qubit pode destruir os dados armazenados no outro, comprometendo a correção do programa. 

Cientistas da Ciência da Computação e Inteligência Artificial (CSAIL) do MIT pretendiam fazer alguns desvendamentos criando sua própria linguagem de programação para computação quântica chamada Twist. O Twist pode descrever e verificar quais dados estão emaranhados em um programa quântico, por meio de uma linguagem que um programador clássico pode entender. A linguagem usa um conceito chamado pureza, que reforça a ausência de emaranhamento e resulta em programas mais intuitivos, idealmente com menos bugs. Por exemplo, um programador pode usar o Twist para dizer que os dados temporários gerados como lixo por um programa não estão emaranhados com a resposta do programa, tornando seguro jogar fora.

Embora o campo nascente possa parecer um pouco chamativo e futurista, com imagens de máquinas gigantescas de ouro, os computadores quânticos têm potencial para avanços computacionais em tarefas classicamente insolúveis, como protocolos criptográficos e de comunicação, pesquisa e física e química computacional. Um dos principais desafios em ciências computacionais é lidar com a complexidade do problema e a quantidade de computação necessária. Enquanto um computador digital clássico precisaria de um número exponencial muito grande de bits para poder processar tal simulação, um computador quântico poderia fazê-lo, potencialmente, usando um número muito pequeno de qubits – se os programas certos estiverem lá. 

“Nossa linguagem Twist permite que um desenvolvedor escreva programas quânticos mais seguros, declarando explicitamente quando um qubit não deve estar emaranhado com outro”, diz Charles Yuan, estudante de doutorado do MIT em engenharia elétrica e ciência da computação e principal autor de um novo artigo sobre o Twist . . “Como a compreensão de programas quânticos requer a compreensão do emaranhamento, esperamos que o Twist abra caminho para linguagens que tornem os desafios únicos da computação quântica mais acessíveis aos programadores.” 

Yuan escreveu o artigo ao lado de Chris McNally, estudante de doutorado em engenharia elétrica e ciência da computação que é afiliado ao Laboratório de Pesquisa Eletrônica do MIT, bem como ao professor assistente do MIT Michael Carbin. Eles apresentaram a pesquisa na conferência do Simpósio de Princípios de Programação de 2022 da semana passada na Filadélfia.

Desembaraçar o emaranhamento quântico 

Imagine uma caixa de madeira com mil cabos saindo de um lado. Você pode puxar qualquer cabo para fora da caixa ou empurrá-lo totalmente para dentro.

Depois de fazer isso por um tempo, os cabos formam um padrão de bits — zeros e uns — dependendo se estão dentro ou fora. Esta caixa representa a memória de um computador clássico. Um programa para este computador é uma sequência de instruções para quando e como puxar os cabos.

Agora imagine uma segunda caixa de aparência idêntica. Desta vez, você puxa um cabo e vê que, quando ele emerge, alguns outros cabos são puxados de volta para dentro. Claramente, dentro da caixa, esses cabos estão de alguma forma emaranhados uns com os outros. 

A segunda caixa é uma analogia para um computador quântico, e entender o significado de um programa quântico requer entender o emaranhamento presente em seus dados. Mas detectar emaranhamento não é simples. Você não pode ver dentro da caixa de madeira, então o melhor que você pode fazer é tentar puxar os cabos e raciocinar cuidadosamente sobre quais estão emaranhados. Da mesma forma, os programadores quânticos hoje precisam raciocinar sobre o emaranhamento à mão. É aqui que o design do Twist ajuda a massagear algumas dessas peças entrelaçadas. 

Os cientistas projetaram o Twist para ser expressivo o suficiente para escrever programas para algoritmos quânticos conhecidos e identificar bugs em suas implementações. Para avaliar o design do Twist, eles modificaram os programas para introduzir algum tipo de bug que seria relativamente sutil para um programador humano detectar, e mostraram que o Twist poderia identificar automaticamente os bugs e rejeitar os programas.

Eles também mediram o desempenho dos programas na prática em termos de tempo de execução, que teve menos de 4% de sobrecarga em relação às técnicas de programação quântica existentes.

Para aqueles que desconfiam da reputação “degradada” do quantum em seu potencial de quebrar sistemas de criptografia, Yuan diz que ainda não se sabe muito bem até que ponto os computadores quânticos serão realmente capazes de alcançar suas promessas de desempenho na prática. “Há muita pesquisa em andamento na criptografia pós-quântica, que existe porque mesmo a computação quântica não é todo-poderosa. Até agora, há um conjunto muito específico de aplicativos em que as pessoas desenvolveram algoritmos e técnicas em que um computador quântico pode superar os computadores clássicos”. 

Um próximo passo importante é usar o Twist para criar linguagens de programação quântica de nível superior. A maioria das linguagens de programação quântica hoje ainda se assemelha à linguagem assembly, unindo operações de baixo nível, sem atenção a coisas como tipos de dados e funções, e o que é típico da engenharia de software clássica.

“Os computadores quânticos são propensos a erros e difíceis de programar. Ao apresentar e raciocinar sobre a 'pureza' do código do programa, o Twist dá um grande passo para tornar a programação quântica mais fácil, garantindo que os bits quânticos em um pedaço de código puro não possam ser alterados por bits que não estejam nesse código”, diz Fred Chong, o Professor Seymour Goodman de Ciência da Computação da Universidade de Chicago e cientista-chefe da Super.tech. 

O trabalho foi apoiado, em parte, pelo MIT-IBM Watson AI Lab, pela National Science Foundation e pelo Office of Naval Research.

Consultado a: 28\01\2022
https://news.mit.edu/2022/new-language-quantum-computing-twist-0124

Sem comentários:

Enviar um comentário

Comente de forma construtiva...

Nota: só um membro deste blogue pode publicar um comentário.