Eu tenho tentado entender o que poderia ser a vantagem de usar o algoritmo Grover para pesquisar em um banco de dados arbitrário não ordenado D (chave, valor) com N valores em vez de uma pesquisa clássica.
Eu assumi que a função oracle é uma função f (tecla) = y, onde y é o índice do valor correspondente no banco de dados clássico.
Meu problema está relacionado ao oráculo. O circuito oracle deve ser modificado para cada pesquisa realizada no banco de dados porque a chave está especificada no oracle. Vamos assumir que esta é uma operação insignificante por simplicidade.
Supondo que o circuito oráculo deva ser calculado classicamente, seria necessário produzir um circuito que se comporte como a função f (tecla) = y. Esta função seria obtida em pelo menos O (N) etapas (exceto em alguns casos especiais). O circuito da função oracle deve ser recalculado toda vez que uma entrada do banco de dados estiver sendo modificada / adicionada / removida, com um custo de O (N).
Muitos trabalhos, como Implementações de algoritmos quânticos para iniciantes , Algoritmos quânticos para correspondência e fluxos de rede parecem não considerar o oráculo.
Não sei se tenho que considerar um banco de dados quântico para obter uma vantagem real ou não ( isso e a falta de confiabilidade dos resultados quânticos me convenceram não é uma idéia muito boa, mas é apenas uma conjectura).
Então, onde é considerada a complexidade para construir o oráculo? Eu entendi algo errado?
"O circuito da função oracle precisa ser recalculado toda vez que uma entrada do banco de dados for modificada / adicionada / removida, com um custo de O (N)" é uma suposição errada?