Circuito sencillo de dos qubits, cada uno de ellos con una puerta Hadamard.
Repetiremos el ejercicio del anterior ejemplo, con dos qbits en lugar de uno para ver la diferencia de resultados.
from qiskit import QuantumCircuit import matplotlib.pyplot as plt from qiskit_aer import Aer import numpy as np # Crear un circuito cuántico con 2 qubits qc = QuantumCircuit(2,2) # Aplicar una puerta Hadamard a cada qubit qc.h(0), qc.h(1) # Medimos todos los qubits # qc.measure_all() # qc.measure(0,0) # qc.measure(1,1) # Dibujar el circuito qc.draw(output='mpl')
# LO EJECUTAMOS Y VEMOS LOS RESULTADOS # 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=1).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:
Contador de ejecuciones: {'00': 1}
Statevector resultante: [0.5+0.j 0.5+0.j 0.5+0.j 0.5+0.j]
|00⟩: (0.5000000000000001+0j)
|01⟩: (0.5000000000000001+0j)
|10⟩: (0.5000000000000001+0j)
|11⟩: (0.5000000000000001+0j)
En el ejemplo anterior, con 1 qubit, teníamos dos posibles resultados, ∣0⟩ y ∣1⟩, con la misma probabilidad, por lo tanto |1/√2|2
ya que |1/√2|2+|1/√2|2=1 y 1/√2 = 0.7071067811865476
En este caso, hay CUATRO posibles resultados: ∣00⟩, ∣01⟩, ∣10⟩ y ∣11⟩ con la misma probabilidad: 0,5
ya que |1/2|2+|1/2|2+|1/2|2+|1/2|2=1 y 1/2 = 0.5
Representados en la esfera de Bloch quedaría:
Nos quedará así:
Y al ejecutarlo podemos obtener cualquiera de los 4 resultados posibles: