Algorithme de Grover

Fonctionnement du simulateur

Cette section a pour but d'expliquer comment nous nous y sommes pris pour réaliser une simulation de l'algorithme de Grover. Cette section concernera essentiellement la partie calcul et non la partie affichage.
Tout d'abord, il était impossible de faire les calculs matriciellements dû au fait que l'on souhaitait réaliser un simulateur avec un grand nombre de Qubit. Or il se trouve que les calculs matriciels sont proportionnel au carré du nombre de Qubit.
De ce fait, il fallait trouver une astuce pour simuler cet algorithme.

Pour celà nous allons utiliser la représenation géométrique de l'algorithme de Grover.

Pour rappel, voici l'état initial de l'algorithme de Grover. Or initialement chaque Qubit possède une amplitude égale à 1 sur la racine carré du nombre de Qubit. De ce fait, on sait que l'angle téta sera égale à l'arcsin de cette valeur. Mais on sait également que lorsque l'on réalise une itération de l'algorithme de Grover notre vecteur se voit ajouter un angle teta. 

Pour finir, lorsque l'angle de notre vecteur est égale à pi sur 2 alors l'amplitude du qubit recherché est alors maximale à savoir 1. On peut donc savoir par un calcul de proportionnalité à quelle amplitude correspond chaque angle de notre vecteur. 
En outre, pour rappel la somme des carrés des amplitudes est égale à 1. Ainsi nous pouvons retrouver la valeur des qubits non ciblés grâce à ce calcul.
Pour rappel, tout ceci est modulo pi ainsi lorsque l'angle dépassera pi sur deux alors il aura une tendance entropique au désordre pour revenir à la normal quand l'angle sera croissant entre 0 et pi sur deux modulo pi.

Tester le simulateur