Estou ficando confuso sobre o algoritmo de Grover e sua conexão com as classes de complexidade.
O algoritmo de Grover encontra e o elemento em um banco de dados de N = 2 n (tal que f ( k ) = 1 ) de elementos com ∼ √ chama o oráculo.
Portanto, temos o seguinte problema:
Problema: Encontre um no banco de dados de forma que f ( k ) = 1
Agora estou ciente de que este não é um problema de decisão e, portanto, nossas definições normais de classe de complexidade , NP etc. não se aplicam realmente. Mas estou curioso para saber como definiríamos a classe de complexidade nesse caso - e o clima é feito com relação a N ou n ?
Além disso, o algoritmo de Grover pode ser usado como uma sub-rotina. Li em vários lugares que o algoritmo de Grover não altera a classe da complexidade como um problema - existe uma maneira heurística de ver isso.
fonte
\text{}
para escrever nomes de classes de complexidade. Por exemplo\text{NP}
ou\text{BQP}
Respostas:
Sumário
A complexidade dos problemas de relacionamento
Como você observa, o problema de Grover resolve um problema de pesquisa , que na literatura de complexidade também é conhecido como problema de relação . Ou seja, é um problema do seguinte tipo:
As classes de complexidade FP e FNP são definidas em termos de tais problemas, em que um está particularmente interessado no caso em que tem no máximo uma função polinomial do comprimento de x e onde a relação R ( x , y ) pode ser calculado em uma quantidade de tempo limitada por algum polinômio no comprimento de ( x , y ) .y x R(x,y) (x,y)
Em particular: o exemplo do problema de 'pesquisa de banco de dados' para o qual a Pesquisa de Grover é geralmente aplicada pode ser descrito a seguir.
Aqui, o próprio oráculo é a entrada para o problema: ele desempenha o papel de , e a relação que estamos computando é R ( O , y )x
Suponha que, em vez de um oráculo, recebamos uma entrada específica que descreve como a função f deve ser calculada, e então podemos considerar a qual classe de complexidade esse problema pertence. Como indica , a classe de complexidade apropriada que obtemos depende de como a entrada é fornecida.x f
pyramids
Suponha que a função de entrada seja fornecida como um banco de dados (como o problema às vezes é descrito), em que cada entrada no banco de dados tem algum comprimento . Se n for o comprimento da cadeia x usada para descrever o banco de dados inteiro , o banco de dados terá N = n / ℓ entradas. É então possível pesquisar exaustivamente todo o banco de dados consultando cada uma das N entradas em sequência e parar se encontrarmos uma entrada y tal que f ( y ) = 1 . Supondo que cada consulta ao banco de dados tenha algo como O (ℓ n x N=n/ℓ N y f(y)=1 , este procedimento pára no tempo O ( N log N ) ⊆ O ( n log n ) , de modo que o problema está noFP.O(logN)⊆O(logn) O(NlogN)⊆O(nlogn)
Supondo que a pesquisa de banco de dados possa ser feita em superposição coerente, o algoritmo de Grover permite que esse problema esteja no FBQP . No entanto, como FP ⊆ FBQP , a pesquisa exaustiva clássica também prova que esse problema está no FBQP . Tudo o que obtemos (até os fatores de log) é uma aceleração quadrática devido a uma economia no número de consultas ao banco de dados.
Suponha-se que a função de entrada é descrito sucintamente, por um algoritmo de tempo polinomial que tem uma especificação e um argumento y ∈ { 0 , 1 } m e calcula ó : H m + 1 2x∈{0,1}n y∈{0,1}m O:Hm+12→Hm+12 em um estado de base padrão , onde m pode ser muito maior do que Ω ( log n ) . Um exemplo seria onde x especifica a forma CNF de alguma função booleana f : { 0 , 1 } m → { 0 , 1 } para m ∈ O ( n ) ; nesse caso, podemos avaliar eficientemente f ( y ) em uma entrada y ∈|y⟩|b⟩ m Ω(logn) x f:{0,1}m→{0,1} m∈O(n) f(y) e, assim, avaliar eficientemente ó em estados da base padrão. Isso coloca o problema noFNP.y∈{0,1}m O
Dado um procedimento para avaliar de ( x , y ) no tempo O ( p ( n ) ) para n = | x | , O algoritmo de Grover resolve o problema da pesquisa não estruturada de O no tempo O ( p ( n ) √f(y) (x,y) O(p(n)) n=|x| O ⊆O(p(n)√O(p(n)2m−−−√) . Isso não é polinomial emne, portanto, não é suficiente para colocar esse problema noFBQP: obtemos apenas uma aceleração quadrática - embora essa ainda seja uma economia potencialmente enorme de tempo de computação, assumindo que a vantagem oferecida pelo algoritmo de Grover não seja perdida. a sobrecarga necessária para o cálculo quântico tolerante a falhas.⊆O(p(n)2n−−√) n
Em ambos os casos, a complexidade é determinada em termos do comprimento da cadeia de x * que especifica a forma de calcular a oráculo ó . No caso em que x representa uma tabela de consulta, temos N = n / ℓ ; nesse caso, o desempenho em função de N é semelhante ao desempenho em função de n ; mas no caso em que x especifica sucintamente O e N ∈ O ( 2 n / 2 ) , a mensagem geral de que Grover resolve o problema em On x O x N=n/ℓ N n x O N∈O(2n/2) consultas obscurecem a mensagem mais refinada de que esse algoritmo ainda é de tempo exponencial para um computador quântico.O(N−−√)
Complexidade de decisão de problemas de relacionamento
Há uma maneira simples para obter problemas de decisão de problemas de relacionamento, que é bem conhecido da teoria da NP -completo problemas: para transformar o problema de pesquisa a uma pergunta sobre a existência de uma solução válida.
A classe de complexidade NP pode ser essencialmente definida em termos de tais problemas, quando o relacionamento é eficientemente computável: os problemas mais famosos de NP (CNF-SAT, HAMCYCLE, 3-COLORING) referem-se à mera existência de uma solução válida para um problema de relacionamento eficientemente verificável. Essa mudança de produzir soluções para simplesmente afirmar a existência de soluções é também o que nos permite descrever versões de fatoração inteira que estão no BQP (perguntando se existem fatores não triviais, em vez de solicitar os valores de fatores não triviais) .R
Complexidade do Oracle
Como podemos ver no último caso, se tratarmos a entrada apenas como um oráculo, a situação parecerá pouco intuitiva e certamente tornará impossível falar sobre as maneiras pelas quais o "banco de dados" pode ser realizado. Mas uma virtude de considerar a versão relativizada do problema, com um oráculo real, é que podemos provar coisas que, do contrário, não temos idéia de como provar. Se pudéssemos provar que a versão decisória do problema de pesquisa não estruturado e sucinto estava no BQP , teríamos uma enorme inovação na computação prática; e se pudéssemos provar que o problema de decisão não estava realmente no BQP , teríamos mostrado que P ≠ PSPACEO O NPO BQPO
fonte
No entanto, os físicos gostam de apelar para a noção de que essa ainda é uma aceleração exponencial sem um equivalente clássico conhecido (ou realmente facilmente concebível). Isso é mais aparente no exemplo do banco de dados, onde a função oracle é uma pesquisa no banco de dados e o algoritmo de Grover pode fazer com que seja necessário muito menos pesquisas do que os dados no banco de dados. Nesse sentido, ainda há uma vantagem significativa, embora esteja completamente perdida no quadro da classe de complexidade.
fonte
Deixe-me dar alguns exemplos (talvez seja o que você estava pedindo aqui ?):
Obviamente, algumas vezes, uma estrutura adicional no problema permite soluções diferentes que não exigem a pesquisa de todas as provas possíveis. Lá, a pesquisa de Grover é de pouca ou nenhuma utilidade para nós, mas pode ser que possamos criar um algoritmo de tempo polinomial de outra maneira. Por exemplo, o caso do teste composto: classicamente, encontrar os fatores de um número parece difícil: não podemos fazer muito melhor do que testar todos os fatores possíveis; portanto, usar essa forma de prova não ajuda muito, mas , como já mencionado, a questão pode ser resolvida com eficiência por outra rota, o teste de primalidade da AKS.
fonte
Esqueça o banco de dados. O algoritmo de Grover resolve o problema de satisfação booleana , a saber:
O problema é conhecido por ser NP-completo.
fonte