# introduccion-a-la-computacion-cuantica-con-qiskit
Introducción a la computación cuántica con Qiskit
Volver a la portada del cursoEjecución de Circuitos en Simuladores
Sección 5 · Simulación y Ejecución en Qiskit
Ejecución de circuitos en simuladores
Antes de gastar tiempo de un procesador real, cada circuito se prueba en un simulador. Los simuladores son rápidos, gratuitos y deterministas si fijas una semilla. Pero no todos simulan lo mismo: algunos calculan el resultado ideal y otros imitan el ruido del hardware. Elegir bien te ahorra horas de depuración.
Tres formas de simular en Qiskit
Statevector: calcula el vector de estado exacto. No toma muestras; devuelve amplitudes y probabilidades exactas. Ideal para verificar que un circuito hace lo que esperas.StatevectorSampler: una primitiva de referencia del núcleo de Qiskit. Toma muestras ideales, sin ruido, con la misma interfaz que elSamplerdel hardware real.AerSimulator: el simulador de alto rendimiento de Qiskit Aer. Soporta modelos de ruido, varios métodos de simulación y circuitos más grandes.
Disparos y error estadístico
Un disparo (shot) es una ejecución completa del circuito con su medición. Como el resultado es aleatorio, cada probabilidad se estima con una frecuencia, y el error de esa estimación baja con la raíz del número de disparos: aproximadamente $\sqrt{p(1-p)/N}$. Pasar de 100 a 10,000 disparos reduce el error unas diez veces:
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler
qc = QuantumCircuit(1)
qc.h(0)
qc.measure_all()
sampler = StatevectorSampler(seed=11)
for shots in [100, 1000, 10000]:
conteos = sampler.run([qc], shots=shots).result()[0].data.meas.get_counts()
print(shots, "disparos -> P(1) estimada:", round(conteos.get("1", 0) / shots, 4))
La probabilidad real es 0.5. Con pocos disparos, desviaciones de varios puntos porcentuales son normales, no un error del circuito.
AerSimulator: ideal y con ruido
Un procesador real tiene errores en cada puerta y en cada medición. AerSimulator.from_backend copia el modelo de ruido, las puertas nativas y la conectividad de un procesador. Combinado con un backend falso de qiskit-ibm-runtime, que guarda una instantánea de un procesador real, puedes ver el efecto del ruido sin conexión:
from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
qc = QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.cx(1, 2)
qc.measure_all()
for nombre, sim in [("ideal", AerSimulator(seed_simulator=5)),
("ruidoso", AerSimulator.from_backend(FakeManilaV2(), seed_simulator=5))]:
conteos = sim.run(transpile(qc, sim, seed_transpiler=5), shots=2000).result().get_counts()
print(nombre, dict(sorted(conteos.items())))
En la versión ideal solo aparecen 000 y 111. En la ruidosa aparecen además resultados como 011 o 100, cada uno con unos pocos puntos porcentuales. Esa es la huella del ruido que verás en hardware real.
Por qué hay que transpilar
Un procesador solo ejecuta un conjunto reducido de puertas nativas y solo puede aplicar puertas de dos qubits entre qubits conectados. La función transpile reescribe el circuito para cumplir esas reglas: descompone puertas, asigna qubits físicos y agrega intercambios si hace falta. Con el AerSimulator ideal casi no cambia nada; con un modelo de hardware, el circuito transpilado suele ser más largo que el original.
¿Cuándo usar cada simulador?
- Depurar la lógica:
Statevector, porque da probabilidades exactas. - Probar el código que irá a hardware:
StatevectorSampler, porque tiene la misma interfaz de primitivas. - Anticipar el ruido:
AerSimulator.from_backendcon un backend falso. - Circuitos grandes:
AerSimulatorcon métodos comomatrix_product_state, útiles cuando hay poco entrelazamiento.
Trampas comunes
- Olvidar la semilla. Sin
seedniseed_simulator, los conteos cambian en cada ejecución y cuesta comparar. - Simular demasiados qubits con
Statevector. La memoria crece como $2^n$; más de 30 qubits ya supera a un equipo común. - No transpilar para Aer con ruido. El circuito debe usar las puertas nativas del modelo.
- Tomar el simulador ideal como predicción del hardware. El hardware siempre agrega ruido.
Cierre
Prueba primero en ideal, después con ruido y al final en hardware. Compara los conteos de los dos simuladores del ejemplo y calcula qué porcentaje de disparos cae fuera de 000 y 111: ese número es tu primera medida de la calidad de un procesador.