Quelle est la complexité temporelle (et non la complexité des requêtes) de l'algorithme de Grover? Il me semble clair qu'il s'agit de car il existe des itérations et chaque itération nécessite l'utilisation de l'opération de réflexion qui à son tour prend du temps utilisant n'importe quel ensemble standard de portes universelles.
Le problème est que je ne trouve même pas une seule référence qui indique que la complexité temporelle de l'algorithme de Grover est . Wikipédia et plusieurs autres pages Web indiquent la complexité temporelle . Le document de Grover revendique "étapes".
Suis-je en train de manquer quelque chose? Peut-être que les gens définissent l'opération de réflexion pour prendre le temps unitaire. Mais cela n'a pas de sens pour moi, car si nous pouvons jouer le jeu de permettre à des unités arbitraires de prendre du temps unitaire, il n'y aurait pas de différence entre la complexité des requêtes et la complexité du temps.
la source
Réponses:
La question est généralement considérée comme théorique, pour la raison suivante. L'algorithme de Grover est un algorithme de recherche combinatoire pour trouver une solution à un prédicat arbitraire. Alors que, oui, est la complexité de la porte quantique à chaque étape de l'algorithme de boîte noire, le prédicat doit également être calculé. La complexité de la porte quantique est Ω ( log N )Θ(logN) Ω(logN) , car sinon, il ne lirait pas l'intégralité de l'entrée et vous pourriez supprimer certains des bits d'entrée de la recherche. D'un autre côté, un prédicat intéressant pourrait prendre beaucoup plus de temps que cela. Par conséquent, le nombre d'appels au prédicat est considéré comme la pièce standard, tout comme pour l'analogue classique de l'algorithme de Grover, à savoir la devinette aléatoire.
la source
la source