# introduccion-a-la-computacion-cuantica-con-qiskit
Introducción a la computación cuántica con Qiskit
Volver a la portada del cursoConstrucción de Circuitos Cuánticos
Sección 3 · Operaciones Cuánticas Básicas
Construcción de circuitos cuánticos
Con la estructura clara, toca construir. En esta lección combinas puertas de uno y dos qubits para preparar estados concretos: superposiciones, estados con fase y estados entrelazados. El notebook de la lección acompaña cada idea con código que puedes modificar y volver a ejecutar.
Puertas de un qubit
El estado de un qubit se escribe como $|\psi\rangle = \alpha|0\rangle + \beta|1\rangle$, con $|\alpha|^2 + |\beta|^2 = 1$. Al medir, se obtiene 0 con probabilidad $|\alpha|^2$ y 1 con probabilidad $|\beta|^2$. Las puertas cambian esas amplitudes:
x: el NOT cuántico. Intercambia $|0\rangle$ y $|1\rangle$.h(Hadamard): crea superposición. Desde $|0\rangle$ produce $\frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)$, con 50 % de probabilidad para cada resultado.z,s,t: cambian la fase de $|1\rangle$ sin alterar las probabilidades de medir en la base estándar.ry(θ): rota el qubit un ángulo θ y permite fijar cualquier probabilidad entre 0 y 1.
Statevector calcula el estado exacto sin tomar muestras, ideal para comprobar qué hace cada puerta:
import numpy as np
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
for nombre, puerta in [("x", "x"), ("h", "h")]:
qc = QuantumCircuit(1)
getattr(qc, puerta)(0)
print(nombre, Statevector(qc).probabilities_dict(decimals=3))
qc = QuantumCircuit(1)
qc.ry(np.pi / 3, 0)
print("ry(pi/3)", Statevector(qc).probabilities_dict(decimals=3))
Con ry(π/3) la probabilidad de medir 1 es $\sin^2(\pi/6) = 0.25$. Rotar es la forma de controlar probabilidades con precisión.
La fase: invisible pero decisiva
Los estados $\frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)$ y $\frac{1}{\sqrt{2}}(|0\rangle - |1\rangle)$ dan las mismas probabilidades al medir. La diferencia es la fase, y aparece al aplicar otra Hadamard: la secuencia h, h devuelve siempre 0, pero h, z, h devuelve siempre 1. Esa interferencia entre amplitudes es el mecanismo detrás de todos los algoritmos cuánticos.
Puertas de dos qubits y entrelazamiento
La puerta cx (CNOT) invierte el qubit objetivo solo si el qubit de control vale 1. Combinada con una Hadamard produce un estado de Bell, $\frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)$: ninguno de los dos qubits tiene un valor definido por separado, pero sus resultados siempre coinciden. Si se encadenan más cx, se obtiene un estado GHZ, con tres o más qubits entrelazados:
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler
def ghz(n):
qc = QuantumCircuit(n)
qc.h(0)
for i in range(n - 1):
qc.cx(i, i + 1)
qc.measure_all()
return qc
sampler = StatevectorSampler(seed=7)
resultado = sampler.run([ghz(3)], shots=1000).result()
print(resultado[0].data.meas.get_counts())
Solo aparecen 000 y 111. Al medir el primer qubit, el resultado de los otros dos queda determinado.
Qué verás en el notebook
- El efecto de cada puerta de un qubit, comprobado con
Statevector. - Interferencia: por qué
h-z-hequivale ax. - Los cuatro estados de Bell y cómo prepararlos.
- Estados GHZ de distintos tamaños y sus conteos.
Trampas comunes
- Pensar que la fase no importa. No cambia una medición directa, pero cambia el resultado tras más puertas.
- Invertir control y objetivo. En
cx(0, 1), el qubit 0 controla y el 1 cambia. - Confundir superposición con incertidumbre clásica. Una moneda oculta no produce interferencia; un qubit sí.
- Esperar conteos exactos. Con 1000 disparos, un 50 % puede salir 480 o 520: es variación estadística.
Cierre
Superposición, fase y entrelazamiento son los tres ingredientes de cualquier algoritmo cuántico. Antes de seguir, prepara tú mismo los cuatro estados de Bell y verifica sus probabilidades con Statevector.