Portuguese
Idiomas
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil
_images/qiskit_nutshell.png

Computação quântica em poucas palavras

A computação quântica representa um novo paradigma em computação que utiliza os princípios fundamentais da mecânica quântica para realizar cálculos. Se você está lendo isso, então você sem dúvida já ouviu que a promessa da computação quântica reside na possibilidade de realizar de forma eficiente um punhado de tarefas como a fatoração de primos, simulação quântica, busca, otimização e programas algébricos como aprendizado de máquina; computações cujos tamanhos estão além das capacidades até mesmo dos maiores dos computadores clássicos.

O poder da computação quântica baseia-se em dois pilares da mecânica quântica, denominadas por interferência e o entrelaçamento que destacam os aspectos ondulatórios - e da partícula - na computação quântica, respectivamente. O Qiskit é uma SDK para executar cálculos quânticos que utiliza esses princípios mecânico quânticos usando a linguagem de circuitos quânticos. Composto de portas quânticas, instruções e lógica de controle clássica, circuitos quânticos permitem expressar algoritmos e aplicações complexas de forma abstrata e que pode ser executada em um computador quântico. Em sua essência, o Qiskit é um mecanismo de construção, otimização e execução de circuitos quânticos. Algoritmos adicionais e camadas de aplicações alavancam circuitos quânticos, geralmente em conjunto com recursos de computação clássica, para resolver problemas de otimização, química quântica, física, aprendizado de máquina e finanças. A seguir, apresentaremos uma breve visão geral da computação quântica e como o Qiskit é usado em cada passo. Os leitores interessados podem acessar materiais adicionais mais detalhados para novas ideias.

Interferência

Como um computador clássico, um computador quântico opera em bits. No entanto, enquanto bits clássicos só podem ser encontrados nos estados 0 ou 1, um bit quântico, ou qubit, pode representar os valores 0, 1, ou combinações lineares de ambos. Tais combinações lineares são conhecidas como superposições (ou estados de superposição).

Para ver como esse recurso é utilizado na computação quântica , começamos com uma anlogia clássica: o cancelamento de ruído. Cancelamento de ruído, como utilizado em fones de ouvido com cancelamento de ruído, por exemplo, é realizado utilizando a superposição e o princípio de interferência para reduzir a amplitude de ruído indesejado gerando um tom de aproximandamente a mesma frequência e amplitude, mas fora de fase por um valor de :math:”pi” (ou qualquer outro múltiplo inteiro ímpar de :math:”pi”).

_images/noise_cancel.png

Fig. 1 Cancelamento aproximado de um sinal de ruído por um tom de amplitude quase igual e contrabalanceado por uma fase de \(\sim \pi\).

Como mostrado acima, quando a diferença de fase é próxima de um múltiplo ímpar de \(\pi\), a superposição das duas ondas resulta em interferência e um resultado que é significativamente reduzido comparado ao original. O resultado é o sinal de interesse livre de ruído. Embora este processamento seja feito por circuitos digitais, a amplitude e a fase são variáveis contínuas que nunca podem ser combinadas perfeitamente, resultando numa correção incompleta.

Um cálculo geral em um computador quântico ocorre de maneira muito semelhante ao cancelamento de ruído. De início, prepara-se uma superposição de todos os estados computacionais possíveis. Isso é então usado como uma entrada para um circuito quântico que interfere seletivamente nos componentes da superposição de acordo com um algoritmo prescrito. O que resta após o cancelamento das amplitudes e fases relativas do estado de entrada é a solução para o cálculo realizado pelo circuito quântico.

_images/quantum_interference.png

Fig. 2 Computação quântica como um processo de geração de interferência.

Entrelaçamento

O segundo princípio da mecânica quântica que a computação quântica pode utilizar é o fenômeno do entrelaçamento. Entrelaçamento se refere a estados de mais de um qubit (ou partículas em geral) nos quais o estado combinado dos qubits contém mais informações do que os qubits contêm independentemente. A esmagadora maioria dos estados quânticos multi-qubit são entrelaçados, e representam um recurso valioso. Por exemplo, estados entrelaçados entre qubits podem ser usados para teletransporte quântico, onde um estado entrelaçado compartilhado de dois qubits pode ser manipulado para transferir informações de um qubit para outro, independentemente da proximidade física relativa dos qubits. Os estados entrelaçados, que são estados naturais dos sistemas quânticos, também são importantes em disciplinas tais como química quântica e simulação quântica onde a(s) solução(ões) frequentemente assume a forma de estados multi-qubit entrelaçados. Pode-se também utilizar estados quânticos altamente entrelaçados de múltiplos qubits para, por exemplo, gerar números comprovadamente aleatórios. Existe até um pacote Qiskit para fazer isso!

Circuitos quânticos

Algoritmos e aplicativos que utilizam recursos da mecânica quântica podem ser escritos de forma fácil e eficiente na linguagem dos circuitos quânticos. Um circuito quântico é uma rotina computacional que consiste de operações quânticas coerentes em dados quânticos, como aqueles armazenados em qubits, e computação clássica concorrente em tempo real. Cada linha horizontal ou fio em um circuito representa um qubit, com a extremidade esquerda do fio sendo os dados quânticos iniciais, e a direita sendo os dados quânticos finais gerados pela computação do circuito quântico. Operações em qubits podem ser colocadas nesses fios, e são representadas por caixas.

_images/teleportation_detailed.png

Fig. 3 Circuito de teletransporte de estado quântico revisitado.

Circuitos quânticos permitem a um computador quântico receber informação clássica e oferecer uma solução clássica, aproveitando princípios quânticos como a interference e o entanglement para realizar a computação.

Um fluxo de trabalho de um algoritmo quântico típico consiste de:

  • O problema que queremos resolver,

  • Um algoritmo clássico que gera a descrição do circuito quântico,

  • O circuito quântico que precisa ser executado em hardware quântico,

  • E a solução clássica de saída para o problema que ela produz.

As portas quânticas formam as operações primitivas em dados quânticos. As portas quânticas representam a preservação da informação, transformações reversíveis dos dados quânticos armazenados em qubits. Essas transformações «unitárias» representam o núcleo mecânico quântico de um circuito quântico. Algumas portas como \(X\) (também escritas como \(\oplus\)) e \(CX\) possuem analogias clássicas como bit-flip e operações \(XOR\), respectiviamente, enquanto as outras não possuem. A transformação Hadamard (\(H\)), junto com a rotação \(rX(\theta)\) e \(rY(\theta)\), geram estados superpostos, enquanto portas como \(Z\), \(rZ(\theta)\), \(S\), e \(T\) refletem fases que podem ser usadas para interferência. Portas Two-qubit como a \(CX\) são usadas para criar um entrosamento entre pares de qubits, ou para «empurrar» a fase de um qubit para outro. Em contraste com portas, operações como «medição», representadas pelo símbolo do multímetro em uma caixa com uma linha conectando a um fio «alvo», extrai informação parcial sobre um estado qubit’s, geralmente perdendo a fase, para ser possível representa-lo como um bit clássico, e escrever aquele bit clássico no fio alvo (geralmente um fio clássico em algum dispositivo de leitura-saída).Esse é o caminho típico de obter informações dos dados quânticos em um dispositivo clássico. Perceba que apenas com \(H\), \(rZ(\theta)\), \(CX\), e portas de mensuração, ex. um conjunto universal de portas, podemos construir qualquer circuito quântico, incluindo aqueles que computam eficientemente as dinâmicas de qualquer sistema físico em sua natureza.

Algumas cargas de trabalho contém sequências extendidas de circuitos quânticos entrelaçados e computação clássica, por exemplo algoritmos quânticos variacionais executam circuitos quânticos dentro de um loop de otimização. Para essas cargas, a performance do sistema aumenta sustancialmente se os circuitos quânticos estão parametrizados, e as transições entre a execução do circuito e computação clássica não-atual se tornam eficientes. Consequentemente, definimos computação em tempo-quase-real para nos referir a computação com algoritmos que fazem repetidos uso de circuitos com hardware desenvolvido para acelerar o tempo computacional. Em contraste com a computação em tempo-real, onde a computação clássica ocorre dentro do tempo da descoêrencia do dispositivo quântico.

Construir circuitos quânticos complexos com o mínimo esforço está no coração do Qiskit, que suporta um rico conjunto de recursos de operações e pode ser passado para uma variedade de computadores quânticos ou simuladores clássicos. Com apenas algumas linhas de código, é possível construir circuitos complexos como o acima.

qr = QuantumRegister(3, 'q')
cr = ClassicalRegister(2, 'zx_meas')
qc = QuantumCircuit(qr,cr)
qc.reset(range(3))
qc.barrier()
qc.h(1)
qc.cx([1,0],[2,1])
qc.h(0)
qc.barrier()
qc.measure([0,1], [0,1])
qc.barrier()
qc.z(2).c_if(cr, 1)
qc.x(2).c_if(cr, 2)

Computadores quânticos

_images/system_one.jpeg

Fig. 4 Uma visão dentro do IBM Quantum System One.

Computadores quânticos programados com circuitos quânticos podem ser construídos de qualquer tecnologia quântica que permite a definição de qubits e que consegue implementar operações quânticas de um ou dois qubits com alta fidelidade. Atualmente, arquiteturas baseadas em circuitos supercondutores, íons presos, pontos quânticos semicondutores, fótons e átomos neutros estão ativamente sendo desenvolvidas e muitas estão disponíveis para usuários através da internet. O Qiskit é agnóstico em relação a arquitetura subjacente de um dado sistema quântico, e pode compilar um circuito quântico para funcionar com a topologia de porta de emaranhamento de um dispositivo quântico, mapear as instruções do circuito ao conjunto nativo de portas do dispositivo, e optimizar o circuito quântico resultante para fidelidade aprimorada.

Como no exemplo de cancelamento de ruído acima, a amplitude e a fase de qubits são graus de liberdade contínuos sobre os quais as operações nunca poderão ser feitas exatamente. Estes erros das portas, juntamente com o ruído do ambiente no qual um computador quântico reside, podem conspirar para arruinar um cálculo se não forem contabilizados no processo de compilação, e podem exigir procedimentos adicionais de mitigação a fim de obter um resultado de alta fidelidade nos sistemas quânticos atuais suscetíveis a ruído. O Qiskit é capaz de levar em conta uma ampla gama de métricas de calibração de dispositivos (veja a figura abaixo) na sua estratégia de compilação e pode selecionar um conjunto ideal de qubits para executar um determinado circuito quântico. Além disso, o Qiskit hospeda uma coleção de técnicas de mitigação de ruído para extrair uma representação fiel do resultado de um circuito quântico.

_images/system_error.png

Fig. 5 Topologia e taxas de erro para o sistema ibmq_manhattan do IBM Quantum.

Onde ir a partir daqui

Espero que tenhamos dado ao leitor um sabor do que a Computação Quântica tem para oferecer e que você esteja com fome de mais. Em caso afirmativo, há vários recursos que podem ser interessantes:

  • Getting started with Qiskit - Mergulhe diretamente no Qiskit.

  • Field guide to quantum computing : Uma introdução leve baseada em física escrita por alguns dos fundadores da computação quântica que faz uso do compositor de circuitos interativo.

  • Qiskit textbook : Um complemento de cursos universitários de algoritmos quânticos e computação quântica baseado no Qiskit.