04 zirkuitua: SWAP Atea = CX Hirukoitza

Egiaztatuko dugu gauza bera dela hiru CX edo SWAP ate bat aplikatzea



SWAP ateak bi qubiten egoerak trukatzen ditu; bada, hiru CX aplikatzea, kontrol-qubita eta objektiboa trukatuz, eta SWAP atea aplikatzea baliokidea dela egiaztatuko dugu.

Aurreko ekitaldian bezala, urratsez urrats azaltzen saiatuko gara.

# CIRCUITO-04 : PUERTA SWAP = TRIPLE CX
# (La puerta SWAP intercambia los estados de dos qubits)

from qiskit import QuantumCircuit        # Importa la clase QuantumCircuit de Qiskit
from qiskit_aer import Aer               # Importa el módulo Aer de Qiskit Aer

qc = QuantumCircuit(2, 2)                # Definimos un circuito con dos qubit y dos bit para realizar las mediciones
qc.x(1)                                  # Puerta X para poner a 1 el quibit

qc.cx(0, 1), qc.cx(1, 0), qc.cx(0, 1)    # Tres CX intercambiando objetos y objetivos

qc.swap(0, 1)                            # Puerta SWAP (intercambiará los valores)


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


qc.draw('mpl')

 

# CIRCUITO 04 : AHORA PINTAREMOS EL CIRCUITO CON LINEAS VERTICALES PARA COMENTARLAS 

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
qc.draw(output='mpl', ax=ax)

# Agregar líneas verticales y comentarios
# Estos valores de x y y necesitan ser ajustados dependiendo de la posición en el circuito donde quieres la línea/comentario

ax.axvline(x=0.3, color='r', linestyle='--')
ax.text(0.2, 1.3, '(1)', rotation=90, verticalalignment='center', color='red')

ax.axvline(x=1.3, color='b', linestyle='--')
ax.text(1.2, 1.3, '(2)', rotation=90, verticalalignment='center', color='blue')

ax.axvline(x=2.3, color='r', linestyle='--')
ax.text(2.2, 1.3, '(3)', rotation=90, verticalalignment='center', color='red')

ax.axvline(x=3.3, color='b', linestyle='--')
ax.text(3.2, 1.3, '(4)', rotation=90, verticalalignment='center', color='blue')

ax.axvline(x=4.3, color='r', linestyle='--')
ax.text(4.2, 1.3, '(5)', rotation=90, verticalalignment='center', color='red')


# Mostrar el gráfico
plt.show()

Urratsez hurrats:

  • (0)  ∣oo
  • (1)  ∣10
  • (2)  ∣10
  • (3)  ∣11
  • (4)  ∣01
  • (5)  ∣10

 

# CIRCUITO-04 : 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
{'10': 10000}
Beti '10 'itzultzen digu, hiru CXak eta SWAPa aplikatu aurretik zegoena. SWAPa kenduz edo hiru CXak kenduz probatzen badugu, ikusiko dugu qubiten artean egoerak trukatzen dituela, eta '01 'itzuliko duela.



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