Descripción del algoritmo de Grover
En esta sección describimos el algoritmo de Grover. Comenzamos con la discusión de las puertas de consulta de fase y cómo construirlas, seguida de la descripción del algoritmo en sí. Finalmente, discutimos brevemente cómo el algoritmo se aplica naturalmente a la búsqueda.
Puertas de consulta de fase
El algoritmo de Grover utiliza operaciones conocidas como puertas de consulta de fase. A diferencia de una puerta de consulta ordinaria , que para una función dada se define como se describió anteriormente, una puerta de consulta de fase para la función se define de la siguiente manera:
para cada cadena .
La operación puede implementarse con una sola puerta de consulta , como muestra este diagrama:
Esta implementación aprovecha el fenómeno de retroceso de fase y requiere que un qubit auxiliar, inicializado en el estado , esté disponible. Este qubit permanece en el estado después de la implementación y puede reutilizarse (por ejemplo, para implementar puertas posteriores) o simplemente descartarse.
Además de la operación , también usamos una puerta de consulta de fase para la función OR de bits, que se define para cada cadena de la siguiente manera:
Explícitamente, la puerta de consulta de fase para la función OR de bits actúa así:
Para ser claros: así es como actúa sobre estados de la base estándar; su comportamiento para estados arbitrarios se obtiene por linealidad a partir de esta expresión.
La operación puede implementarse como un circuito cuántico comenzando con un circuito booleano para la función OR, convirtiéndolo en una operación (es decir, una puerta de consulta estándar para la función OR de bits) — según el procedimiento descrito en la lección Fundamentos algorítmicos de la computación cuántica —, y finalmente construyendo una operación mediante el fenómeno de retroceso de fase. Observa que no tiene dependencia de la función y, por lo tanto, puede implementarse mediante un circuito cuántico sin puertas de consulta.
Descripción del algoritmo
Ahora que tenemos las dos operaciones y , podemos describir el algoritmo de Grover.
El algoritmo se refiere a un número , que indica el número de iteraciones (y por tanto el número de consultas a la función ). Este número no está determinado por el algoritmo de Grover en la forma aquí descrita; discutiremos más adelante en la lección cómo puede elegirse.
La operación iterada en el paso 2 se denominará la operación de Grover en el resto de esta lección. Aquí hay una representación en circuito cuántico de la operación de Grover para
En este diagrama, la operación se muestra más grande que — una indicación visual informal de que probablemente es la operación más costosa. En particular, requiere una consulta en el modelo de consulta, mientras que no requiere consultas. Si, en cambio, tenemos un circuito booleano para la función y lo convertimos en un circuito cuántico para , puede suponerse que el circuito cuántico resultante será más grande y complejo que uno para .
Aquí hay un diagrama de un circuito cuántico para el algoritmo completo con y . Para valores más grandes de , simplemente podemos insertar más instancias de la operación de Grover inmediatamente antes de las mediciones.
Aplicación a la búsqueda
El algoritmo de Grover puede aplicarse al problema de búsqueda de la siguiente manera:
- Elegir el número en el paso 2. (Esto se discutirá más adelante en la lección.)
- Ejecutar el algoritmo de Grover para la función con el número elegido, para obtener una cadena .
- Consultar la función para la cadena para verificar si es una solución válida:
- Si hemos encontrado una solución y podemos detenernos y devolver .
- Si podemos ejecutar el procedimiento de nuevo, posiblemente con una elección diferente para , o podemos rendirnos y devolver "sin solución".
Una vez que hayamos analizado cómo funciona el algoritmo de Grover, veremos que eligiendo obtenemos una solución a nuestro problema de búsqueda con alta probabilidad (siempre que exista una).