• Aucun résultat trouvé

1.2 Algorithmes quantiques

1.2.1 Algorithme de Grover

Propos´e par Lov Grover8 en 1996 [117], cet algorithme a pour but de r´esoudre le

probl`eme de recherche d’un ´el´ement dans une base de donn´ees non-ordonn´ee de taille N . Aucun a priori n’est connu sur l’´el´ement recherch´e, mais on d´efinit une fonction fO,

appel´ee commun´ement Oracle, permettant de reconnaˆıtre l’´el´ement recherch´e.

La meilleure strat´egie classique est ´equivalente `a parcourir un par un les ´el´ements de la base de donn´ees, ´evaluer l’oracle pour chacun des ´el´ements, jusqu’`a le trouver. En moyenne, cela prend N2 ´evaluations de l’oracle, et dans le pire des cas N ´evaluations. La complexit´e est donc lin´eaire en N ici, en terme d’´evaluations de l’oracle. L’un des grands avantages de l’algorithme de Grover est de proposer une complexit´e de l’ordre deO(√N ) ´evaluation de l’oracle, pour la recherche d’un ´el´ement.

8. Lov Grover (1961) est un informaticien indo-am´ericain aux Laboratories Bell, reconnu notam- ment pour son algorithme de recherche quantique.

L’algorithme quantique de Grover propose de repr´esenter l’ensemble de la base de donn´ees comme un registre quantique de taille N . On supposera que N = 2n pour des

raisons de simplification. On repr´esente donc la base de donn´ees `a l’aide d’un syst`eme quantique `a n qubits. Chaque ´etat de base correspond `a un ´el´ement de la base de donn´ees.

On d´enombre quatre ´etapes principales dans l’algorithme de Grover : l’initialisation, l’op´erateur d’Oracle, l’op´erateur de Diffusion et la mesure finale. On noteraS l’ensemble des ´el´ements recherch´es lors du lancement de l’algorithme, et |S| d´esignera le nombre d’´el´ements recherch´es. En fonction de |S| et N, les op´erateurs d’Oracle et de Diffusion seront r´ep´et´es plusieurs fois.

Le circuit correspondant aux diff´erentes ´etapes de l’algorithme est repr´esent´e en Figure 1.6. La premi`ere ´etape est celle de l’initialisation, c’est-`a-dire la pr´eparation du premier registre pour obtenir un ´etat totalement parall´elis´e|+i⊗n. Ceci peut se faire en initialisant le premier registre quantique `a l’´etat |0i⊗n puis en appliquant la porte de Hadamard `a chaque qubit. Le second registre est compos´e d’un seul qubit, g´en´eralement initialis´e `a |−i, et sert en pratique pour l’impl´ementation de l’op´erateur d’Oracle.

Op´erateurs d’Oracle et de Diffusion |0ni H⊗n O H⊗n 2|0nih0n| − I n H⊗n · · · |1i H R´ep´et´e Or N |S|  fois

Figure 1.6 – Repr´esentation de l’algorithme de Grover sous la forme d’un circuit [133] Ensuite, l’op´erateur d’Oracle va marquer le (ou les) ´el´ement(s) recherch´e(s) dans la base de donn´ees. Ce marquage consiste `a multiplier par −1 l’amplitude associ´ee aux ´etats de base repr´esentant les ´el´ements marqu´es. L’´etat du premier registre est alors modifi´e. Nous ne nous attarderons pas sur l’impl´ementation effective de l’Oracle (nous consid´ererons l’op´erateur d’Oracle comme une boite noire et un op´erateur unitaire). Plusieurs ´etudes th´eoriques et exp´erimentales ont ´et´e n´eanmoins men´ees sur le sujet [200, 218]. Le lecteur prendra tout de mˆeme soin de distinguer le fait de connaˆıtre la solution, et le fait de pouvoir reconnaˆıtre la solution. On peut ˆetre capable de reconnaˆıtre la bonne solution lorsqu’elle se pr´esente `a nous, sans pour autant ˆetre en mesure de la d´eterminer [200]. L’op´erateur d’Oracle agit donc comme suit sur les ´etats de base :

|xi−−−−→ (−1)Oracle fO(x)|xi , (1.39)

avec fO(x) = 1 si x est l’´el´ement recherch´e, fO(x) = 0 sinon.

L’op´erateur de diffusion D intervient ensuite. Il a pour but d’amplifier le module des amplitudes correspondantes aux ´el´ements marqu´es. Il correspond `a effectuer une sym´etrie de toutes les amplitudes autour de la moyenne des amplitudes (voir ´Equations 1.40 et 1.41) :

D = H⊗n · 2|0i⊗nh0|⊗n− In · (H⊗n) , (1.40) D 2n−1 X x=0 cx|xi  = 2n−1 X x=0 2c− cx|xi , (1.41)

avec c la moyenne de toutes les amplitudes cx.

Combin´e avec l’op´erateur d’Oracle (qui signe les amplitudes des ´etats recherch´es), cela permet d’amplifier les amplitudes des ´etats recherch´es et de r´eduire les amplitudes des ´etats non-recherch´es (voir Figure 1.7). Ces deux op´erations sont r´ep´et´ees kopt fois,

d´efini tel que :

kopt =b π 4 s N |S|e , (1.42) avec bxe d´esignant l’entier le plus proche de x ∈ R [200]. On supposera ici que le nombre d’´el´ements marqu´es |S| est n´egligeable devant la quantit´e N = 2n pour

assurer l’approximation de l’index de l’it´eration optimale. Au del`a de l’it´eration opti- male kopt, l’amplitude devant les ´el´ements recherch´es commence `a d´ecroˆıtre. En effet on

peut observer un comportement p´eriodique de l’algorithme de Grover si on poursuit les it´erations apr`es l’it´eration optimale [133, 147]. La complexit´e de l’algorithme est donc enO(q|S|N) (voir Equation 1.42).

Figure 1.7 – Repr´esentation de l’´evolution des amplitudes du premier registre au cours de la premi`ere it´eration l’algorithme de Grover pour n = 3 et S = {|101i} [278]. De gauche `a droite, le premier histogramme repr´esente l’´etat|+i⊗3d’initialisation, le second histogramme l’application de l’Oracle marquant l’´element recherch´e et les deux derniers histogrammes repr´esentent l’application de l’op´erateur de Diffusion.

L’algorithme de Grover pr´esente un avantage par rapport aux algorithmes naifs de recherche, et ceci en particulier pour tout probl`eme de d´ecision dont la complexit´e est de classe NP (probl`emes pour lesquels on peut v´erifier si une proposition de solution en est bien une, et ceci en un temps polynomial) [193].

Par exemple, l’utilisation de l’algorithme de Grover pour la r´esolution du probl`eme d’Amplitude amplification [44], permet un gain quadratique en terme de complexit´e, compar´e aux algorithmes classiques bas´es sur des heuristiques.

L’algorithme de Grover peut en outre ˆetre utilis´e pour trouver le minimum parmi n nombres [90], pour d´eterminer la connectivit´e d’un graphe `a n sommets [89] et pour acc´el´erer les m´ethodes de type Monte-Carlo [122]