Problema resolvido na íntegra
-
Duas iterações para encontrar um item marcado entre 8 5 passos
O algoritmo de Grover encontra um item marcado entre 8 em duas iterações. Descubra de onde vem o dois — e o que acontece se executar uma terceira.
-
Antes de qualquer execução, o estado é uma superposição uniforme: cada item é igualmente provável, pelo que o marcado transporta 1/8 da probabilidade. Isto é o mesmo que um palpite aleatório clássico, e o painel mostra ambos para evidenciar o facto.
-
Cada iteração de Grover é uma rotação por um ângulo fixo num plano bidimensional gerado pelo estado marcado e por todos os outros. O ângulo deriva da amplitude e, para N = 8, é de cerca de 20,7°.
-
Assim, a probabilidade não é uma curva que sobe e estabiliza — é um seno ao quadrado, e sobe acentuadamente: 12,5%, depois 78,1%, depois 94,5%.
-
O ponto de paragem ótimo é a rotação que fica mais próxima de 90°, que é π/4 vezes a raiz quadrada de N. Para oito itens, esse valor é 2,22 e, como não é possível realizar uma iteração fracionária, o resultado é 2.
-
Execute uma terceira e a rotação ultrapassa o ponto ótimo. A probabilidade cai para 33,0% — pior do que após uma iteração, regressando em direção ao ponto de partida.
Resposta
A ferramenta apresenta 12,50% tanto para a sobreposição inicial como para o caso clássico de 1 em N e interrompe a execução automática em 2, embora os controlos para avançar uma etapa e saltar para o fim permitam chegar a 5. É o excesso de iterações que costuma surpreender: mais iterações pioram o resultado, pois a amplificação de amplitude é uma rotação, e as rotações acabam por dar a volta completa. É também por isso que a aceleração de Grover é apenas quadrática, não exponencial. São necessárias cerca de √N rotações para chegar aos 90°; assim, 8 elementos exigem 2, enquanto um milhão exige 785. É uma vantagem considerável, mas muito diferente da vantagem exponencial que a expressão «pesquisa quântica» pode sugerir.
-
Referências (1)
- The algorithm this tool steps through: L. K. Grover, "A fast quantum mechanical algorithm for database search." Proceedings of the 28th Annual ACM Symposium on Theory of Computing, 212–219, 1996.