En "Computación cuántica e información cuántica" de Mike e Ike, el algoritmo de Grover se explica con gran detalle. Sin embargo, en el libro, y en todas las explicaciones que he encontrado en línea para el algoritmo de Grover, parece que no se menciona cómo se construye el Oráculo de Grover, a menos que ya sepamos qué estado es lo que estamos buscando, lo que frustra el propósito de algoritmo. Específicamente, mi pregunta es la siguiente: dado algo de f (x) tal que para algún valor de x, f (x) = 1, pero para todos los demás, f (x) = 0, ¿cómo se construye un oráculo que nos sacará de nuestro estado inicial arbitrario | x> | y> to | x> | y + f (x)>? Se agradecería mucho la mayor cantidad de detalles explícitos posible (¿quizás un ejemplo?). Si tal construcción para cualquier función arbitraria es posible con Hadamard, Pauli u otras puertas cuánticas estándar,
16
Respuestas:
El oráculo es básicamente solo una implementación del predicado para el que desea buscar una solución satisfactoria.
Por ejemplo, suponga que tiene un problema de 3 sat.
O, en forma de tabla, cada fila es una cláusula 3, x significa "esta variable falsa", o significa "esta variable verdadera" y espacio significa "no en la cláusula":
Ahora haga un circuito que calcule si la entrada es una solución, como esta:
Ahora, para convertir su circuito en un oráculo, golpee el bit de salida con una compuerta Z y elimine cualquier basura que haya realizado (es decir, ejecute el circuito de cómputo en orden inverso):
Eso es todo al respecto. Calcule el predicado, golpee el resultado con una Z, discuta el predicado. Eso es un oráculo.
Itere los pasos de difusión con pasos de oráculo, y tendrá una búsqueda rápida :
... aunque probablemente debería elegir un ejemplo con menos soluciones, por lo que el progreso es gradual (en lugar de girar a lo largo del plano de estado de solución de inicio en más de 90 grados por paso como lo es mi ejemplo).
fuente