Comment fonctionne l'opérateur de diffusion Grover et pourquoi est-il optimal?

15

Dans cette réponse , l'algorithme de Grover est expliqué. L'explication indique que l'algorithme s'appuie fortement sur l' opérateur de diffusion Grover , mais ne donne pas de détails sur le fonctionnement interne de cet opérateur.

En bref, l'opérateur de diffusion Grover crée une «inversion de la moyenne» pour rendre itératives les minuscules différences des étapes précédentes suffisamment grandes pour être mesurables.

Les questions sont maintenant:

  1. Comment l'opérateur de diffusion Grover y parvient-il?
  2. Pourquoi le résultat en temps total pour rechercher une base de données non ordonnée est-il optimal?O(n)
Lézard discret
la source
1
Juste un commentaire sur la deuxième question. Il y a des travaux pour montrer que la trace de l'état dans l'algorithme de Grover suit exactement la géodésique reliant l'état initial de l'algorithme et l'état de destination. C'est donc optimal.
XXDD

Réponses:

5

Comme la question d'origine portait sur la description d'un profane, je propose une solution légèrement différente qui est peut-être plus facile à comprendre (en fonction de l'arrière-plan), basée sur un temps continu évolution. (Je ne prétends cependant pas qu'il convient à un profane.)

Nous partons d'un état initial qui est une superposition uniforme de tous les états, et nous cherchons à trouver un état qui peut être reconnu comme la bonne réponse (en supposant qu'il existe exactement un tel état, bien que cela puisse être généralisé). Pour ce faire, nous évoluons dans le temps sous l'action d'un hamiltonien La très belle caractéristique de la recherche de Grover est qu'à ce stade, nous pouvons réduire les mathématiques à un sous-espace de seulement deux états , plutôt que d'exiger les . Il est plus facile de décrire si nous faisons une base orthonormée à partir de ces états, où | xH=| xx| +| ψψ| . {| x,| ψ}2n{| x,| ψ}| ψ=1

|ψ=12ny{0,1}n|y
|x
H=|xx|+|ψψ|.
{|x,|ψ}2n{|x,|ψ}e-iHt| ψe-it(I+2-nZ+
|ψ=12n1y{0,1}n:yx|y.
En utilisant cette base, l'évolution temporelle peut être écrite comme où et sont les matrices Pauli standard. Cela peut être réécrit sous la forme Donc, si nous évoluons pendant un tempseiHt|ψXZe-it(Icos(t
eit(I+2nZ+2n12nX)(12n112n),
XZt=π
eit(Icos(t2n/2)i12n/2sin(t2n/2)(Z+X2n1))(12n112n).
t=π22n/2, et en ignorant les phases globales, l'état final est En d'autres termes, avec la probabilité 1, nous obtenons l'état que nous recherchions. La description habituelle en circuit de la recherche de Grover est vraiment juste cette évolution temporelle continue divisée en étapes discrètes, avec le léger inconvénient que vous ne pouvez généralement pas obtenir exactement la probabilité 1 pour votre résultat, juste très proche.| x
12n/2(Z+X2n1)(12n112n)=(12n2n12n)+(112n2n12n)=(10).
|x

Une mise en garde est la suivante: vous pouvez redéfinir , et évoluer en utilisant et le temps d'évolution serait 5 fois plus court. Si vous voulez être vraiment radical, remplacez le 5 par , et la recherche de Grover s'exécute en temps constant! Mais vous n'êtes pas autorisé à le faire arbitrairement. Toute expérience donnée aurait une force de couplage maximale fixe (c'est-à-dire un multiplicateur fixe). Ainsi, différentes expériences ont des temps d'exécution différents, mais leur mise à l'échelle est la même, . C'est comme dire que le coût de la porte dans le modèle de circuit est constant, plutôt que de supposer que si nous utilisons un circuit de profondeur chaque porte peut être exécutée dans le temps .H~=5HH~2n/22n/2k1/k

La preuve d'optimalité consiste essentiellement à montrer que si vous accélériez la détection d'un état marqué possible , cela ralentirait la détection d'un état marqué différent, . Étant donné que l'algorithme devrait fonctionner aussi bien quel que soit l'état marqué, cette solution est la meilleure.|x|y

DaftWullie
la source
4

Une façon de définir l'opérateur de diffusion est 1 , oùD=HnU0HnU0 est l' oracle de phase

U0|0n=|0n,U0|x=|xfor|x|0n.

Cela montre que peut également s'écrire, donnantU0U0=I2|0n0n|

D=2|++|I,
où .|+=2n/2(|0+|1)n

Écriture d'un état où est orthogonal à (ie|ψ=α|++β|+|+|+++=0) donne que .D|ψ=α|+β|+

Cela donne 2 que l'opérateur de diffusion est une réflexion sur|+

Comme l'autre partie de l'algorithme de Grover est également une réflexion, celles-ci se combinent pour faire pivoter l'état actuel plus près de la valeur `` recherchée '' . Cet angle diminue linéairement avec le nombre de rotations (jusqu'à ce qu'il dépasse la valeur recherchée), ce qui donne que la probabilité de mesurer correctement la valeur correcte augmente de façon quadratique.x0

Bennet et. Al. a montré que c'était optimal. En prenant une solution classique à un problème NP, l'algorithme de Grover peut être utilisé pour accélérer quadratique ce problème. Cependant, en prenant un langage pour une fonction de conservation de la longueurLA={y:xA(x)=y}A (ici, un oracle), tout borné- erreur, la machine de quantification basée sur Oracle ne peut pas accepter cette langue en un temps .T(n)=o(2n/2)

Ceci est réalisé en prenant un ensemble d'oracles où n'a pas d'inverse (donc n'est pas contenu dans le langage). Cependant, cela est contenu dans un nouveau langage par définition. La différence de probabilités d'une machine acceptant et d'une machine différente acceptant dans le temps est alors inférieure à et donc aucune langue n'est acceptée et l'algorithme de Grover est en effet asymptotiquement optimal. 3|1nLAyLALAyT(n)1/3

Zalka a montré plus tard que l'algorithme de Grover est exactement optimal.


1 Dans l'algorithme de Grover, les signes moins peuvent être déplacés, donc là où le signe moins est, est quelque peu arbitraire et ne doit pas nécessairement être dans la définition de l'opérateur de diffusion

2 alternativement, définir l'opérateur de diffusion sans le signe moins donne une réflexion sur|+

3 Définir la machine utilisant l'oracle comme et la machine utilisant l'oracle comme , ceci est dû au fait qu'il existe un ensemble de chaînes de bits, où les états de et à un instant sont -close 4 , avec une cardinalité . Chaque oracle où décide correctement si est dans peut être mappé sur oracles où échoueAMAAyMAySMAMAytϵ<2T2/ϵ2MA|1nLA2nCard(S)MA pour décider correctement si est dans la langue de cet oracle. Cependant, il doit donner une des réponses potentielles et donc si , la machine ne peut pas déterminer l'appartenance à .|1n2n1T(n)=o(2n/2)LA

4 En utilisant la distance euclidienne, deux fois la distance de trace

Mithrandir24601
la source