Como calcular a profundidade de um circuito quântico no Qiskit?

A profundidade de um circuito é uma métrica que calcula o maior caminho entre o input de dados e a saída. Cada porta conta como uma unidade. É uma contagem de tempo. Um ponto importante a considerar: se um qubit depende de outro, o um deles tem que esperar a computação do outro. Aquele que …

Continue lendo Como calcular a profundidade de um circuito quântico no Qiskit?

Qiskit Summer School 2020

Postagem sobre o summer school do Qiskit. https://www.linkedin.com/posts/arnaldogunzi_ibm-qiskit-quantumcomputing-activity-6706320160816435201-EOMD Quantum computing is a emerging field of knowledge. What was only theory years ago now is becoming reality. I'm very proud and honoured to have attended the Qiskit Summer School 2020. This course covered hot topics as quantum algorithms, error correction, superconducting devices and quantum chemistry, as …

Continue lendo Qiskit Summer School 2020

Rodando um computador quântico real

A IBM disponibiliza alguns computadores quânticos para serem rodados, via cloud. Vamos rodar um exemplo, utilizando a linguagem Qiskit. (Código fonte no Github: https://github.com/asgunzi/QiskitCompReal) Primeiramente vamos criar um circuito comum. Circuito terá dois qubits, e será um estado emaranhado. from qiskit import * from qiskit.visualization import plot_histogram circuit = QuantumCircuit(2,2) circuit.h(0) circuit.cx(0,1) circuit.measure(qr,cr) print(circuit) Note …

Continue lendo Rodando um computador quântico real

Terra, Fogo, Água e Ar

O Qiskit (linguagem de computação quântica da IBM), tem quatro grandes módulos, inspirados nos quatro elementos. O módulo Terra é o principal, aquele que temos contato inicial. É a nossa base. É onde os circuitos são construídos. O módulo Ar é o segundo que utilizamos. É onde escolhemos o simulador que vamos utilizar, ou podemos …

Continue lendo Terra, Fogo, Água e Ar

O Transpiler e PassManager no Qiskit

No Qiskit, podemos criar circuitos que atendam a nossa necessidade, como o seguinte. Porém, não necessariamente o hardware quântico vai ter exatamente as portas lógicas que suportam tais operações. O que o hardware vai ter são algumas portas lógicas básicas, e todas as que utilizamos são transformadas em portas equivalentes. Em termos físicos, a porta …

Continue lendo O Transpiler e PassManager no Qiskit

Combinar circuitos – Qiskit

Há várias formas equivalentes de combinar circuitos no Qiskit. Sejam o lado esquerdo do circuito igual ao lado direito, como a seguir: Se os circuitos tiverem o mesmo número de qubits, como no caso, dá para utilizar todos os métodos abaixo: lhs + rhslhs.compose(rhs)lhs.combine(rhs)lhs.append(rhs,range(5)) Quando o número de qubits for diferente, apenas o compose() funciona. …

Continue lendo Combinar circuitos – Qiskit

Soluções – IBM Quantum Challenge 2020 – parte 1

Vou postar uma série de posts com as minhas soluções e explicações sobre o IBM Quantum Challenge 2020. Este apresentou 4 desafios, em ordem progressiva de dificuldade, sobre pontos bastante interessantes de Computação Quântica, na linguagem qiskit. Download dos enunciados Neste link do Github é possível baixar os enunciados: https://github.com/qiskit-community/may4_challenge_exercises. Nos arquivos, há 4 pastas, …

Continue lendo Soluções – IBM Quantum Challenge 2020 – parte 1

Rotação no eixo YZ

Para fechar a última análise sobre rotações na esfera de Bloch, vamos analisar a rotação no eixo YZ. Postagens anteriores: - rotação em XY - Rotação em XZ As rotações nas situações acima têm aspectos que simplificam o entendimento. A rotação no eixo Y (plano XZ) pode ser pensada como uma em 2D. A rotação …

Continue lendo Rotação no eixo YZ

Como inicializar um estado qualquer no qiskit

O qiskit inicializa os qubits sempre no estado |0>. Às vezes, é útil conseguir inicializar os mesmos em um estado arbitrário qualquer – porque, só para criar o circuito para chegar ao estado desejado, já é um bom trabalho. Para inicializar com um qubit qualquer, utilizar a função initialize. circuit.initialize([vetor de estados], [qubits]) os parâmetros …

Continue lendo Como inicializar um estado qualquer no qiskit