Algoritmo de Grover

Em computação quântica, o algoritmo de Grover, também conhecido como algoritmo de busca quântica, é um algoritmo quântico para busca não estruturada que encontra com alta probabilidade a única entrada para uma função de caixa preta que produz um determinado valor de saída, usando apenas avaliações da função, onde é o tamanho do domínio da função. Ele foi concebido por Lov Grover em 1996.

O problema análogo na computação clássica teria uma complexidade de consulta de (isto é, a função teria de ser avaliada vezes: não existe abordagem melhor do que testar todos os valores de entrada um após o outro, o que, em média, leva passos).

Charles H. Bennett, Ethan Bernstein, Gilles Brassard e Umesh Vazirani provaram que qualquer solução quântica para o problema precisa avaliar a função vezes, logo o algoritmo de Grover é assintoticamente ótimo. Uma vez que os algoritmos clássicos para problemas NP-completos requerem um número exponencial de passos, e o algoritmo de Grover fornece, no máximo, uma aceleração quadrática sobre a solução clássica para a busca não estruturada, isso sugere que o algoritmo de Grover, por si só, não fornecerá soluções em tempo polinomial para problemas NP-completos (já que a raiz quadrada de uma função exponencial continua sendo uma função exponencial, não polinomial).

Ao contrário de outros algoritmos quânticos, que podem fornecer aceleração exponencial sobre suas contrapartes clássicas, o algoritmo de Grover fornece apenas uma aceleração quadrática. No entanto, mesmo uma aceleração quadrática é considerável quando é grande, e o algoritmo de Grover pode ser aplicado para acelerar amplas classes de algoritmos. O algoritmo de Grover poderia quebrar por força bruta uma chave criptográfica simétrica de 128 bits em aproximadamente 264 iterações, ou uma chave de 256 bits em cerca de 2128 iterações. Porém, pode não ser o caso de que o algoritmo de Grover represente um risco significativamente maior à criptografia do que os algoritmos clássicos existentes.

Aplicações e limitações

O algoritmo de Grover, junto com variantes como a amplificação de amplitude, pode ser usado para acelerar uma ampla gama de algoritmos. Em particular, algoritmos para problemas NP-completos que contêm buscas exaustivas como uma sub-rotina podem ser acelerados pelo algoritmo de Grover. O melhor algoritmo teórico atual, em termos de complexidade de pior caso, para o 3SAT é um desses exemplos. Problemas genéricos de satisfação de restrições também veem acelerações quadráticas com o algoritmo de Grover. Esses algoritmos não exigem que a entrada seja dada na forma de um oráculo, já que o algoritmo de Grover é aplicado com uma função explícita, por exemplo, a função que verifica se um conjunto de bits satisfaz uma instância do 3SAT. No entanto, não está claro se o algoritmo de Grover poderia acelerar os melhores algoritmos práticos para esses problemas.

O algoritmo de Grover também pode fornecer acelerações comprováveis para problemas de caixa preta na complexidade de consulta quântica, incluindo a distinção de elementos e o problema da colisão (resolvido com o algoritmo de Brassard–Høyer–Tapp). Nestes tipos de problemas, trata-se a função oráculo f como um banco de dados, e o objetivo é usar a consulta quântica a essa função o menor número de vezes possível.

Criptografia

O algoritmo de Grover essencialmente resolve a tarefa de inversão de função. Em termos gerais, se temos uma função que pode ser avaliada em um computador quântico, o algoritmo de Grover nos permite calcular quando recebemos . Consequentemente, o algoritmo de Grover fornece amplas acelerações assintóticas para muitos tipos de ataques de força bruta em criptografia de chave simétrica, incluindo ataques de colisão e ataques de preimagem. No entanto, esse não é necessariamente o algoritmo mais eficiente; por exemplo, o algoritmo rho de Pollard é capaz de encontrar uma colisão no SHA-2 de forma mais eficiente que o algoritmo de Grover.

Limitações

O artigo original de Grover descrevia o algoritmo como um algoritmo de busca em banco de dados, e essa descrição ainda é comum. O banco de dados nessa analogia é uma tabela de todas as saídas da função, indexadas pela entrada correspondente. No entanto, esse banco de dados não é representado explicitamente. Em vez disso, um oráculo é invocado para avaliar um item pelo seu índice. Ler um banco de dados completo item por item e convertê-lo para essa representação pode demorar muito mais do que a busca de Grover em si. Para dar conta de tais efeitos, o algoritmo de Grover pode ser visto como resolvendo uma equação ou satisfazendo um problema de restrição. Nessas aplicações, o oráculo é uma forma de verificar a restrição e não está relacionado ao algoritmo de busca. Essa separação geralmente impede otimizações algorítmicas, ao passo que os algoritmos de busca convencionais frequentemente dependem dessas otimizações e evitam a busca exaustiva. Felizmente, uma implementação rápida de oráculo para o algoritmo de Grover é possível em muitos problemas de satisfação de restrições e otimização.

A principal barreira para implementar uma aceleração a partir do algoritmo de Grover é que o ganho quadrático alcançado é muito modesto para superar a grande sobrecarga dos computadores quânticos de curto prazo. Contudo, gerações futuras de computadores quânticos tolerantes a falhas, com melhor desempenho de hardware, poderão conseguir realizar essas acelerações para instâncias práticas de dados.

Descrição do problema

Como entrada para o algoritmo de Grover, suponha que tenhamos uma função . Na analogia do "banco de dados não estruturado", o domínio representa os índices de um banco de dados, e se o dado que aponta satisfaz o critério de busca. Assumimos adicionalmente que apenas um índice satisfaz , e chamamos esse índice de . Nosso objetivo é identificar .

Podemos acessar com uma sub-rotina (às vezes chamada de oráculo) na forma de um operador unitário que age da seguinte forma:

Isso utiliza o espaço de estados de dimensões, fornecido por um registrador com qubits. Isso é frequentemente escrito como:

O algoritmo de Grover retorna com probabilidade de pelo menos utilizando aplicações de . Esta probabilidade pode se tornar arbitrariamente grande rodando-se o algoritmo de Grover múltiplas vezes. Se alguém rodar o algoritmo de Grover até que seja encontrado, o número esperado de aplicações continuará sendo , uma vez que, em média, ele será executado apenas duas vezes.

Definição alternativa de oráculo

Esta seção compara o oráculo acima com um oráculo .

O é diferente do oráculo quântico padrão para uma função . Este oráculo padrão, denotado aqui como , usa um sistema de qubits auxiliares (ancilla). A operação então representa uma inversão (porta NOT) no sistema principal condicionada ao valor de f(x) vindo do sistema auxiliar:

ou resumidamente,

Esses oráculos são tipicamente realizados utilizando a descomputação (uncomputation).

Se nos é dado como o nosso oráculo, então também podemos implementar , já que é equivalente a quando o qubit auxiliar está no estado :

Desta forma, o algoritmo de Grover pode ser executado independentemente de qual oráculo seja dado. Se é dado, então devemos manter um qubit adicional no estado e aplicar no lugar de .

Algoritmo

Representação de circuito quântico do algoritmo de Grover

Os passos do algoritmo de Grover são dados a seguir:

  1. Inicialize o sistema na superposição uniforme sobre todos os estados
  2. Realize a seguinte "iteração de Grover" vezes:
    1. Aplique o operador
    2. Aplique o operador de difusão de Grover
  3. Meça o estado quântico resultante na base computacional.

Para o valor corretamente escolhido de , a saída será com probabilidade aproximando-se de 1 para N ≫ 1. A análise mostra que esse valor ideal para satisfaz .

Implementar as etapas deste algoritmo pode ser feito usando um número de portas lineares no número de qubits. Portanto, a complexidade de portas desse algoritmo é , ou por iteração.

Prova geométrica

Imagem mostrando a interpretação geométrica da primeira iteração do algoritmo de Grover. O vetor de estado é girado em direção ao vetor alvo conforme mostrado

Há uma interpretação geométrica do algoritmo de Grover, oriunda da observação de que o estado quântico do algoritmo de Grover permanece num subespaço bidimensional após cada passo. Considere o plano gerado por e ; equivalentemente, o plano gerado por e o ket perpendicular .

O algoritmo de Grover começa com o ket inicial , que se encontra no subespaço. O operador é uma reflexão no hiperplano ortogonal a para vetores no plano gerado por e , isto é, ele atua como uma reflexão através de . Isto pode ser visto escrevendo na forma de uma reflexão de Householder:

O operador é uma reflexão através de . Ambos os operadores e levam estados no plano gerado por e para estados no mesmo plano. Portanto, o algoritmo de Grover permanece neste plano por toda a sua execução.

É simples verificar que o operador de cada iteração de Grover gira o vetor de estado por um ângulo de . Assim, com iterações suficientes, podemos girar do estado inicial até o estado de saída desejado . O ket inicial está próximo do estado ortogonal a :

Em termos geométricos, o ângulo entre e é dado por

Nós precisamos parar quando o vetor de estado passar perto de ; depois disso, iterações subsequentes giram o vetor de estado para longe de , reduzindo a probabilidade de obter a resposta correta. A probabilidade exata de medir a resposta correta é

onde r é o número (inteiro) de iterações de Grover. O tempo mais curto em que conseguimos uma medição quase ótima é, portanto, .

Prova algébrica

Para completar a análise algébrica, precisamos descobrir o que acontece quando aplicamos repetidamente . Uma maneira natural de fazer isso é através da análise de autovalores de uma matriz. Note que durante todo o cálculo, o estado do algoritmo é uma combinação linear de e . Podemos escrever a ação de e no espaço gerado por como:

Portanto, na base (que não é ortogonal nem é base do espaço todo) a ação de aplicar seguido de é dada pela matriz

Esta matriz, por acaso, tem uma Forma de Jordan muito conveniente. Se definirmos , ela é

onde

Segue que a r-ésima potência da matriz (correspondente a r iterações) é

Usando essa forma, podemos usar identidades trigonométricas para calcular a probabilidade de observar ω após as r iterações mencionadas na seção anterior,

Alternativamente, é razoável imaginar que um tempo quase ótimo para a distinção seria quando os ângulos 2rt e −2rt estivessem o mais distantes possível, o que corresponde a , ou . O sistema estará então no estado

Um pequeno cálculo mostra agora que a observação produz a resposta correta ω com erro .

Extensões e variantes

Múltiplas entradas correspondentes

Se, em vez de 1 entrada correspondente, houver k entradas correspondentes, o mesmo algoritmo funciona, mas o número de iterações deverá ser de em vez de .

Existem diversas maneiras de lidar com a situação se k for desconhecido. Uma solução simples tem desempenho ótimo a menos de um fator constante: execute o algoritmo de Grover repetidamente para valores de k cada vez menores, por exemplo, tomando k = N, N/2, N/4, ..., e assim por diante, tomando para a iteração t até que uma entrada correspondente seja encontrada.

Com uma probabilidade suficientemente alta, uma entrada marcada será encontrada na iteração para alguma constante c. Portanto, o número total de iterações executadas é de, no máximo,

Outra abordagem se k for desconhecido é derivá-lo através do algoritmo de contagem quântica previamente.

Se (ou se o algoritmo de Grover tradicional de estado marcado único for rodado com ), o algoritmo não fornecerá amplificação. Se , aumentar k começará a elevar o número de iterações necessárias para se obter uma solução. Por outro lado, se , uma simples verificação clássica do oráculo sobre uma única escolha aleatória de entrada terá mais chances de fornecer uma solução correta do que não.

Uma versão desse algoritmo é usada para resolver o problema da colisão.

Busca parcial quântica

Uma modificação do algoritmo de Grover, chamada de busca parcial quântica, foi descrita por Grover e Radhakrishnan em 2004. Na busca parcial, não se tem o interesse em encontrar o endereço exato do item procurado, apenas os primeiros dígitos desse endereço. Equivalentemente, podemos pensar em "dividir" o espaço de busca em blocos e depois perguntar "em que bloco está o item procurado?". Em muitas aplicações, uma pesquisa assim rende informações suficientes se o endereço alvo contém a informação almejada. Por exemplo, usando a analogia dada por L. K. Grover, se tivermos uma lista de alunos organizada por classificação da turma, podemos estar interessados apenas em saber se um aluno está no percentil inferior 25%, 25–50%, 50–75% ou 75–100%.

Para descrever a busca parcial, consideramos um banco de dados separado em blocos, cada um com tamanho . O problema de busca parcial é mais fácil. Considere a abordagem clássica – escolheríamos um bloco aleatoriamente e, em seguida, faríamos uma pesquisa normal pelo resto dos blocos (na linguagem da teoria dos conjuntos, o complemento). Se não encontrarmos o alvo, saberemos que ele se encontra no bloco em que não pesquisamos. O número médio de iterações cai de para .

O algoritmo de Grover requer iterações. A pesquisa parcial será mais rápida por um fator numérico que depende do número de blocos . A pesquisa parcial usa iterações globais e iterações locais. O operador global de Grover é designado e o operador local de Grover é designado .

O operador global de Grover atua sobre os blocos. Basicamente, ele é dado da seguinte forma:

  1. Execute iterações padrão de Grover no banco de dados completo.
  2. Execute iterações locais de Grover. Uma iteração local de Grover é uma soma direta de iterações de Grover em cada bloco.
  3. Execute uma iteração padrão de Grover.

Os valores ótimos de e são discutidos no artigo de Grover e Radhakrishnan. Pode-se também perguntar o que acontece caso sejam aplicadas pesquisas parciais sucessivas em diferentes níveis de "resolução". Essa ideia foi detalhadamente estudada por Vladimir Korepin e Xu, que a chamaram de busca quântica binária. Eles provaram que ela não é de fato mais rápida do que realizar uma única busca parcial.

Otimalidade

O algoritmo de Grover é ótimo a menos de fatores subconstantes. Ou seja, qualquer algoritmo que acesse o banco de dados utilizando apenas o operador Uω deverá aplicar Uω pelo menos uma fração das vezes que o algoritmo de Grover o faz. A extensão do algoritmo de Grover para k entradas correspondentes, π(N/k)1/2/4, também é ótima. Este resultado é importante para entender os limites da computação quântica.

Se o problema de busca de Grover fosse solucionável com logc N aplicações de Uω, isso implicaria que NP estaria contido em BQP, transformando problemas em NP para problemas do tipo de busca de Grover. A otimalidade do algoritmo de Grover sugere que computadores quânticos não são capazes de resolver problemas NP-Completos em tempo polinomial e, portanto, NP não está contido em BQP.

Demonstrou-se que uma classe de computadores quânticos não-locais de variáveis ocultas poderia implementar a pesquisa num banco de dados de itens em, no máximo, passos. Isso é mais rápido do que os passos levados pelo algoritmo de Grover.

Ver também

Referências

  1. 1 2 Grover, Lov K. (1 de julho de 1996). «A fast quantum mechanical algorithm for database search». Proceedings of the twenty-eighth annual ACM symposium on Theory of computing - STOC '96. Philadelphia, Pennsylvania, USA: Association for Computing Machinery. pp. 212–219. Bibcode:1996quant.ph..5043G. ISBN 978-0-89791-785-8. arXiv:quant-ph/9605043Acessível livremente. doi:10.1145/237814.237866
  2. ↑ Bennett, C. H.; Bernstein, E.; Brassard, G.; Vazirani, U. (1997). «The strengths and weaknesses of quantum computation». SIAM Journal on Computing. 26 (5): 1510–1523. arXiv:quant-ph/9701001Acessível livremente. doi:10.1137/s0097539796300933
  3. 1 2 3 4 Nielsen, Michael A.; Chuang, Isaac L. (2010). Quantum computation and quantum information. Cambridge: Cambridge University Press. pp. 276–305. ISBN 978-1-107-00217-3. OCLC 665137861
  4. ↑ Bernstein, Daniel J. (2010). «Grover vs. McEliece» (PDF). In: Sendrier, Nicolas. Post-Quantum Cryptography, Third International Workshop, PQCrypto 2010, Darmstadt, Germany, May 25-28, 2010. Proceedings. Lecture Notes in Computer Science. 6061. Springer. pp. 73–80. ISBN 978-3-642-12928-5. doi:10.1007/978-3-642-12929-2_6
  5. ↑ Grover, Lov K. (1998). «A framework for fast quantum mechanical algorithms». In: Vitter, Jeffrey Scott. Proceedings of the Thirtieth Annual ACM Symposium on the Theory of Computing, Dallas, Texas, USA, May 23–26, 1998. Association for Computing Machinery. pp. 53–62. ISBN 0-89791-962-9. arXiv:quant-ph/9711043Acessível livremente. doi:10.1145/276698.276712
  6. 1 2 Ambainis, A. (1 de junho de 2004). «Quantum search algorithms». ACM SIGACT News. 35 (2): 22–35. ISSN 0163-5700. arXiv:quant-ph/0504012Acessível livremente. doi:10.1145/992287.992296
  7. ↑ Jordan, Stephen. «Quantum Algorithm Zoo». quantumalgorithmzoo.org (em inglês). Consultado em 21 de abril de 2021
  8. ↑ Cerf, Nicolas J.; Grover, Lov K.; Williams, Colin P. (1 de maio de 2000). «Nested Quantum Search and NP-Hard Problems». Applicable Algebra in Engineering, Communication and Computing (em inglês). 10 (4): 311–338. ISSN 1432-0622. doi:10.1007/s002000050134
  9. ↑ Ambainis, Andris (1 de janeiro de 2007). «Quantum Walk Algorithm for Element Distinctness». SIAM Journal on Computing. 37 (1): 210–239. ISSN 0097-5397. arXiv:quant-ph/0311001Acessível livremente. doi:10.1137/S0097539705447311
  10. ↑ Brassard, Gilles; Høyer, Peter; Tapp, Alain (1998). «Quantum Cryptanalysis of Hash and Claw-Free Functions». In: Lucchesi, Claudio L.; Moura, Arnaldo V. LATIN '98: Theoretical Informatics, Third Latin American Symposium, Campinas, Brazil, April, 20-24, 1998, Proceedings. Lecture Notes in Computer Science. 1380. Springer. pp. 163–169. ISBN 978-3-540-64275-6. arXiv:quant-ph/9705002Acessível livremente. doi:10.1007/BFb0054319
  11. ↑ Post-quantum cryptography. Daniel J. Bernstein, Johannes Buchmann, Erik, Dipl.-Math Dahmén. Berlin: Springer. 2009. ISBN 978-3-540-88702-7. OCLC 318545517
  12. ↑ Bernstein, Daniel J. (21 de abril de 2021). «Cost analysis of hash collisions: Will quantum computers make SHARCS obsolete?» (PDF). Conference Proceedings for Special-purpose Hardware for Attacking Cryptographic Systems (SHARCS '09). 09: 105–117
  13. ↑ Viamontes G.F.; Markov I.L.; Hayes J.P. (2005), «Is Quantum Search Practical?» (PDF), Computing in Science and Engineering, 7 (3): 62–70, Bibcode:2005CSE.....7c..62V, arXiv:quant-ph/0405001Acessível livremente, doi:10.1109/mcse.2005.53
  14. ↑ Sinitsyn N. A.; Yan B. (2023). «Topologically protected Grover's oracle for the partition problem». Physical Review A. 108 (2). Bibcode:2023PhRvA.108b2412S. arXiv:2304.10488Acessível livremente. doi:10.1103/PhysRevA.108.022412
  15. ↑ Babbush, Ryan; McClean, Jarrod R.; Newman, Michael; Gidney, Craig; Boixo, Sergio; Neven, Hartmut (29 de março de 2021). «Focus beyond Quadratic Speedups for Error-Corrected Quantum Advantage». PRX Quantum. 2 (1). arXiv:2011.04149Acessível livremente. doi:10.1103/PRXQuantum.2.010103 Verifique o valor de |doi-access=livre (ajuda)
  16. ↑ Aaronson, Scott (19 de abril de 2021). «Introduction to Quantum Information Science Lecture Notes» (PDF)
  17. ↑ Nielsen-Chuang
  18. 1 2 Boyer, Michel; Brassard, Gilles; Høyer, Peter; Tapp, Alain (1998), «Tight Bounds on Quantum Searching», ISBN 978-3-527-60309-1, Fortschritte der Physik, 46 (4–5): 493–506, Bibcode:1998ForPh..46..493B, arXiv:quant-ph/9605034Acessível livremente, doi:10.1002/3527603093.ch10
  19. ↑ Ambainis, Andris (2004), «Quantum search algorithms», SIGACT News, 35 (2): 22–35, Bibcode:2005quant.ph..4012A, arXiv:quant-ph/0504012Acessível livremente, doi:10.1145/992287.992296
  20. ↑ Grover, L. K.; Radhakrishnan, J. (7 de fevereiro de 2005). «Is partial quantum search of a database any easier?». arXiv:quant-ph/0407122v4Acessível livremente
  21. ↑ Zalka, Christof (1 de outubro de 1999). «Grover's quantum searching algorithm is optimal». Physical Review A. 60 (4): 2746–2751. Bibcode:1999PhRvA..60.2746Z. arXiv:quant-ph/9711070Acessível livremente. doi:10.1103/PhysRevA.60.2746
  22. ↑ Aaronson, Scott. «Quantum Computing and Hidden Variables» (PDF)

Bibliografia

Ligações externas

O Wikiquote tem citações relacionadas a Algoritmo de Grover.