Medir un qubit da un resultado al azar
La medición cuántica es el momento en que un qubit deja de ser una lista de amplitudes y da un único resultado, 0 o 1. Saber qué esperar de una medición es lo que convierte la teoría en algo que puedes comprobar.
Una medición sola no enseña casi nada. Por eso un programa se repite muchas veces y se cuentan los resultados.
Al final de esta lección
Nota
Puedo predecir cuántas veces saldrá cada resultado al medir un estado muchas veces.
Palabras clave
| Palabra | Qué significa |
|---|---|
| Medición | leer el qubit, que da un único 0 o 1 |
| Disparo | una ejecución completa que acaba en una medición |
| Conteo | cuántas veces salió cada resultado |
| Probabilidad | la amplitud al cuadrado |
| Semilla | el número que fija la secuencia de azar del simulador |
| Conteo esperado | la probabilidad por el número de disparos |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
La probabilidad es la amplitud al cuadrado
Al medir, el simulador elige un resultado con esta regla: cada uno sale con una probabilidad igual a su amplitud al cuadrado. Después de medir, el qubit queda en el resultado que salió.
Con el estado [0.6, 0.8], el 0 sale con probabilidad 0,36 y el 1 con 0,64. Nunca ves las amplitudes. Ves un 0 o un 1.
Ejemplo resuelto: conteos esperados en 1000 disparos
| Estado | Probabilidad del 0 | Probabilidad del 1 | Conteo esperado del 0 | Conteo esperado del 1 |
|---|---|---|---|---|
| [1, 0] | 1 | 0 | 1000 | 0 |
| [0,707 ; 0,707] | 0,5 | 0,5 | 500 | 500 |
| [0,6 ; 0,8] | 0,36 | 0,64 | 360 | 640 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El azar del simulador está fijado
Nota
El laboratorio es un simulador, no un ordenador cuántico. Su azar sale de una semilla, así que cada ejecución repite los mismos conteos. Los scripts escriben en inglés: "shots" quiere decir "disparos" y "seed" quiere decir "semilla".
Mil disparos con dos semillas
docker exec jupyter python3 steps/measure.pySe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Qué escribe el script de la medición
El script mide mil veces el estado de H. Con la semilla 1 salen 507 ceros y 493 unos. Con la semilla 2 salen 503 y 497. Con la semilla 1 otra vez salen exactamente los primeros.
Son cifras cercanas a 500, pero casi nunca 500 justos. Eso es el azar.
Un error frecuente
Advertencia
Mucha gente cree que, con probabilidad 0,5, saldrán justo 500 ceros y 500 unos. No es así. La probabilidad dice lo que esperar en promedio. En una serie concreta salen cifras cercanas, como 507 y 493, y es lo normal.
Un número al azar elige el resultado
El simulador elige el resultado con un número al azar entre 0 y 1. Suma las probabilidades una a una, como una regla con tramos. El resultado es el tramo donde cae el número.
Con las probabilidades 0,36 y 0,64, el primer tramo llega hasta 0,36. Un número menor da el 0. Uno mayor da el 1.
Ejemplo resuelto: tramos de [0,6 ; 0,8]
| Tramo | Desde | Hasta | Resultado |
|---|---|---|---|
| 1 | 0 | 0,36 | 0 |
| 2 | 0,36 | 1 | 1 |
| Número al azar 0,20 | cae en el tramo 1 | 0 | |
| Número al azar 0,50 | cae en el tramo 2 | 1 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Los tramos en Python
# Probabilidades de un estado y un número al azar fijo.
probabilidades = [0.36, 0.64]
azar = 0.5
acumulado = 0
resultado = 0
for i in range(2):
acumulado = acumulado + probabilidades[i]
if azar >= acumulado:
resultado = i + 1
print(resultado)
# Cambia azar a 0.2 y pulsa Run otra vez.