Una puerta cuántica cambia las amplitudes
Una puerta cuántica es un paso que cambia las amplitudes de un qubit, igual que una puerta lógica cambia un bit. Con tres puertas, X, Z y H, ya se pueden montar los programas cuánticos más pequeños.
Cada puerta es una tabla de números, una matriz, y aplicarla es una multiplicación que tú mismo puedes escribir en Python.
Al final de esta lección
Nota
Puedo aplicar una puerta X, Z o H a un qubit y escribir el estado que queda.
Palabras clave
| Palabra | Qué significa |
|---|---|
| Puerta | un paso que cambia el estado de un qubit |
| Matriz | una tabla de números en filas y columnas |
| Puerta X | cambia el 0 por el 1 y el 1 por el 0 |
| Puerta Z | cambia el signo de la amplitud del 1 |
| Puerta H | mezcla el 0 y el 1 a partes iguales |
| Reversible | se puede deshacer aplicando otra puerta |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Aplicar una puerta es multiplicar una matriz
El estado nuevo se calcula fila a fila. La amplitud nueva del 0 es la fila de arriba por el estado, y la del 1 es la fila de abajo.
Con la matriz [[a, b], [c, d]] y el estado [x, y], el resultado es [a·x + b·y, c·x + d·y]. Son cuatro multiplicaciones y dos sumas.
Las tres puertas como matrices
| Puerta | Matriz | Qué hace |
|---|---|---|
| X | [[0, 1], [1, 0]] | intercambia las dos amplitudes |
| Z | [[1, 0], [0, -1]] | cambia el signo de la amplitud del 1 |
| H | [[1, 1], [1, -1]] dividido entre la raíz de 2 | mezcla el 0 y el 1 a partes iguales |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Recuerda: es un simulador
Nota
El laboratorio sigue siendo un simulador en un ordenador normal. No es un ordenador cuántico. Los scripts escriben en inglés. "X on |0>" quiere decir "la puerta X sobre el estado 0". "chance of 0 and of 1" quiere decir "probabilidad de 0 y de 1".
Las puertas X y H en el simulador
docker exec jupyter python3 steps/gates.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 las puertas
Primero aplica X al estado 0 y escribe 1.000|1>: el 0 pasó a ser 1. Después aplica H al estado 0 y escribe 0.707|0> + 0.707|1>.
Cada amplitud vale 0,707. Su cuadrado es 0,5, así que las probabilidades son [0.5 0.5]: la mitad para cada resultado.
Ejemplo resuelto: tres puertas sobre estados
| Puerta | Estado antes | Cuenta | Estado después |
|---|---|---|---|
| X | [1, 0] | [0·1 + 1·0, 1·1 + 0·0] | [0, 1] |
| Z | [0,6 ; 0,8] | [1·0,6 + 0·0,8, 0·0,6 − 1·0,8] | [0,6 ; −0,8] |
| H | [1, 0] | [1/√2, 1/√2] | [0,707 ; 0,707] |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un error frecuente
Advertencia
Mucha gente cree que la puerta Z no hace nada, porque las probabilidades quedan igual. Sí hace algo: cambia el signo de una amplitud. El signo no se ve al medir, pero decide cómo se suman las amplitudes después. Lo verás en la lección de interferencia.
Una puerta se puede deshacer
Las tres puertas son reversibles. X dos veces devuelve el estado de partida. Z dos veces también, y H dos veces también.
Además, una puerta nunca rompe la normalización: las probabilidades siguen sumando 1. Una matriz que no cumple esto no es una puerta cuántica.
Una puerta es una multiplicación
# La puerta X como matriz y un estado de partida.
X = [[0, 1], [1, 0]]
estado = [1, 0]
nuevo0 = X[0][0] * estado[0] + X[0][1] * estado[1]
nuevo1 = X[1][0] * estado[0] + X[1][1] * estado[1]
print(nuevo0, nuevo1)
# Cambia estado a [0, 1] y pulsa Run otra vez.