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}