¿Qué es un qubit?¶
Si nunca has estudiado computación cuántica, esta página es tu punto de partida. No necesitas saber física: solo iremos despacio.
Bits, pero cuánticos¶
Un ordenador clásico guarda información en bits. Un bit solo puede estar en
uno de dos estados: 0 o 1, como un interruptor apagado o encendido.
Un qubit (bit cuántico) es la versión cuántica de esa idea, pero con dos diferencias importantes:
- Superposición. Mientras nadie lo mide, un qubit puede estar a la vez en
0y en1, con unos pesos (amplitudes) para cada opción. - Entrelazamiento. Varios qubits pueden quedar tan ligados que el estado de uno depende del otro, aunque estén separados.
Aunque parezca magia, es simplemente cómo se comporta la materia a escalas muy pequeñas. Las matemáticas que lo describen son el álgebra lineal: un qubit es un vector de dos números complejos.
Cómo se ve en vqubit¶
No necesitas manejar esos vectores a mano. En vqubit, lo primero es decidir
dónde vive cada qubit. Ese "dónde" se llama identificador cuántico o Qid:
import vqubit as vq
q0 = vq.LineQubit(0) # el qubit 0 de una línea
q1 = vq.LineQubit(1) # el qubit 1 de la misma línea
Una línea (LineQubit) es solo un modelo sencillo: los qubits se numeran 0, 1,
2, .... También existen rejillas (GridQubit) para imitar la disposición
física de muchos procesadores reales, y qubits con nombre (NamedQubit).
Superposición con una sola puerta¶
La puerta Hadamard (H) pone un qubit en superposición: a partes iguales
entre 0 y 1.
circuito = vq.Circuit(vq.H(q0))
estado = vq.Simulator().simulate(circuito, qubit_order=[q0])
print(estado)
Si mides ese qubit muchas veces, verás 0 aproximadamente la mitad de las veces
y 1 la otra mitad. La superposición no significa que "esté en los dos a la
vez" en el sentido cotidiano: significa que, hasta que lo mides, sus
probabilidades están repartidas.
Medición¶
Medir un qubit lo obliga a "decidirse" por 0 o por 1. El resultado es
aleatorio, pero con probabilidades que dependen del estado. En vqubit:
resultado = vq.Simulator().run(vq.Circuit(vq.H(q0), vq.measure(q0, key="result")), repetitions=1000)
print(resultado.histogram(key="result"))
Siguientes pasos¶
Ahora que sabes qué es un qubit, aprende qué le puedes hacer: las puertas cuánticas.