Algoritmo de Grover para uma pesquisa em banco de dados: onde está a vantagem quântica?

8

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?

Moreno G
fonte
por que você diz que " o circuito da função oracle deve ser recalculado cada vez que uma entrada do banco de dados está sendo modificada / adicionada / removida "? A função oracle precisaria ser apenas uma versão reversível do circuito clássico, verificando se uma chave é a que você está procurando. Alterar o número de chaves (ou seja, quais elementos estão no banco de dados) não exige que você altere a estrutura do oracle, assim como não exige que você altere a função clássica que você usaria para uma pesquisa normal
glS
Bem, o problema é "só precisa ser uma versão reversível do circuito clássico". Se houvesse uma correlação trivial de 1: 1 entre um algoritmo clássico e um quântico, haveria algum tipo de compilador de uma linguagem de programação clássica para um circuito quântico. Converter coisas do algoritmo clássico "como ele é" para o quantum sempre me pareceu uma péssima idéia, também porque a maioria das operações dificilmente é dimensionada ( consulte a implementação do nCNOT ).
Moreno G
No circuito quântico, você não tem acesso a um banco de dados físico clássico. O sistema "computador quântico" interage com: - Uma descrição do esquema de circuito, que é fornecida (geralmente) por um programa clássico como entrada; - Os resultados da execução como saída. Durante a execução, não há acesso a outros recursos externos (não tenho certeza se isso ocorre por design ou por limites da tecnologia real). Portanto, sabendo que o oracle descreve o banco de dados e a chave, ele precisa ser modificado. E isso geralmente é uma operação não trivial
Moreno G

Respostas:

2

O algoritmo de Grover não tem vantagem ao pesquisar em um banco de dados não ordenado, porque a codificação do oráculo em um circuito requer operações Ω~(n) . Você pode provar isso com um simples argumento de contagem de circuitos. Se o circuito tivesse o tamanho O(n0,99) , haveria menos circuitos distintos do que oráculos distintos. Portanto, a complexidade operacional real é Ω~(n1.5) , mesmo que a complexidade da consulta seja O(n0,5) .

O algoritmo de Grover só tem uma vantagem quando o que você está pesquisando é abstrato, como possíveis soluções para um problema de SAT, em vez de literalmente armazenado em hardware em algum lugar, como um banco de dados.

Craig Gidney
fonte
nnnO(registro2n)
2W2nnWnO(1)W(nO(1))M=2(2n)noráculos quentes, evitando a contagem, você precisará iterar sobre os dados clássicos como parte da construção do circuito quântico. Acho que, filosoficamente, sou contra o uso do modelo de RAM ao comparar tipos de computação tão díspares.
Craig Gidney
WW2WWnWMW
em resumo, o que estou tentando dizer é que seria ótimo se você pudesse expandir essa resposta. Parece haver informações úteis aqui. Esse tipo de argumento de contagem está em algum lugar? Eu nunca vi isso antes
glS 10/10/1919
W2WWWW
6

Você está certo em reconhecer a complexidade de construir o oráculo para usá-lo com a pesquisa de Grover - é realmente a parte complicada de resolver o problema e, de fato, muitas fontes não consideram essa complexidade.

Eu gosto de pensar no oráculo como uma ferramenta para reconhecer a resposta, não para encontrá-la. Por exemplo, se você estiver procurando resolver um problema SAT , o circuito oracle codificará a fórmula booleana para uma instância específica de um problema que você está tentando resolver. O tamanho do circuito, neste caso, depende do tamanho da fórmula, e não do tamanho do espaço de pesquisa. Você pode encontrar um exemplo de implementação de um oracle para uma instância do problema SAT no meu tutorial .

Se você usasse o algoritmo de Grover para pesquisa no banco de dados, o oráculo teria que codificar a condição que você está procurando, mas também os critérios para determinar se o elemento está em um banco de dados. Por exemplo, se você estiver procurando por um nome que comece com A, o oráculo precisará reconhecer todas as cadeias que começam com A, mas também precisará reconhecer quais das cadeias estão presentes no banco de dados - caso contrário, o algoritmo produzirá uma cadeia aleatória começando com A, que provavelmente não é o que você estava procurando. (Este não foi um problema no exemplo do problema SAT, pois qualquer atribuição de variáveis ​​que satisfaça a fórmula é uma atribuição de variável válida.)

Não conheço um bom exemplo de como usar a pesquisa de Grover para pesquisar em um banco de dados não estruturado - na melhor das hipóteses, esse algoritmo é adequado para pesquisas com alguma estrutura. Vale a pena conferir outras perguntas sobre Grover neste site, pois muitas delas consideram implementações de oráculos.

Mariia Mykhailova
fonte
Tenho algumas dúvidas sobre a existência de uma boa maneira genérica para construir um oráculo, caso contrário, eu seria de esperar para encontrá-lo, pelo menos, uma implementação Oracle. De fato, parece que o uso do algoritmo Grover para pesquisar em um banco de dados é uma aplicação ruim. Concordo plenamente sobre o aplicativo de solução SAT, ele se adapta muito melhor ao que o algoritmo Grover permite fazer.
Moreno G
5

O problema está em sua suposição inicial: o oráculo para Grover é baseado em uma função f (valor) = 0/1, em que 1 indica que o valor atende aos seus critérios de pesquisa e 0 indica que não. Isso significa que você precisa criar um novo oráculo para cada pesquisa diferente, mas não para cada banco de dados diferente.

Dito isto, o algoritmo de Grover e um banco de dados quântico não substituem os métodos clássicos de pesquisa de banco de dados. Dê uma olhada neste artigo para uma discussão sobre os aspectos práticos do algoritmo de Grover neste contexto.

O algoritmo de Grover tem aplicação prática quando generalizado à amplificação de amplitude , que aparece como um componente de muitos outros algoritmos quânticos. Amplificação de amplitude é uma maneira de melhorar a probabilidade de sucesso de um algoritmo quântico probabilístico.

Alan Geller
fonte
"Embora o algoritmo de Grover satisfaça o requisito 2 em princípio, satisfazê-lo por uma margem significativa na escala logarítmica pode ser difícil em muitos casos, porque uma implementação em circuito pequeno da função oracle p (x) pode não existir ou pode exigir uma irracionalidade esforço para encontrar. " Esta é praticamente a mesma conjectura que eu criei. O que eu gostaria de saber é se a pesquisa no banco de dados é uma aplicação ruim para o algoritmo de Grover ou não. Existe alguma prova formal do que é dito aqui em cima?
Moreno G
Além disso, isso não é inteiramente verdade, esta aplicação não fornecer o resultado (poderia ser útil quando mais de um elemento estiver marcado)
Moreno G
1

O algoritmo de Grover é um solucionador de circuito SAT (quântico). Suponho que também possa ser um solucionador de caixa preta literal, mas funcionaria apenas com caixas pretas que não despejam seu estado de entrada emaranhado, e estou tendo problemas para acreditar que essas coisas existem.

Não sei por que Grover ou qualquer outra pessoa o chamou de algoritmo de pesquisa de banco de dados. É claro que você pode dar a ele um circuito que implementa um teste de associação definido, com algumas das entradas conectadas à chave que você está procurando e o restante representando o valor de saída e chamá-lo de uma busca no banco de dados. Mas você poderia fazer o mesmo com um solucionador SAT clássico e ninguém os chama de algoritmos de pesquisa de banco de dados, que eu saiba. E para que Grover (ou solucionadores clássicos de SAT) sejam competitivos nesse tipo de problema, o "banco de dados" precisa ser fundamentalmente indefinível, o que significa que é muito grande para ser indexável, o que significa que não é realmente armazenado em nenhum lugar, o que o torna na minha opinião, não um banco de dados (e não dados).

Encontrar um circuito eficiente implementando uma determinada função é um problema importante e interessante, mas também é incrivelmente amplo; inclui muito do que se chama ciência da computação. Não vejo o que se pode dizer sobre isso no contexto do algoritmo de Grover que não se aplicaria igualmente em nenhum outro contexto. O algoritmo de Grover apenas pega um circuito otimizado quando você o encontra e o avalia cerca de √N vezes. O circuito precisa ser reversível, tornando-o um pouco diferente dos circuitos clássicos comuns, mas isso ainda não está diretamente relacionado a Grover.

Em resumo, acho que as pessoas não falam sobre encontrar o circuito do oráculo porque ele não está realmente relacionado ao algoritmo quântico (apesar do título do artigo de Grover) e porque é um tópico tão complexo e abrangente que nenhum tratamento poderia fazer justiça de qualquer maneira. .

benrg
fonte