Análisis
Ahora analizaremos el algoritmo de Grover para entender cómo funciona. Empezaremos con lo que podría describirse como un análisis simbólico, en el que calculamos cómo actúa la operación Grover sobre determinados estados, y luego vincularemos este análisis simbólico a una imagen geométrica útil para visualizar cómo funciona el algoritmo.
Soluciones y no soluciones
Empecemos por definir dos conjuntos de cadenas.
El conjunto contiene todas las soluciones a nuestro problema de búsqueda, mientras que contiene las cadenas que no son soluciones (a las que podemos referirnos como no-soluciones cuando sea conveniente). Estos dos conjuntos satisfacen y es decir que se trata de una bipartición de
A continuación definiremos dos vectores unitarios que representan superposiciones uniformes sobre los conjuntos de soluciones y no soluciones.
Formalmente, cada uno de estos vectores sólo está definido cuando su conjunto correspondiente no es vacío, pero a partir de ahora nos centraremos en el caso de que ni ni estén vacíos. Los casos que y son fáciles de tratar por separado, y lo haremos más adelante.
Como apunte, la notación que se utiliza aquí es común: siempre que tengamos un conjunto finito y no vacío podemos escribir para denotar el vector de estado cuántico que es uniforme sobre los elementos de
Definamos también como un estado cuántico uniforme sobre todas las cadenas de -bit:
Observe que
También tenemos que así que representa el estado del registro después de la inicialización en el paso 1 del algoritmo de Grover.
Esto implica que justo antes de que se produzcan las iteraciones de en el paso 2, el estado de está contenido en el espacio vectorial bidimensional abarcado por y y además los coeficientes de estos vectores son números reales. Como veremos, el estado de siempre tendrá estas propiedades -lo que significa que el estado es una combinación lineal real de y - después de cualquier número de iteraciones de la operación en el paso 2.
Una observación sobre la operación Grover
Ahora vamos a centrar nuestra atención en la operación Grover
comenzando con una interesante observación al respecto.
Imaginemos por un momento que sustituimos la función por la composición de con la función NOT -o, en otras palabras, la función que obtenemos volteando el bit de salida de Llamaremos a esta nueva función y podemos expresarla mediante símbolos de varias formas alternativas.
Observe que
para cada cadena y, por tanto
Esto significa que si sustituyéramos la función por la función el algoritmo de Grover no funcionaría de forma diferente - porque los estados que obtenemos del algoritmo en los dos casos son necesariamente equivalentes hasta una fase global.
¡Esto no es un problema! Intuitivamente, al algoritmo no le importa qué cadenas son soluciones y cuáles no, sólo necesita poder distinguir entre soluciones y no soluciones para funcionar correctamente.
Acción de la operación Grover
Consideremos ahora la acción de sobre los vectores de estado cuántico y
En primer lugar, observemos que la operación tiene una acción muy simple sobre y
En segundo lugar, tenemos la operación La operación se define como
de nuevo para cada cadena y una forma alternativa conveniente de expresar esta operación es la siguiente:
Una forma sencilla de verificar que esta expresión concuerda con la definición de es evaluar su acción sobre estados base estándar.
Por tanto, la operación puede escribirse así:
utilizando la misma notación, que utilizamos anteriormente para la superposición uniforme sobre todas las cadenas de -bit.
Y ahora tenemos lo que necesitamos para calcular la acción de sobre y Primero calculemos la acción de sobre
Y segundo, calculemos la acción de sobre
En ambos casos utilizamos la ecuación
junto con las expresiones
que siguen.
En resumen, tenemos
Como ya hemos señalado, el estado de justo antes del paso 2 está contenido en el espacio bidimensional abarcado por y y acabamos de establecer que mapea cualquier vector de este espacio a otro vector del mismo espacio. Esto significa que, en aras del análisis, podemos centrar nuestra atención exclusivamente en este subespacio.
Para comprender mejor lo que ocurre en este espacio bidimensional, expresemos la acción de sobre este espacio como una matriz,
cuyas primera y segunda filas/columnas corresponden a y respectivamente. Hasta ahora en esta serie, siempre hemos relacionado las filas y columnas de las matrices con los estados clásicos de un sistema, pero las matrices también se pueden utilizar para describir las acciones de los mapeos lineales sobre diferentes bases como tenemos aquí.
Aunque no resulte evidente a primera vista, la matriz es la que obtenemos elevando al cuadrado una matriz de aspecto más sencillo.
La matriz
es una matriz de rotación, que podemos expresar alternativamente como
para
Este ángulo va a desempeñar un papel muy importante en el análisis que sigue, por lo que merece la pena subrayar su importancia aquí, ya que lo vemos por primera vez.
A la luz de la expresión de esta matriz, observamos que
Esto se debe a que girar dos veces el ángulo equivale a girar el ángulo Otra forma de ver esto es hacer uso de la expresión alternativa
junto con las fórmulas de ángulo doble de la trigonometría:
En resumen, el estado del registro al inicio del paso 2 es
y el efecto de aplicar a este estado es rotarlo un ángulo dentro del espacio abarcado por y Así, por ejemplo, tenemos
y en general
Imagen geométrica
Ahora vamos a conectar el análisis que acabamos de hacer con una imagen geométrica. La idea es que la operación es el producto de dos reflexiones, y Y el efecto neto de realizar dos reflexiones es realizar una rotación.
Empecemos por Como ya hemos observado anteriormente, tenemos
Dentro del espacio vectorial bidimensional abarcado por y se trata de una reflexión sobre la recta paralela a que llamaremos He aquí una figura que ilustra la acción de esta reflexión sobre un hipotético vector unitario que suponemos es una combinación lineal real de y
En segundo lugar tenemos la operación que ya hemos visto que se puede escribir como
Se trata también de una reflexión, esta vez sobre la recta paralela al vector He aquí una figura que representa la acción de esta reflexión sobre un vector unitario
Cuando componemos estas dos reflexiones, obtenemos una rotación - por el doble del ángulo entre las líneas de reflexión - como ilustra esta figura.
Esto explica, en términos geométricos, por qué el efecto de la operación Grover es rotar combinaciones lineales de y en un ángulo de