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’).
Como mostrado acima, quando a diferença de fase é próxima de um múltiplo ímpar de π, 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.
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.
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.
Quantum gates form the primitive operations on quantum data. Quantum gates represent information preserving, reversible transformations on the quantum data stored in qubits. These “unitary” transformations represent the quantum mechanical core of a quantum circuit. Some gates such as X (also written as ⊕) and CX have classical analogs such as bit-flip and XOR operations, respectively, while others do not. The Hadamand (H) gate, along with the parameterized rotates rX(θ) and rY(θ), generate superposition states, while gates such as Z, rZ(θ), S, and T impart phases that can be used for interference. Two-qubit gates like the CX gate are used to generate entanglement between pairs of qubits, or to “kick” the phase from one qubit to another. In contrast to gates, operations like “measurement”, represented by the meter symbol in a box with a line connecting to a “target” wire, extract partial information about a qubit’s state, often losing the phase, to be able to represent it as a classical bit and write that classical bit onto the target wire (often a fully classical wire in some readout device). This is the typical way to take information from the quantum data into a classical device. Note that with only H, rZ(θ), CX, and measurement gates, i.e. a universal gate set, we can construct any quantum circuit, including those efficiently computing the dynamics of any physical system in nature.
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 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.
Fonte: https://qiskit.org/documentation/locale/pt_BR/qc_intro.html
Commenti