Circuito-02: Cuatro Qubits y Puerta Multi-Controled-X

En este ejercicio prepararemos un circuito con una puerta Multi-Controled-X



Si todos los qubits de control están en el estado ∣1⟩, se aplica una operación NOT (X) al qubit objetivo, cambiando su estado de ∣0⟩ a ∣1⟩ o de ∣1⟩ a ∣0⟩.

Para comprobarlo pondremos los tres qubits de control a ∣1⟩ aplicando puertas X y deberíamos ver que en todas las ejecuciones (en las 10.000) el estado del qubit q3 es '1'.

En el código está comentado la aplicación de puertas Hadamard para que puedas probar como afecta a los resultados.

 

# CIRCUITO-02 : CUATRO QUBIT CON UNA PUERTA multi-controled-X

from qiskit import QuantumCircuit                          # Importa la clase QuantumCircuit de Qiskit
from qiskit_aer import Aer                                 # Importa el módulo Aer de Qiskit Aer
from qiskit.circuit.library import HGate, MCXGate          # Importa la puerta MCX

mcx_gate = MCXGate(3)              # define una MCX de 3 qubits

qc = QuantumCircuit(4, 1)          # define un circuito de 3 qubits y un bit para medir

qc.x(0), qc.x(1), qc.x(2)          # pone a en estado 1 los tres qubits

# qc.h(0), qc.h(1), qc.h(2)        # Para probar con puertas Hadamard  

qc.append(mcx_gate, [1, 0, 2, 3])  # incorpora al circuito un apuerta MCX con el qubit 3 como objetivo (el último que se le indique)

# qc.measure (0,0)
# qc.measure (1,1)
# qc.measure (2,2)

qc.measure (3,0)                   # mide el estado del qubit 3
qc.draw('mpl')                     # dibujar el circuito

# CIRCUITO-02 : LO EJECUTAMOS 10.000 VECES Y VEMOS LOS RESULTADOS

# Configuración del simulador cuántico

Procesando = Aer.get_backend('qasm_simulator')  # Obtiene el backend 'qasm_simulator' de Qiskit Aer

# Ejecución del circuito cuántico en el simulador cuántico
Proceso = Procesando.run(qc, shots=10000).result()  # Ejecuta el circuito cuántico 10000 veces y obtiene los resultados

# Obtención de los resultados de la ejecución
Resultados = Proceso.get_counts(qc)  # Obtiene los conteos de los resultados de la ejecución del circuito
print(Resultados)  # Imprime los resultados en la consola
{'1': 10000}

 



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