Test de primalité AKS

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le test de primalité AKS (aussi connu comme le test de primalité Agrawal-Kayal-Saxena et le test cyclotomique AKS) est un algorithme de preuve de primalité déterministe découvert et publié le par trois scientifiques indiens nommés Manindra Agrawal, Neeraj Kayal (en) et Nitin Saxena (en) dans un article scientifique intitulé « PRIMES is in P »[1]. Cet article leur a valu le prestigieux prix Gödel 2006[2].

L'algorithme[modifier | modifier le code]

Principe[modifier | modifier le code]

L'algorithme détermine si un nombre est premier ou composé (au sens de la factorisation).

L'algorithme repose sur la généralisation suivante du petit théorème de Fermat : pour tout entier n ≥ 2 et tout entier a premier avec n,

n est un nombre premier si et seulement si (X+a)^n\equiv X^n+a\mod n,

qui résulte d'une propriété des coefficients binomiaux :

n est un nombre premier si et seulement si \forall k\in\{1,\ldots,n-1\}, {n\choose k}\equiv0\mod n.

Complexité[modifier | modifier le code]

La complexité temporelle originale est en O((log n)12).

Comparaison avec les autres tests de primalité[modifier | modifier le code]

L'algorithme AKS n'est pas le premier test de primalité général s'exécutant en un temps polynomial. Il possède cependant une différence clé par rapport à tous les algorithmes généraux de preuve de primalité précédents : il ne repose pas sur une hypothèse non démontrée (telle que l'hypothèse de Riemann) pour être vrai et pour avoir un temps polynomial démontrable pour toutes ses entrées. De plus c'est un algorithme déterministe : il permet de déterminer de façon certaine si un nombre est premier (tout comme le crible d'Ératosthène) par opposition aux tests probabilistes, qui permettent seulement de déterminer si un nombre est un nombre premier probable et qui comportent de fait une certaine probabilité d'erreur sur la réponse donnée lorsque celle-ci est affirmative.

Variantes[modifier | modifier le code]

Quelques mois après la découverte, de nombreuses variantes sont apparues : Lenstra 2002, Pomerance 2002, Berrizbeitia 2003, Cheng 2003, Bernstein 2003a/b, Lenstra et Pomerance 2003. Elles ont amélioré la vitesse d'exécution de l'algorithme AKS à différentes ampleurs. Ces multiples variantes de l'algorithme sont référencées sous la notion de « classe AKS », introduite par Crandall et Papadopoulos en 2003[3].

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « AKS primality test » (voir la liste des auteurs)

  1. PRIMES is in P [PDF] : article original, cité notamment par un de ses auteurs sur sa page.
  2. Page du prix Gödel 2006
  3. (en) On the implementation of AKS-class primality tests [PDF] : R. Crandall et J. Papadopoulos, 18 mars 2003