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)"?