Características dos computadores quânticos

O poder de um computador quântico é medido em qubits, a unidade básica de medida em um computador quântico. Fonte.

Eu faço facepalm após cada leitura de tal frase. Isso não leva a nada bom; minha visão está começando a falhar; em breve, terei que recorrer ao Meklon.

Acho que é hora de sistematizar alguns parâmetros principais de um computador quântico. Existem alguns:

  1. Número de qubits
  2. Tempo de retenção de coerência (tempo de decoerência)
  3. Nível de erros
  4. Arquitetura do processador
  5. Preço, disponibilidade, condições de manutenção, tempo de amortização, ferramentas de programação, etc.

Número de qubits

Aqui tudo é óbvio; quanto mais, melhor. Na prática, no entanto, é preciso pagar pelos qubits, e o ideal é adquirir exatamente a quantidade de qubits necessária para executar a tarefa. Para um desenvolvedor de máquinas caça-níqueis exclusivas, é suficiente um qubit por máquina (para gerar aleatoriedade). Para um "bruteforce" RSA-2048, o mínimo é 2048 qubits.

Os algoritmos quânticos mais badalados levam os nomes de Grover e Shor. Grover permite "hackear" hashes. Para colapsar o bitcoin, são necessários computadores com pelo menos 256 qubits a bordo (pode-se ajustar a dificuldade do bitcoin, mas vamos nos manter neste número redondo). Shor permite a fatoração de números. Para fatorar um número com n bits, são necessários pelo menos n qubits.

O máximo atual: 50 qubits (já 72?). E, na verdade, 50 qubits é o limite. O limite de simulação de um computador quântico. Em teoria, podemos simular qualquer número de qubits em computadores clássicos. Na prática, adicionar um qubit à simulação requer dobrar os computadores clássicos. Adicione a isso os rumores de que o número de qubits dobra a cada ano e pergunte a si mesmo: como depurar algoritmos para 25651210242048 qubits? Não há simulador, em um processador quântico não se pode colocar um ponto de interrupção.

Tempo de retenção de coerência (tempo de decoerência)

Coerência e coerência não são a mesma coisa. Prefiro comparar a coerência com a regeneração da memória RAM. Em um módulo de RAM, há bilhões de células, cada uma com uma carga, zero ou um. Essa carga possui uma propriedade muito interessante: ela se esvai. Inicialmente, uma célula 'um' se torna uma célula em 0,99, depois 0,98, e assim por diante. Consequentemente, o zero acumula 0,01, 0,02, 0,03... É necessário atualizar essa carga, 'regenerá-la'. Tudo que é menos da metade é zerado, tudo o resto é elevado a um.

Os processadores quânticos não podem ser regenerados. Portanto, para todos os cálculos, há um único ciclo, até o primeiro qubit 'fugir'. O tempo até o primeiro 'vazamento' é chamado de tempo de decoerência. Coerência é o estado em que os qubits ainda não 'vazaram'. Aqui Você pode ver explicações um pouco mais maduras.

A decoerência está relacionada ao número de qubits: quanto mais qubits, mais difícil é manter a coerência. Por outro lado, com um grande número de qubits, é possível usar parte deles para corrigir erros relacionados à decoerência. Daí decorre, que a quantidade de qubits por si só não resolve nada. É possível dobrar o número de qubits e gastar 90% deles na fixação da decoerência.

Aproximadamente aqui surge o conceito de qubit lógico. Grosso modo, se você tem um processador de 100 qubits, mas 40 deles estão direcionados para a fixação da decoerência — sobram 60 qubits lógicos. Aqueles em que você executa seu algoritmo. O conceito de qubits lógicos é mais teórico atualmente, sobre implementações práticas, pessoalmente, não ouvi falar.

Erros e sua correção

Mais um problema dos processadores quânticos. Se você inverter um qubit, há uma probabilidade de 2% de que a operação resulte em erro. Se você entrelaçar 2 qubits, a probabilidade de erro atinge 8%. Pegue um número de 256 bits, faça um hash dele com SHA-256, conte o número de operações, calcule a probabilidade de realizar TODAS essas operações sem erros.

Os matemáticos oferecem uma solução: correção de erros. Existem algoritmos. A implementação de um entrelaçamento de 2 qubits lógicos requer 100.000 qubits físicos. O colapso do Bitcoin não acontecerá tão cedo.

Arquitetura do processador

Estritamente falando, não existem computadores quânticos. Existem apenas processadores quânticos. Para que serve a memória RAM, se o tempo de trabalho é limitado a milissegundos? Eu programo em Q#, mas é uma linguagem de alto nível. Reservei 15 cubits e faça o que quiser com eles. Se eu quiser, entrelaço o primeiro cubit com o décimo. Se eu desejar, entrelaço os primeiros seis.

Em um processador real, essa liberdade não existe. Pedi para entrelaçar o primeiro cubit com o 15 – o compilador gerará 26 operações adicionais. Se tiver sorte. Se não tiver sorte, gerará uma centena. A questão é que um cubit só pode se entrelaçar com os vizinhos. Eu não vi mais do que 6 vizinhos em um cubit. Em princípio, existem compiladores de programas quânticos otimizadores, mas eles ainda são mais teóricos.

Cada processador tem seu próprio conjunto de instruções, e as conexões entre cubits diferem. Em um mundo ideal, temos Rx, Ry, Rz arbitrários e suas combinações, além de entrelaçamento livre por dezenas de características, mais Swap: veja os operadores em Quirk. Na realidade, temos algumas pares de cubits, e o entrelaçamento CNOT (q[0], q[1]) custa uma operação, enquanto CNOT(q[1], q[0]) já custa 7. E a coerência diminui...

Preço, disponibilidade, condições de manutenção, tempo de amortização, ferramentas de programação...

Os preços não são divulgados, a disponibilidade para um cidadão comum é praticamente zero, o tempo de amortização não foi calculado na prática, e as ferramentas de programação estão apenas começando. A documentação está no arxiv.org.

Que informações deveríamos exigir dos especialistas ao lançar um novo computador quântico?

Além da lista acima, gosto das opções de PerlPower e Alter2:

Se cada artigo sobre um novo computador quântico começasse com duas características — o número de cubits entrelaçados simultaneamente, e o tempo de retenção dos cubits. Ou ainda melhor — com o tempo de execução de um benchmark simples, como encontrar os fatores primos do número 91.

Uma grande entrevista com Cliff Click — o pai da compilação JIT em Java.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster