Algoritmo de Grover e sua relação com classes de complexidade?

12

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 kN=2nf(k)=1 chama o oráculo.

N=2n/2

Portanto, temos o seguinte problema:

Problema: Encontre um no banco de dados de forma que f ( k ) = 1kf(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 ?PNPNn

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.

Espaguetificação quântica
fonte
Considere usar \text{}para escrever nomes de classes de complexidade. Por exemplo \text{NP}ou\text{BQP}
Sanchayan Dutta 27/05
1
Não tenho certeza do que você está perguntando aqui. Os algoritmos não podem ser membros de classes de complexidade, pois as classes de complexidade contêm problemas computacionais. Você está perguntando se o problema indicado na pergunta está contido em uma classe de complexidade "conhecida" ou está completo para ela? Você está perguntando se a 'descoberta' do algoritmo de Grover leva a um teorema da relação entre classes de complexidade conhecidas? Por favor, esclareça.
Lagarto discreto

Respostas:

6

Sumário

  • Existe uma teoria da complexidade dos problemas de pesquisa (também conhecidos como problemas de relação). Essa teoria inclui classes chamadas FP , FNP e FBQP que são efetivamente sobre a solução de problemas de pesquisa com diferentes tipos de recursos.
  • Nos problemas de pesquisa, você também pode definir problemas de decisão, o que permite relacionar os problemas de pesquisa às classes P , NP e BQP usuais .
  • Se você considera a versão de pesquisa da versão de decisão do problema, a maneira como você considera a entrada para o problema de Pesquisa Não Estruturada determinará quais limites superiores você pode colocar em sua complexidade.

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:

A estrutura de um problema geral de pesquisa.
Dada uma entrada e uma relação binária R , encontre um y tal que R ( x , y ) seja válido.xRyR(x,y)

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 ) .yxR(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.

Pesquisa não estruturada.
Dado um oráculo de entrada tal que O | um | b = | um | b f ( a ) para alguma função f : { 0 , 1 } m{ 0 , 1 } , encontre y tal que O | y | 0 = | y | 1O:H2m+1H2m+1O|a|b=|a|bf(a)f:{0,1}m{0,1}y .O|y|0=|y|1

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

R(O,y)[O|y|0=|y|1][f(y)=1].

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.xfpyramids

  • 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 (nxN=n/Nyf(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}ny{0,1}mO:H2m+1H2m+1em 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|bmΩ(logn)xf:{0,1}m{0,1}mO(n)f(y) e, assim, avaliar eficientemente ó em estados da base padrão. Isso coloca o problema noFNP.y{0,1}mO

    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|OO(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 OnxOxN=n/NnxONO(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 versão de decisão de um problema de pesquisa geral.
Dada uma entrada e uma relação binária R , determinar se y : R ( x , y ) se mantém.xRy:R(x,y)

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

xx uma solução para a pesquisa não estruturada que o faz sem realmente encontrar uma solução, embora não esteja claro, em geral, como fazê-lo de uma maneira que proporcione uma vantagem sobre a localização de uma solução.

Complexidade do Oracle

OxO

OnOnx

O
x=111n

  • y{0,1}n

  • y{0,1}n

O|y|0=|y|1

NPOFNPOBQPOFBQPO

O

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 ≠ PSPACEOONPOBQPO

Niel de Beaudrap
fonte
2

nmn

m2n/2m2n1

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.

pirâmides
fonte
"os físicos gostam de apelar para a noção de que essa ainda é uma aceleração exponencial desconhecida " ... você quis escrever " ainda uma aceleração polinomial "?
glS 30/05/19
Não, é de fato uma aceleração exponencial (apenas o suficiente para transformar o tempo de execução exponencial em um não-exponencial).
pyramids
2

n

NP

f(x)x{0,1}nxf(x)=1pxmpoly(n)g(x,px)=1f(x)=1g(x,px)poly(n)

Deixe-me dar alguns exemplos (talvez seja o que você estava pedindo aqui ?):

  • f(x)xxf(x)g(x,px)=f(x)

  • f(x)xx=72px=(8,9)g(x,p)x

  • G1G2xf(x)pxG1G2g(x,px)pxG1G2

  • xf(x)pxg(x,px)

NPPP

PNPNPPPNP

NPxpxm=poly(n)g(x,px)=1O(2mpoly(m))g(x,px)=1pxO(2m/2poly(m)). Isso é massivamente mais rápido, mas não altera a avaliação de se o tempo de execução é polinomial ou algo pior; não se tornou um algoritmo de tempo polinomial. Por exemplo, o isomorfismo gráfico teria que pesquisar todas as permutações possíveis. O caça-minas teria que procurar todas as atribuições possíveis de minas em quadrados descobertos.

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.

DaftWullie
fonte
As classes P e NP são geralmente definidas como classes de idiomas ou problemas de decisão, como na resposta a esta pergunta . Embora estes possam ser 'codificados' como funções com saída binária como você faz aqui, isso é um pouco fora do padrão na teoria da complexidade.
Lagarto discreto
f(x)
Você pode definir as coisas como desejar, mas acho útil mencionar que isso não é padrão para quando, por exemplo, os leitores verificam outras fontes. Daí o comentário.
Lagarto discreto
-1

Esqueça o banco de dados. O algoritmo de Grover resolve o problema de satisfação booleana , a saber:

n10

O problema é conhecido por ser NP-completo.

kludg
fonte
3
Há um elemento de verdade no que você está dizendo - que quase sempre se deve pensar no oráculo como avaliando uma função e não uma pesquisa no banco de dados; e que se essa função puder ser avaliada em tempo polinomial, será efetivamente uma instância do SAT, que é realmente NP-complete. Mas, como a aceleração de Grover é no máximo quadrática, não está claro que a completude de NP do SAT seja relevante para o que o algoritmo de Grover realmente faz.
Niel de Beaudrap 28/05
2
Devido à votação ignorante ou trolling, não vou mais contribuir com este fórum.
Kludg
@kludg Admito que um dos votos negativos é meu, então deixe-me explicar; Sua resposta sem mais contexto ou explicação não responde a nenhuma das perguntas que fiz no OP. É um argumento interessante, mas, até agora, isso não é relevante para minhas perguntas específicas. Agora, posso estar errado neste ponto e você responde, na verdade, está respondendo a algumas das minhas perguntas - se for esse o caso, não acredito que sejam respondidas de maneira explícita.
Espaguetificação quântica