
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’).

Fig. 1 Cancelamento aproximado de um sinal de ruído por um tom de amplitude quase igual e deslocamento 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.
Uma computação geral em um computador quântico procede da mesma forma que o cancelamento de ruído. Para começar, se prepara uma superposição de todos os possíveis estados de computação. Isso é então usado como uma entrada para um circuito quântico que interfere seletivamente os 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 executado pelo circuito quântico.

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 emaranhamento. O emaranhamento se refere aos estados de mais de um qubit (ou partículas em geral) em que o estado combinado dos qubits contém mais informação do que os qubits independentemente. A esmagadora maioria dos estados quânticos de múltiplos qubits está emaranhada e representa um recurso valioso. Por exemplo, estados entrelaçados entre qubits podem ser usados para o teletransporte quântico, onde um estado emaranhado compartilhado de dois qubits pode ser manipulado para transferir informação de um qubit para outro independentemente da proximidade física relativa dos qubits. Estados entrelaçados, como estados naturais de sistemas quânticos, também são importantes em disciplinas como a química quântica e a simulação quântica onde a(s) solução(ões) geralmente tomam a forma de estados emaranhados multi-qubit. Também se pode utilizar estados quânticos altamente emaranhados de vários qubits para, por exemplo, gerar números aleatórios certificáveis. Há até mesmo um pacote Qiskit para fazer isso!
Circuitos Quânticos¶
Algoritmos e aplicações que utilizam recursos mecânico quânticos podem facilmente e eficientemente ser escritos 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, tais como os mantidos em qubits, e simultaneamente computações clássicas em tempo real. Cada linha horizontal, ou o fio em um circuito representa um qubit, sendo a extremidade esquerda do fio os dados quânticos iniciais e o direito os dados quânticos finais gerados pela computação do circuito quântico. As operações nos qubits podem ser colocadas nesses fios e são representadas por caixas.

Fig. 3 Circuito de teletransporte 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 em:
O problema que queremos resolver,
Um algoritmo clássico que gera uma descrição de um circuito quântico,
O circuito quântico que precisa ser executado em hardware quântico,
E a solução clássica da saída para o problema que ele produz.
Portas quânticas formam as operações primitivas em dados quânticos. Portas quânticas representam a preservação de informação, transformações reversíveis em dados quânticos guardados em qubits. Essas transformações “unitárias” representam a origem mecânica quântica de um circuito quântico. Algumas portas como \(X\) (também escrito como \(\oplus\)) e \(CX\) têm análogos clássicos como operações de bit-flip e \(XOR\), respectivamente, enquanto outras não o têm. A porta Hadamard (\(H\)), juntamente às portas parametrizadas \(rX(\theta)\) e \(rY(\theta)\), geram estados de superposição, enquanto portas como \(Z\), \(rZ(\theta)\), \(S\) e \(T\) geram fases que podem ser usadas para interferência. Portas de dois qubits como a porta \(CX\) são usadas para gerar emaranhamento entre pares de qubits, ou para “expulsar” a fase de um qubit ou outro. Em contraste com portas, operações como “medição”, representada pelo símbolo do medidor em uma caixa com uma linha conectando um fio “alvo”, extraem informação parcial sobre o estado de um qubit, frequentemente perdendo a fase, para poder representá-lo como um bit clássico e escrever tal bit clássico no fio “alvo” (comumente um fio completamente clássico em algum dispositivo de leitura). Essa é a maneira típica de levar informação dos dados quânticos para um dispositivo clássico. Perceba que com apenas as portas \(H\), \(rZ(\theta)\), \(CX\), e portas de medida, um conjunto universal de portas lógicas, podemos construir qualquer circuito quântico, incluindo aqueles que computam eficientemente a dinâmica de qualquer sistema físico na natureza.
Algumas cargas de trabalho contêm uma sequência extensa de circuitos quânticos e computações clássicas intercalados, por exemplo, algoritmos variacionais quânticos executam circuitos quânticos dentro de um loop de otimização. Para estas cargas de trabalho, o desempenho do sistema aumenta substancialmente se os circuitos quânticos forem parametrizados, e as transições entre a execução do circuito e a computação clássica não simultânea forem eficientes. Consequentemente, nós definimos computação quase em tempo para se referir a computação com algoritmos que fazem uso repetido de circuitos quânticos com hardware desenvolvido para acelerar o tempo de computação. Na computação quase em tempo, a computação clássica ocorre em uma escala de tempo maior que a coerência da computação quântica. Contraste isso com computação em tempo real, onde o cálculo clássico ocorre dentro do tempo de decoerência do dispositivo quântico.
Construindo circuitos quânticos complexos com esforço mínimo está no coração do Qiskit. Com apenas algumas linhas de código, é possível construir circuitos complexos como o mostrado 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)
que suportam um rico conjunto de recursos de operações, e podem ser passadas para uma gama de computadores quânticos ou simuladores clássicos.
Computadores quânticos¶

Fig. 4 Uma vista 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.

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.