Algoritmo de Grover para una búsqueda en la base de datos: ¿dónde está la ventaja cuántica?

8

He estado tratando de entender cuál podría ser la ventaja de usar el algoritmo de Grover para buscar en una base de datos desordenada arbitraria D (clave, valor) con N valores en lugar de una búsqueda clásica.

Supuse que la función oracle es una función f (clave) = y, donde y es el índice del valor correspondiente en la base de datos clásica.

Mi problema está relacionado con el oráculo. El circuito del oráculo tiene que modificarse para que cada búsqueda se realice en la base de datos porque la clave se especifica en el oráculo. Asumamos que esta es una operación insignificante para simplificar.

Suponiendo que el circuito oracle tiene que calcularse clásicamente, requeriría producir un circuito que se comporte como la función f (clave) = y. Esta función se obtendría en al menos O (N) pasos (excepto en algunos casos especiales). El circuito de la función oracle debe recalcularse cada vez que se modifica / agrega / elimina una entrada de la base de datos, con un costo de O (N).

Muchos artículos como Implementaciones de algoritmos cuánticos para principiantes , Algoritmos cuánticos para emparejar y flujos de red parecen no considerar el oráculo en absoluto.

No sé si tengo que considerar una base de datos cuántica para obtener una ventaja real o no ( esto y la falta de fiabilidad de los resultados cuánticos me convencieron de que no es una muy buena idea, pero es solo una conjetura).

Entonces, ¿dónde se considera la complejidad para construir el oráculo? ¿He entendido mal algo?

¿Es "El circuito de la función oracle debe ser recalculado cada vez que se modifica / agrega / elimina una entrada de la base de datos, con un costo de O (N)"?

Moreno G
fuente
¿por qué dice que " el circuito de la función oracle debe recalcularse cada vez que se modifica / agrega / elimina una entrada de la base de datos "? La función oracle solo necesitaría ser una versión reversible del circuito clásico que verifique si una clave determinada es la que está buscando. Cambiar el número de claves (es decir, qué elementos hay en la base de datos) no requiere que cambie la estructura del oráculo, al igual que no requiere que cambie la función clásica que usaría para una búsqueda normal
glS
Bueno, el problema es que "solo necesita ser una versión reversible del circuito clásico". Si hubiera sido una correlación trivial 1: 1 entre un algoritmo clásico y uno cuántico, habría algún tipo de compilador de un lenguaje de programación clásico a un circuito cuántico. Convertir cosas del algoritmo clásico "tal como está" a las cuánticas siempre me pareció una mala idea, también porque la mayoría de las operaciones apenas escalan ( ver implementación de nCNOT ).
Moreno G
En el circuito cuántico, no tiene acceso a una base de datos clásica física. El sistema de "computadora cuántica" interactúa con: - Una descripción del esquema de circuito, que es dada (generalmente) por un programa clásico como entrada; - Los resultados de la ejecución como salida. Durante la ejecución, no hay acceso a otros recursos externos (no estoy seguro si esto es por diseño o por límites de la tecnología real). Entonces, sabiendo que el oráculo describe tanto la base de datos como la clave, debe modificarse. Y esto a menudo es una operación no trivial
Moreno G

Respuestas:

2

El algoritmo de Grover no tiene una ventaja cuando se busca en una base de datos desordenada, porque codificar el oráculo en un circuito requiere operaciones Ω~(n) . Puede probar esto con un simple argumento de conteo de circuitos. Si el circuito tuviera un tamaño O(n0.99) , habría menos circuitos distintos que oráculos distintos. Entonces, la complejidad operativa real es Ω~(n1.5) , aunque la complejidad de la consulta es O(norte0,5) .

El algoritmo de Grover solo tiene una ventaja cuando lo que está buscando es abstracto, como posibles soluciones a un problema de SAT, en lugar de literalmente almacenado en el hardware en algún lugar, como una base de datos.

Craig Gidney
fuente
nortenortenorteO(Iniciar sesión2norte)
2w2nortenortewnorteO(1)W(norteO(1))METRO=2(2norte)norteoráculos de un punto, evitando lo de contar, necesitará iterar sobre los datos clásicos como parte de la construcción del circuito cuántico. Supongo que, filosóficamente hablando, me opongo al uso del modelo RAM al comparar tipos de computación tan dispares.
Craig Gidney
ww2wwnortewMETROW
En resumen, lo que estoy tratando de decir es que sería genial si pudieras ampliar esta respuesta. Parece que hay información útil aquí. ¿Es este tipo de argumento de conteo de alguna parte? No lo he visto antes
glS
w2wwww
6

Tiene razón al reconocer la complejidad de construir el oráculo para usarlo con la búsqueda de Grover: de hecho, es la parte difícil de resolver el problema, y ​​de hecho muchas fuentes no consideran esta complejidad.

Me gusta pensar en el oráculo como una herramienta para reconocer la respuesta, no para encontrarla. Por ejemplo, si está buscando resolver un problema SAT , el circuito oráculo codificará la fórmula booleana para una instancia específica de un problema que está tratando de resolver. El tamaño del circuito en este caso depende del tamaño de la fórmula y no del tamaño del espacio de búsqueda. Puede encontrar un ejemplo de implementación de un oráculo para una instancia de problema SAT en mi tutorial .

Si usara el algoritmo de Grover para la búsqueda en la base de datos, el oráculo tendría que codificar la condición que está buscando, pero también los criterios de si el elemento está en una base de datos. Por ejemplo, si está buscando un nombre que comience con A, el oráculo debe reconocer todas las cadenas que comienzan con A, pero también necesita reconocer cuáles de las cadenas están presentes en la base de datos; de lo contrario, el algoritmo generará una cadena aleatoria comenzando con A, que probablemente no sea lo que estabas buscando. (Esto no fue un problema con el ejemplo del problema SAT, ya que cualquier asignación de variables que satisfaga la fórmula es una asignación de variable válida).

No conozco un buen ejemplo del uso de la búsqueda de Grover para buscar a través de una base de datos no estructurada. Según tengo entendido, este algoritmo es adecuado para búsquedas que tienen alguna estructura. Vale la pena revisar otras preguntas sobre Grover en este sitio, ya que muchas de ellas considerarán implementaciones de Oracle.

Mariia Mykhailova
fuente
Tengo algunas dudas sobre la existencia de una buena manera genérica para construir un oráculo, de lo contrario me esperaría encontrar que al menos existe una implementación de Oracle. De hecho, parece que usar el algoritmo grover para buscar en una base de datos es una mala aplicación. Estoy totalmente de acuerdo con la aplicación de resolución SAT, se adapta mucho mejor a lo que el algoritmo de Grover permite hacer.
Moreno G
5

El problema está en su suposición inicial: el oráculo para Grover se basa en una función f (valor) = 0/1, donde 1 indica que el valor cumple con sus criterios de búsqueda y 0 indica que no. Esto significa que debe crear un nuevo oráculo para cada búsqueda diferente, pero no para cada base de datos diferente.

Dicho esto, el algoritmo de Grover y una base de datos cuántica no son un buen reemplazo para los métodos clásicos de búsqueda de bases de datos. Eche un vistazo a este documento para una discusión de los aspectos prácticos del algoritmo de Grover en este contexto.

El algoritmo de Grover tiene una aplicación práctica cuando se generaliza a la amplificación de amplitud , que se muestra como un componente de muchos otros algoritmos cuánticos. La amplificación de amplitud es una forma de mejorar la probabilidad de éxito de un algoritmo cuántico probabilístico.

Alan Geller
fuente
"Aunque el algoritmo de Grover satisface el Requisito 2 en principio, cumplirlo con un margen significativo en la escala logarítmica podría ser difícil en muchos casos porque una implementación de circuito pequeño de la función oracle p (x) podría no existir o podría requerir una irrazonable esfuerzo para encontrar ". Esta es prácticamente la misma conjetura que se me ocurrió. Lo que me gustaría saber es si la búsqueda en la base de datos es una mala aplicación para el algoritmo de Grover o no. ¿Hay alguna prueba formal de lo que se dice aquí?
Moreno G
Además, eso no es del todo cierto, esta implementación proporciona el resultado (podría ser útil cuando se marca más de un elemento)
Moreno G
1

El algoritmo de Grover es un solucionador (cuántico) de circuito SAT. Supongo que también podría ser un solucionador literal de recuadros negros, pero solo funcionaría con recuadros negros que no decodifiquen su estado de entrada enredado, y estoy teniendo problemas para creer que tales cosas existen.

No sé por qué Grover o cualquier otra persona lo llamaron algoritmo de búsqueda de base de datos. Por supuesto, puede darle un circuito que implemente una prueba de membresía establecida, con algunas de las entradas conectadas a la clave que está buscando y el resto representando el valor de salida, y llamarlo búsqueda de base de datos. Pero podría hacer lo mismo con un solucionador de SAT clásico y nadie los llama algoritmos de búsqueda de base de datos, que yo sepa. Y para que Grover (o los solucionadores clásicos de SAT) sean competitivos en este tipo de problema, la "base de datos" debe ser fundamentalmente no indexable, lo que significa que es demasiado grande para ser indexable, lo que significa que en realidad no está almacenada en ningún lado, lo que hace que En mi opinión, no es una base de datos (y no datos).

Encontrar un circuito eficiente que implemente una función dada es un problema importante e interesante, pero también es increíblemente amplio; incluye gran parte de lo que se llama informática. No veo qué se puede decir al respecto en el contexto del algoritmo de Grover que no se aplicaría por igual en ningún otro contexto. El algoritmo de Grover solo toma un circuito optimizado una vez que lo ha encontrado y lo evalúa aproximadamente √N veces. El circuito necesita ser reversible, lo que lo hace algo diferente de los circuitos clásicos habituales, pero eso todavía no está directamente relacionado con Grover.

En resumen, creo que la gente no habla de encontrar el circuito oráculo porque en realidad no está relacionado con el algoritmo cuántico (a pesar del título del artículo de Grover) y porque es un tema tan complejo y de gran alcance que ningún tratamiento podría hacerle justicia de todos modos .

benrg
fuente