Medir-No Medir Circuito 1: Hadamard 1 Qubit

Circuito de 1 qubit al que se aplica una puerta Hadamard.



Veremos como construir un circuito simple con un único qubit al que se le aplcia una puerta Hadamard. Lo ejecutaremos CON y SIN medición para ver la diferencia.

 

from qiskit import QuantumCircuit
import matplotlib.pyplot as plt
from qiskit_aer import Aer
import numpy as np

# Crear un circuito cuántico con 1 qubit
qc = QuantumCircuit(1,1)

qc.h(0)


# Medimos el qubit --> Luego eliminaremos el "#" para que se ejecute con medición
# qc.measure(0,0)


# Dibujar el circuito
qc.draw(output='mpl')

# LO EJECUTAMOS Y VEMOS LOS RESULTADOS EN FORMATO ESFERA DE BLOCH



# Configuración del simulador cuántico
Procesando = Aer.get_backend('statevector_simulator')  # Obtiene el backend 'statevector_simulator' de Qiskit Aer

# Ejecutar el circuito
job = Procesando.run(qc, shots=1024).result()

# __________ Mostrar contador de ejecuciones _________________
# counts = job.get_counts(qc)
# print("Contador de ejecuciones: ")
# print(counts) 
# ____________________________________________________________


# __________ Mostrar los vectores de estado __________________
# Obtener el vector de estado resultante
statevector = job.get_statevector(qc)
# Convertir el Statevector a un array de numpy
statevector_array = np.asarray(statevector)

print(" ")
print("Statevector resultante:")
print(statevector_array)

# Imprimir los estados base y sus correspondientes amplitudes de probabilidad
n = qc.num_qubits
for i, amplitude in enumerate(statevector_array):
    binary_state = format(i, f'0{n}b')
    print(f"|{binary_state}⟩: {amplitude}")
# ____________________________________________________________

# Visualizar el estado final en la esfera de Bloch
from qiskit.visualization import plot_bloch_multivector, plot_state_city 
import matplotlib.pyplot as plt 

plot_bloch_multivector(statevector)

RESULTADO:

EXPLICACIÓN:
Matemáticamente, un qubit se representa como un vector en un espacio de Hilbert de dos dimensiones:

∣ψ⟩=α∣0⟩+β∣1⟩     donde:

  • ∣0⟩ y ∣1⟩ son los estados base.
  • α y β son números complejos que representan las amplitudes de probabilidad de los estados base ∣0⟩ y ∣1⟩

Es decir: Existen ∣α∣2 probabilidades de que el Qubit colapse a “1” y ∣β∣2 probabilidades de que colapse a “0”

Además tienen que satisfacer la condición de normalización: ∣α∣2+ ∣β∣2=1

 

Un qubit |0⟩ tendría esta notación:  [1+0·j  0+0·j], porque al 100% está en (1 0)

Si pensamos en la puerta Hadamard, decíamos que pasaba el qubit a un estado en el que tenía las mismas posibilidades de colapsar a “0” o a “1”, de forma que podemos decir que la puerta de Hadamard transforma los estados de la siguiente forma:

|0⟩  pasa a 1/√2  ·|0⟩ + 1/√2  ·|1⟩         o, según la notación de números complejos: 1/√2 ·(1+0·j)  +  1/√2 ·(1+0·j) porque tiene la misma probabilidad de colapsar a "0" o a "1"

1/√2  =  0.70710678

Por eso nos aparece en el resultado

Statevector resultante: [0.70710678+0.j 0.70710678+0.j]

Probabilidad de que colapse a |0⟩: (0.7071067811865476+0j)

Probabilidad de que colapse a |1⟩: (0.7071067811865476+0j):

 

Si lo vemos en la esfera de Bloch comprobaremos que ha pasado el qubit a la “línea del ecuador” de dicha esfera, porque ahí es donde existen las mismas probabilidades de colapsar a “0” o a “1”

 

Ahora incluiremos una medición en el circuito:

Nos quedará así:

y si lo ejecutamos el resultado será:



VOLVER
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram