Analyse
Nous allons maintenant analyser l'algorithme de Grover pour comprendre comment il fonctionne. Nous commencerons par ce que l'on pourrait appeler une analyse symbolique, où nous calculons comment l'opération Grover agit sur certains états, puis nous relierons cette analyse symbolique à une image géométrique utile pour visualiser le fonctionnement de l'algorithme.
Solutions et non-solutions
Commençons par définir deux ensembles de chaînes.
L'ensemble contient toutes les solutions à notre problème de recherche, tandis que contient les chaînes qui ne sont pas des solutions (que nous pouvons appeler " non-solutions " lorsque c'est pratique). Ces deux ensembles satisfont et , ce qui revient à dire qu'il s'agit d'une bipartition de
Nous allons ensuite définir deux vecteurs unitaires représentant des superpositions uniformes sur les ensembles de solutions et de non-solutions.
Formellement, chacun de ces vecteurs n'est défini que lorsque l'ensemble correspondant est non vide, mais nous nous concentrerons ci-après sur le cas où ni ni ne sont vides. Les cas de et peuvent facilement être traités séparément, ce que nous ferons plus tard.
Soit dit en passant, la notation utilisée ici est courante : chaque fois que nous disposons d'un ensemble fini et non vide , nous pouvons écrire pour désigner le vecteur d'état quantique qui est uniforme sur les éléments de
Définissons également comme un état quantique uniforme sur toutes les chaînes de bits :
Notez que
Nous savons également que donc représente l'état du registre après l'initialisation à l'étape 1 de l'algorithme de Grover.
Cela implique que juste avant les itérations de à l'étape 2, l'état de est contenu dans l'espace vectoriel bidimensionnel couvert par et et que, de plus, les coefficients de ces vecteurs sont des nombres réels. Comme nous le verrons, l'état de aura toujours ces propriétés - ce qui signifie que l'état est une combinaison linéaire réelle de et - après un nombre quelconque d'itérations de l'opération à l'étape 2.
Une observation concernant l'opération Grover
Nous allons maintenant nous intéresser à l'opération Grover
en commençant par une observation intéressante à son sujet.
Imaginons un instant que nous remplacions la fonction par la composition de avec la fonction NOT - ou, en d'autres termes, la fonction que nous obtenons en retournant le bit de sortie de Nous appellerons cette nouvelle fonction et nous pouvons l'exprimer à l'aide de symboles de différentes manières.
Notez que
pour toute chaîne de caractères et donc
Cela signifie que si nous devions remplacer la fonction par la fonction , l'algorithme de Grover ne fonctionnerait pas différemment, car les états obtenus par l'algorithme dans les deux cas sont nécessairement équivalents jusqu'à une phase globale.
Ce n'est pas un problème! Intuitivement, l'algorithme ne se préoccupe pas de savoir quelles chaînes sont des solutions et quelles chaînes sont des non-solutions - il doit seulement être capable de distinguer les solutions et les non-solutions pour fonctionner correctement.
Action de l'opération Grover
Considérons maintenant l'action de sur les vecteurs d'états quantiques et
Observons tout d'abord que l'opération a une action très simple sur et sur
Deuxièmement, nous avons l'opération L'opération est définie comme suit
pour chaque chaîne de caractères et une autre façon pratique d'exprimer cette opération est la suivante :
Un moyen simple de vérifier que cette expression est conforme à la définition de est d'évaluer son action sur les états de base standard.
L'opération peut donc s'écrire comme suit :
en utilisant la même notation, , que celle que nous avons utilisée ci-dessus pour la superposition uniforme de toutes les chaînes de -bits.
Nous avons maintenant ce qu'il nous faut pour calculer l'action de sur et Calculons d'abord l'action de sur
Et deuxièmement, calculons l'action de sur
Dans les deux cas, nous utilisons l'équation suivante
ainsi que les expressions
qui suivent.
En résumé, nous avons
Comme nous l'avons déjà noté, l'état de juste avant l'étape 2 est contenu dans l'espace bidimensionnel couvert par et et nous venons d'établir que fait correspondre tout vecteur de cet espace à un autre vecteur du même espace. Cela signifie que, pour les besoins de l'analyse, nous pouvons concentrer notre attention exclusivement sur ce sous-espace.
Pour mieux comprendre ce qui se passe dans cet espace bidimensionnel, exprimons l'action de sur cet espace sous la forme d'une matrice,
dont les première et deuxième lignes/colonnes correspondent respectivement à et . Jusqu'à présent, dans cette série, nous avons toujours associé les lignes et les colonnes des matrices aux états classiques d'un système, mais les matrices peuvent également être utilisées pour décrire les actions des mappings linéaires sur différentes bases, comme c'est le cas ici.
Bien que cela ne soit pas du tout évident à première vue, la matrice est ce que nous obtenons en élevant au carré une matrice d'apparence plus simple.
La matrice
est une matrice de rotation, que l'on peut également exprimer comme suit
pour
Cet angle va jouer un rôle très important dans l'analyse qui suit, et il convient donc de souligner son importance ici, alors que nous le voyons pour la première fois.
À la lumière de l'expression de cette matrice, on observe que
En effet, tourner deux fois autour de l'angle équivaut à tourner autour de l'angle Une autre façon de voir cela est d'utiliser l'expression alternative
ainsi que les formules d' angle double de la trigonométrie :
En résumé, l'état du registre au début de l'étape 2 est le suivant
et l'application de à cet état a pour effet de le faire pivoter d'un angle dans l'espace couvert par et Ainsi, par exemple, nous avons
et en général
Image géométrique
Relions maintenant l'analyse que nous venons de faire à une image géométrique. L'idée est que l'opération est le produit de deux réflexions, et Et l'effet net de ces deux réflexions est d'effectuer une rotation.
Commençons par Comme nous l'avons déjà observé précédemment, nous avons
Dans l'espace vectoriel à deux dimensions couvert par et il s'agit d'une réflexion sur la ligne parallèle à que nous appellerons Voici une figure illustrant l'action de cette réflexion sur un vecteur unitaire hypothétique que nous supposons être une combinaison linéaire réelle de et de
Deuxièmement, nous avons l'opération qui, comme nous l'avons déjà vu, peut s'écrire comme suit
Il s'agit également d'une réflexion, cette fois sur la ligne parallèle au vecteur Voici une figure illustrant l'action de cette réflexion sur un vecteur unitaire
Lorsque l'on compose ces deux réflexions, on obtient une rotation - de deux fois l'angle entre les lignes de réflexion - comme l'illustre cette figure.
Cela explique, en termes géométriques, pourquoi l'opération Grover a pour effet de faire pivoter les combinaisons linéaires de et d'un angle de