Test de primalité AKS
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 et généraliste (fonctionne pour tous les nombres) publié le par trois scientifiques indiens nommés Manindra Agrawal, Neeraj Kayal et Nitin Saxena (A.K.S). Ce test est le premier en mesure de déterminer la primalité d'un nombre dans un temps polynomial. Ce test a été publié dans un article scientifique intitulé « PRIMES is in P »[1] - [2]. Cet article leur a valu le prestigieux prix Gödel 2006[3].
L'algorithme
Principe
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,
qui résulte d'une propriété des coefficients binomiaux :
L'objet d'AKS est d'exploiter efficacement cette propriété.
Fonctionnement
L'algorithme est globalement le suivant[4]:
procédure AKS(): Si avec et alors renvoyer non-premier (étape 1) Construire le plus petit entier tel que l'ordre de modulo soit supérieur à (étape 2) Si pgcd() != 1 et pgcd()!= n pour un certain alors renvoyer non-premier (étape 3) Si alors renvoyer premier (étape 4) Pour compris entre 1 et faire[note 1]: Si alors renvoyer non-premier (étape 5) Renvoyer premier (étape 6)
Preuve
On cherche à démontrer que l'algorithme renvoie premier si, et seulement si son argument est un nombre premier. La preuve repose sur des résultats sur les corps finis et de diverses inégalités dont la plupart sont démontrées par récurrence.
On note tout au long de la démonstration l'ordre (théorie des groupes) de dans le groupe des inversibles de l'anneau et l'Indicatrice d'Euler.
On suppose tout d'abord que est premier, l'algorithme peut renvoyer une valeur (premier ou non-premier) à cinq différentes étapes:
- Il est clair que l'algorithme ne peut pas renvoyer non-premier aux Ă©tapes 1 et 3.
- D'aprÚs le ThéorÚme de Lagrange sur les groupes, l'ordre de tout élément divise l'ordre du groupe. Ainsi, par définition de , . L'étape 3 nous assure alors que tous les considérés sont premiers avec . DÚs lors, de la relation donnée par la généralisation du petit théorÚme de Fermat, nous pouvons en déduire que l'algorithme ne peut pas renvoyer non-premier à l'étape 5.
RĂ©ciproquement, on suppose que l'algorithme renvoie premier. Si l'algorithme a renvoyĂ© premier Ă l'Ă©tape 4, alors est premier avec tous les entiers strictement infĂ©rieurs Ă lui-mĂȘme ce qui assure la primalitĂ© de .
Reste à démontrer que si l'algorithme renvoie premier à l'étape 6, alors est bien premier.
Complexité
La complexité temporelle originale est en , désignant le nombre testé. Il existe plusieurs variantes et raffinements de l'algorithme qui en affectent la complexité. La version décrite dans la section précédente a une complexité , c'est-à -dire une complexité polynomiale en la taille de l'entrée[4] - [note 2]. La complexité d'AKS est aussi affectée par le statut de diverses conjectures.
Implications de diverses conjectures
- Si la conjecture d'Artin sur les racines primitives est vraie, alors l'algorithme AKS a une complexité de l'ordre de [4];
- Si la conjecture d'Agrawal (en) est vraie, alors la complexité d'AKS est de l'ordre de [4].
Comparaison avec les autres tests de primalité
L'algorithme AKS n'est pas le premier test de primalitĂ© gĂ©nĂ©ral s'exĂ©cutant en un temps polynomial en le nombre de chiffres du nombre Ă tester[note 2]. 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
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[5].
Voir aussi
Articles connexes
- Crible d'ĂratosthĂšne : Test de primalitĂ© du IIIe siĂšcle av. J.-C.
- Test de primalité de Fermat : Test probabiliste simple.
- Test de primalité de Solovay-Strassen : Test probabiliste inconditionnel.
- Test de primalité de Miller-Rabin : Test probabiliste inconditionnel, basé sur le test déterministe de G.L. Miller supposant l'hypothÚse de Riemann généralisée.
- Test de primalité de Lucas-Lehmer : Non généraliste, il permet de tester la primalité de nombres particuliers.
- Conjecture d'Agrawal (en)
Liens externes
- TrigoFacile.com : Présentation et démonstration complÚte et détaillée de l'algorithme. [PDF]
- (en) Eric W. Weisstein, « AKS Primality Test », sur MathWorld
- (en) PRIMES Is in P: A Breakthrough for âEverymanâ : Article de Folkmar Bornemann dans les Notices of the American Mathematical Society, sur la dĂ©couverte publiĂ©e par les trois scientifiques indiens. [PDF]
Notes et références
Notes
- La lettre désigne la fonction indicatrice d'Euler.
- Le nombre de chiffres d'un nombre est de l'ordre de .
Références
- PRIMES is in P [PDF] : article original, cité notamment par un de ses auteurs sur sa page.
- L'article « dĂ©finitif », revu par les pairs, est paru en 2004 : Manindra Agrawal, Neeraj Kayal et Nitin Saxena, « PRIMES is in P », Annals of Mathematics. Second Series, vol. 160, no 2,â , p. 781-793 (DOI 10.4007/annals.2004.160.781, MR MR2123939, zbMATH 02157791, lire en ligne)
- Page du prix Gödel 2006
- Pascal Boyer, Petit compagnon des nombres et de leurs applications, Paris, Calvage et Mounet, , 648 p. (ISBN 978-2-916352-75-6), II. Nombres premiers, chap. 3.4. (« AKS »), p. 212-213.
- (en) On the implementation of AKS-class primality tests [PDF] : R. Crandall et J. Papadopoulos, 18 mars 2003