Porta Hadamard utilizando Qiskit

Segue a seguir a implementação mais simples possível do qiskit: um gerador de números aleatórios.

Este tutorial foi baseado na aula oficial do Qiskit, disponível em: https://www.youtube.com/watch?v=RrUTwq5jKM4

Explicando linha a linha.

Importação do módulo qiskit a ser utilizado.

from qiskit import *

Cria um registrador quântico, ou seja, um qubit.

qr = QuantumRegister(1)

Cria um registrador clássico para armazenar a resposta, ou seja, um bit.

cr = ClassicalRegister(1)

Cria um circuito quântico, composto de um qubit e um bit

circuit = QuantumCircuit(qr,cr)

Aplica uma porta Hadamard, representado pelo “h”, sobre o primeiro qubit.

circuit.h(qr[0])

Faz a medição do circuito, armazenando no registrador clássico

circuit.measure(qr,cr)

O comando a seguir server para mostrar o circuito. Como estou utilizando o Spyder, estou utilizando “print”.

print(circuit)

#No Jupyter Notebook

#utilizar %matplotlib.inline

#circuit.draw()

Define qual o backend a utilizar. No caso, vou rodar num simulador de computador quântico, o qasm_simulator. Qasm vem de “quantum assembly simulator”.

simulator = Aer.get_backend('qasm_simulator')

Roda o circuito no simulador escolhido e armazena o resultado na variável “result”.

result = execute(circuit, backend=simulator).result() print(result)

O resultado será algo como o da figura a seguir.

O código a seguir serve para mostrar histograma dos resultados.

from qiskit.tools.visualization import plot_histogram plot_histogram(result.get_counts(circuit))

Relembrando um pouco da teoria.

Um qubit

após passar por uma porta Hadamard, gera um qubit no estado superposto:

Este estado tem igual probabilidade de resultar em 0 ou 1, após ser medido — este é exatamente o resultado do qiskit, com 52,1% de resultar em 0 e 47,9%.

Existe uma aplicação prática de um circuito como o mostrado: um autêntico gerador de números aleatórios!

Qualquer gerador de números aleatórios encontrado num computador clássico não é autêntico. É sempre um algoritmo pseudo-aleatório, uma função tão errática que aparenta ter um comportamento aleatório, um procedimento determinístico, no final das contas.

Somente um computador quântico tem um comportamento verdadeiramente aleatório, por natureza!

Segue o arquivo para download no Github https://github.com/asgunzi/qiskitHadamard

Originally published at http://informacaoquantica.wordpress.com on April 4, 2020.

Project Manager on Analytics and Innovation. “Samurai of Analytics”. Passionate about Combinatorial Optimization, Philosophy and Quantum Computing.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store