Description de l'algorithme de Grover
Dans cette section, nous allons décrire l'algorithme de Grover. Nous commencerons par discuter des portes de requête de phase et de la façon de les construire, suivie de la description de l'algorithme de Grover lui-même. Enfin, nous discuterons brièvement de la façon dont cet algorithme s'applique naturellement à la recherche.
Portes de requête de phase
L'algorithme de Grover utilise des opérations connues sous le nom de portes de requête de phase. Contrairement à une porte de requête ordinaire définie pour une fonction donnée de la manière habituelle décrite précédemment, une porte de requête de phase pour la fonction est définie comme
pour toute chaîne
L'opération peut être implémentée en utilisant une porte de requête comme le suggère ce diagramme :
Cette implémentation utilise le phénomène de rétroaction de phase, et nécessite qu'un qubit d'espace de travail, initialisé dans l'état soit disponible. Ce qubit reste dans l'état après la fin de l'implémentation, et peut être réutilisé (pour implémenter des portes ultérieures, par exemple) ou simplement écarté.
En plus de l'opération nous utiliserons également une porte de requête de phase pour la fonction OU à bits, qui est définie comme suit pour chaque chaîne
Explicitement, la porte de requête de phase pour la fonction OU à bits opère comme suit :
Pour être clair, c'est ainsi que opère sur les états de base standard ; son comportement sur des états arbitraires est déterminé à partir de cette expression par linéarité.
L'opération peut être implémentée comme un circuit quantique en commençant par un circuit booléen pour la fonction OU, puis en construisant une opération (c'est-à-dire une porte de requête standard pour la fonction OU à bits) en utilisant la procédure décrite dans la leçon Fondements algorithmiques quantiques, et enfin une opération en utilisant le phénomène de rétroaction de phase comme décrit ci-dessus. Remarque que l'opération n'a aucune dépendance sur la fonction et peut donc être implémentée par un circuit quantique sans portes de requête.
Description de l'algorithme
Maintenant que nous disposons des deux opérations et nous pouvons décrire l'algorithme de Grover.
L'algorithme fait référence à un nombre qui est le nombre d'itérations qu'il effectue (et donc le nombre de requêtes à la fonction qu'il nécessite). Ce nombre n'est pas spécifié par l'algorithme de Grover tel que nous le décrivons, et nous discuterons plus loin dans la leçon comment il peut être choisi.
L'opération itérée à l'étape 2 sera appelée l'opération de Grover dans la suite de cette leçon. Voici une représentation en circuit quantique de l'opération de Grover lorsque
Dans ce diagramme, l'opération est représentée comme étant plus grande que comme indicateur visuel informel suggérant qu'elle est probablement l'opération la plus coûteuse. En particulier, lorsque nous travaillons dans le modèle de requêtes, nécessite une requête tandis que n'en nécessite aucune. Si au lieu de cela nous disposons d'un circuit booléen pour la fonction puis le convertissons en un circuit quantique pour on peut raisonnablement s'attendre à ce que le circuit quantique résultant soit plus grand et plus complexe que celui pour
Voici un diagramme d'un circuit quantique pour l'algorithme entier lorsque et Pour des valeurs plus grandes de il suffit d'insérer des instances supplémentaires de l'opération de Grover immédiatement avant les mesures.
Application à la recherche
L'algorithme de Grover peut être appliqué au problème de Recherche comme suit :
- Choisir le nombre à l'étape 2. (Cela est discuté plus loin dans la leçon.)
- Exécuter l'algorithme de Grover sur la fonction en utilisant le choix que nous avons fait pour pour obtenir une chaîne
- Interroger la fonction sur la chaîne pour voir si c'est une solution valide :
- Si alors nous avons trouvé une solution, nous pouvons donc nous arrêter et retourner
- Sinon, si nous pouvons soit relancer la procédure, éventuellement avec un choix différent pour soit décider d'abandonner et retourner « aucune solution ».
Une fois que nous aurons analysé le fonctionnement de l'algorithme de Grover, nous verrons qu'en prenant on obtient une solution à notre problème de recherche (si elle existe) avec haute probabilité.