¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Fundamentos del simulador cuántico

Aquí está la lección completa para leer. Crea una cuenta gratuita para practicarla en un laboratorio en vivo.

Laboratorio de contenedores12 min de lectura7 comandos

¿Qué hace un qubit que no haga un bit?

Un bit es 0 o 1. Un qubit se describe con dos números, uno para cada respuesta, y una medición los convierte en un único 0 o 1, al azar. Vas a construir esa regla tú mismo, en un archivo corto de Python que puedes leer. Funciona en un ordenador normal, así que es un simulador, no un ordenador cuántico, y no puede mostrar si un ordenador cuántico es más rápido. Lo que muestra son las reglas.

Al terminar esta lección

Nota

Puedo crear un qubit, aplicarle una puerta, medirlo y decir qué muestran los recuentos.

Palabras clave

  • Qubit: la versión cuántica de un bit, descrita con dos amplitudes.
  • Amplitud: un número para un resultado. Su cuadrado es la probabilidad de ese resultado.
  • Puerta: un paso que cambia las amplitudes, como X o H.
  • Medición: leer el qubit, lo que da un único 0 o 1, al azar.
  • Disparo (shot): una ejecución completa, que termina con una medición.
  • Simulador: un programa de un ordenador normal que sigue las reglas.

Para empezar: lo que ya sabes

Nota

Responde mentalmente. 1. ¿Cuántos valores distintos pueden guardar 2 bits? 2. Si se lanza 1000 veces una moneda justa, ¿cuántas caras esperas más o menos? 3. ¿Cuánto es 0,5 al cuadrado? Respuestas: 4 combinaciones, pero solo una a la vez; unas 500; 0,25.

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra de arriba de la lección y espera a que diga que está en marcha. Hay un solo contenedor, jupyter, y el terminal llega a su Python con docker exec jupyter, que ejecuta una orden dentro de él. El enlace JupyterLab abre su página web, en el puerto 8888. Cada botón Ejecutar de abajo escribe su orden en el terminal de tu laboratorio, una detrás de otra en la misma sesión. Para verlas o escribir las tuyas, pulsa Abrir terminal (pestaña nueva) en la barra.

Un simulador es un archivo que puedes leer

ls lista la carpeta de trabajo: qsim.py, el simulador, menos de 70 líneas de NumPy, el cuaderno start.ipynb y la carpeta steps. El primer script crea un qubit en el estado |0>. La primera línea que muestra, 1.000|0>, se lee «amplitud 1 para la respuesta 0». Las probabilidades son [1. 0.]: seguro que se lee 0. Dos qubits necesitan 4 amplitudes, una para cada uno de 00, 01, 10 y 11.

Comando
docker exec jupyter ls

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
docker exec jupyter python3 steps/qubit.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una puerta cambia las amplitudes

La puerta X cambia 0 por 1, así que |0> pasa a 1.000|1>. La puerta H hace una mezcla a partes iguales: 0.707|0> + 0.707|1>. Cada amplitud es 0,707, y 0,707 al cuadrado es 0,5, así que las probabilidades son [0.5 0.5].

Comando
docker exec jupyter python3 steps/gates.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una medición da una sola respuesta, al azar

El script mide 1000 veces el estado H, con una semilla fija para que cada ejecución salga igual. La semilla 1 da 507 ceros y 493 unos. La semilla 2 da 503 y 497. La semilla 1 otra vez da exactamente el primer resultado. Casi la mitad cada uno, nunca justo la mitad: eso es el azar.

Comando
docker exec jupyter python3 steps/measure.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comprueba

Consejo

El estado H tiene una amplitud de 0,707 para cada respuesta. ¿Por qué los recuentos están cerca de 500 y 500, y no de 707 y 707? Respuesta: la probabilidad es la amplitud al cuadrado, 0,707 al cuadrado es 0,5, y las dos probabilidades suman 1.

Dos qubits pueden quedar unidos

H en el primer qubit y después CNOT dan un estado de Bell: 0.707|00> + 0.707|11>. Los recuentos solo contienen 00 y 11 (507 y 493). Nunca 01 ni 10: los dos qubits siempre coinciden, aunque cada uno por separado es una moneda al aire.

Comando
docker exec jupyter python3 steps/bell.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Las amplitudes pueden anularse

H y otra vez H devuelve 1.000|0>, y H, Z y H devuelve 1.000|1>. La segunda H suma las amplitudes, y con la Z en medio una de las dos respuestas se anula. Es la interferencia, y así es como un programa cuántico dirige las probabilidades.

Comando
docker exec jupyter python3 steps/interfere.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Dirigir las probabilidades hacia una respuesta

Cuatro elementos se numeran 00, 01, 10 y 11, y el 11 está marcado. Todos empiezan con amplitud 0,500, así que cada uno tiene probabilidad 0,25. Cambiar el signo del marcado no cambia ninguna probabilidad, pero un paso más, que refleja cada amplitud respecto a la media, deja 1.000|11>: el elemento marcado es ahora seguro.

Comando
docker exec jupyter python3 steps/amplify.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que un ordenador cuántico prueba todas las respuestas a la vez y muestra sin más la mejor. Una medición da una respuesta, elegida al azar según las amplitudes al cuadrado. La habilidad está en organizar las amplitudes, con puertas e interferencia, para que la respuesta que quieres sea la probable.

Lo que un simulador no puede mostrar

Esto es qsim.py funcionando en un ordenador normal. Guarda todas las amplitudes, así que cada qubit más duplica el trabajo, y no puede mostrar ninguna aceleración. Sigue las reglas con exactitud, por eso sirve para aprenderlas, y no dice nada de cómo se construye una máquina real ni de lo rápida que sería.

El mismo trabajo en un cuaderno

Abre JupyterLab desde la barra y haz doble clic en start.ipynb. Hace lo que hacían los scripts, celda a celda, y termina con un gráfico de barras de los recuentos de un estado de Bell. Haz clic en una celda y pulsa Mayús y Intro para ejecutarla. La última celda es el sitio de tu propia pregunta.

Comprobación final

Consejo

Responde sin mirar atrás. 1. ¿Cuál es la probabilidad de un resultado, dada su amplitud? 2. ¿Qué hace la puerta H a |0>? 3. En un estado de Bell, ¿qué parejas de respuestas aparecen? 4. ¿Puede este simulador mostrar que un ordenador cuántico es más rápido? Respuestas: la amplitud al cuadrado; hace una mezcla a partes iguales, 0,707 cada una; solo 00 y 11; no, es un simulador en un ordenador normal.

Para el profesorado

Consejo

Esta lección es un pequeño ejemplo de una lección practicada en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia propia de cada alumno. El laboratorio es un solo servicio, JupyterLab con un pequeño simulador de NumPy que el alumnado puede leer, y nada de lo que hay aquí se corrige solo: cada alumno entrega un cuaderno propio que usa qsim.py, descargado de JupyterLab, y una frase sobre lo que mostró. Puntos clave: 1. Un qubit son dos amplitudes y la probabilidad es su cuadrado. 2. Las puertas cambian las amplitudes y una medición da una respuesta al azar. 3. La interferencia dirige las probabilidades. Error frecuente: «prueba todas las respuestas a la vez». Material: el laboratorio y un navegador. Consejo: pide al alumnado que prediga cada resultado antes de pulsar Ejecutar. Las semillas son fijas, así que cada copia muestra los mismos números, y el laboratorio dice claramente que no puede mostrar la velocidad. Cópiala en tu propio módulo y modifícala, o crea una desde cero con el menú Laboratorio del constructor de lecciones.

Sobre este laboratorio y su código: Laboratorio de simulador cuántico: qubits, puertas y medición en JupyterLab

¿Enseñas a una clase? Asigna estas lecciones a tus estudiantes con calificación y un laboratorio para cada uno.