L`algorithme AKS ou Les nombres premiers sont de classe P

L’algorithme AKS
ou
Les nombres premiers sont de classe P
Julien Élie
« Le plus beau résultat mathématique des dix dernières années. »
Shafi Goldwasser
En août 2002, le professeur Agrawal et deux de ses élèves, Kayal et Saxena, résolvent une
ancienne conjecture en théorie de la complexité : le test en temps polynomial de la primarité d’un
nombre donné.
Dans cet exposé, je m’intéresse à la seconde version parue en mars 2003 de l’algorithme AKS et
me propose de démontrer intégralement sa validité. La démonstration est entièrement accessible et
ne repose sur aucune hypothèse.
« Le problème où l’on se propose de distinguer les nombres premiers des nombres composés, et
de résoudre ceux-ci en leurs facteurs premiers, est connu comme l’un des plus importants et des plus
utiles de toute l’Arithmétique ; il a sollicité l’industrie et la sagacité des géomètres tant anciens que
modernes, à un point tel qu’il serait superflu de discuter en détail à cet égard. [. . . ]
« De surcroît, la dignité de la science même semble demander que tous les secours possibles soient
explorés avec soin pour parvenir à la solution d’un problème si élégant et si célèbre. »
Johann Carl Friedrich Ga,Disquisitiones Arithmeticæ, 329.
D’après un TIPE rédigé en 2003 avec AMS-L
A
T
EX 2εsous la direction de MM. Serge Francinou et Philippe
Espéret, professeurs de mathématiques au Lycée Henri-IV de Paris.
TrigoFACILE — http://www.trigofacile.com/ 1
Table des matières
1 Introduction 3
1.1 Intérêtdelalgorithme ................................... 3
1.2 Un algorithme déterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Un algorithme en temps polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Un algorithme inconditionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Idée et description de l’algorithme 5
2.1 Identitéremarquable .................................... 5
2.2 L’algorithme AKS ..................................... 7
3 Validité de l’algorithme 7
3.1 Notations .......................................... 7
3.2 Résultatsliminaires..................................... 7
3.2.1 Un peu de dénombrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2.2 Théorème d’Euler ................................. 8
3.2.3 Introspection .................................... 9
3.3 Résultatspréliminaires................................... 9
3.3.1 Minorationduppcm ................................ 9
3.3.2 Polynômes cyclotomiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4 Démonstration de la validité de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . 12
3.4.1 Premierpas..................................... 12
3.4.2 Encadrement de r.................................. 12
3.4.3 Application de l’introspection . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.4 Encadrement du cardinal de H.......................... 13
3.4.5 Théorème fondamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Complexité de l’algorithme 15
4.1 Complexité dans sa forme actuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2 Complexité dans une forme améliorée . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2.1 Conjecture d’Artin ................................ 16
4.2.2 Conjecture de la densité des nombres premiers de Sophie Germain ...... 17
4.2.3 Amélioration de l’identité remarquable . . . . . . . . . . . . . . . . . . . . . . 17
5 Implémentation de l’algorithme 18
5.1 Version en Maple ..................................... 18
5.2 Limites d’une telle implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3 Autres implémentations de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6 Conclusion 19
6.1 Applications de l’algorithme AKS ............................. 19
6.2 P∈ P ............................................ 19
Références bibliographiques 20
Remarques 20
Première version de l’algorithme AKS ............................. 20
À propos des citations en page de garde . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
TrigoFACILE — http://www.trigofacile.com/ 2
1 Introduction
1.1 Intérêt de l’algorithme
Les nombres premiers jouent un rôle fondamental en mathématiques et possèdent moult applica-
tions très utiles de nos jours, notamment dans le domaine de la cryptographie. Il est donc intéressant
d’établir des tests pratiques et fiables de primarité.
Depuis l’invention de la théorie de la complexité dans les années 1960, le problème que nous
noterons P, qui est de savoir si un nombre donné nest premier, passionne les chercheurs.
Le tableau ci-dessous dresse la liste chronologique des algorithmes majeurs qui ont été trouvés
afin de déterminer la primarité d’un nombre.
Algorithme : Année : D.a: P.b: I.c: Principe :
Crible ≈ −240 X7XDivision de npar
d’Ératosthène tous les nombres (premiers) 6n
Miller 1975 X X 7Recherche de témoins
Rabin 1976 7X X de non-primaritéd
Solovay 1977 7X X Résidus quadratiquese: test de
et Strassen X X 7an1
2= ( a
n) [n]pour plusieurs aN
Adleman,1983 X7XTest de primaritéf(d’après Miller)
Pomerance et Rumely à base de réciprocité quadratique
Goldwasser et Kilian 1986 77XCourbes elliptiques
Atkin X7
Adleman et Huang 1992 7X X Courbes hyperelliptiques
Agrawal,Kayal 2002 X X X Polynômes cyclotomiques sur des
et Saxena corps finis — en Ω(log(n)10.5)
Tab. 1 – Principaux algorithmes de primarité.
aDéterministe.
bPolynomial.
cInconditionnel : l’hypothèse de Riemann généralisée est utilisée pour les algorithmes ne satisfaisant pas ce critère.
dSi n1 = 2stavec timpair et s’il existe 1< a < n tel que at6≡ 1 [n]et (a2it6≡ −1 [n]
06i6s1alors nest composé.
L’algorithme est en O(log(n)2).
e(a
p) = (1si acarré dans Z
/
pZ
1sinon est le symbole de Jacobi.
fComplexité quasi polynomiale en O(log(n)O(log(log(log(n))))).
Bien que des progrès aient été réalisés au fil des années, seul le dernier algorithme vérifie en même
temps les trois critères présentés et qui sont détaillés infra.
Tout entier ncomposé possède une preuve très courte de non-primarité, à savoir un diviseur non
trivial. Alors qu’il est très difficile d’exhiber les facteurs premiers des grands nombres, il est assez
aisé de vérifier qu’un certain nombre en est bien un facteur premier : on dit alors que Pco-NP
NP désigne la classe des problèmes qui peuvent être résolus en temps polynomial par un algorithme
non déterministe (il suffit en effet de simplement effectuer la division avec le facteur magiquement
exhibé), le préfixe « co » signifiant que c’est le problème complémentaire de composition des nombres
qui est considéré. De plus, pour peu que l’on connaisse la décomposition en facteurs premiers de n1,
un critère de Lehmer énonce que si, pour un entier a,an11 [n]et an1
q6≡ 1 [n]pour tout diviseur
premier qde n1, alors nest premier, ce qui montre que P∈ NP.
TrigoFACILE — http://www.trigofacile.com/ 3
Or, les mathématiciens souhaiteraient aller plus loin et prouver que P∈ P, où Pdésigne la classe
des problèmes décisionnels, c’est-à-dire auxquels l’on peut répondre par « oui » ou par « non », qui
peuvent être résolus par un algorithme déterministe en temps polynomial quel que soit l’argument n
du problème.
L’algorithme AKS est la preuve cherchée, ce qui établit le résultat fondamental :
P∈ P.
Et c’est ce problème de longue date qui vient d’être résolu en août 2002 par le professeur Manindra
Agrawal et deux de ses élèves, Neeraj Kayal et Nitin Saxena, qui viennent d’obtenir leur licence
dans le Département d’Informatique de l’Institut Indien de Technologie à Kanpur. Une seconde
version améliorée de cet algorithme « brillant, élégant et simple » a ensuite été présentée en mars
2003. Cette nouvelle version est plus élégante et ne requiert pas de résultats pointus d’algèbre afin
d’être démontrée dans son intégralité.
Par ailleurs, un intérêt non négligeable de l’algorithme AKS est qu’il ne nécessite que quelques
outils assez simples d’algèbre afin d’être démontré, ce qui est loin d’être le cas pour les autres algo-
rithmes de primarité qui font appel à des résultats très pointus en théorie des nombres.
L’importance du résultat présenté dans cet exposé est que l’algorithme AKS garantit l’obten-
tion en un temps polynomial d’une réponse catégorique sur la primarité d’un nombre. De fait, cet
algorithme se démarque de tous les autres puisqu’il réunit les trois critères fondamentaux que nous
allons maintenant préciser plus en détail.
1.2 Un algorithme déterministe
L’algorithme AKS est déterministe, en ce sens qu’il détermine toujours pas un « oui » ou par un
« non » définitif et sans erreur possible la primarité de l’entier donné. Mais il est plus facile de définir
ce qu’est un algorithme déterministe par la négation de la nature d’un algorithme probabiliste.
Celui-ci peut faire partie de deux types :
les tests de composition qui permettent de déterminer de manière sûre si un nombre est
composé, sans pourtant nécessairement en fournir une décomposition explicite ;
les tests de primarité, nettement moins rapides, qui permettent de déterminer de manière
sûre si un nombre est premier.
Lorsque le test ne retourne pas une réponse catégorique, la probabilité de primarité ou de non-
primarité du nombre est d’autant plus élevée que l’algorithme effectue d’itérations. Par exemple,
pour le test de Solovay-Strassen, il est démontré qu’il existe un entier apremier avec nsur deux
qui ne vérifie pas le test ; aussi, en réitérant kfois l’algorithme avec des entiers adifférents choisis au
hasard, la probabilité d’erreur sur la primarité de nest-elle de l’ordre de 1
/
2k, s’il satisfait à chacun
de ces tests, que l’on admettra indépendants. Ainsi, pour 50 itérations de ce test, le risque d’erreur
est inférieur à 1015.
En pratique, les tests probabilistes de primarité actuels ont une probabilité d’erreur inférieure,
dit-on, à la probabilité que le système informatique qui réalise le test commette une erreur tandis que
dans la même minute son utilisateur remporte la cagnotte à la loterie et meure foudro ! Nonobstant,
l’erreur est toujours en théorie possible, si bien que les mathématiciens essaient depuis de nombreuses
années de la supprimer.
En outre, les algorithmes probabilistes utilisent des séquences de tests aléatoires à chaque utili-
sation, de telle sorte que des réponses différentes peuvent survenir lors du test du même nombre, ou
l’algorithme peut tout simplement ne pas aboutir. Au contraire, un algorithme déterministe produira
toujours la même séquence d’opérations pour le même argument fourni.
TrigoFACILE — http://www.trigofacile.com/ 4
1.3 Un algorithme en temps polynomial
L’algorithme AKS donne une réponse en temps polynomial, en ce sens qu’il existe un polynôme
Ptel que, pour tout entier n, l’algorithme exécute au plus P(log(n)) opérations élémentaires pour
fournir le résultat, lorsque la donnée initiale est le nombre n. On convient que si n= 0,P0. La
complexité temporelle de l’algorithme est donc une fonction polynomiale en le nombre de chiffres
nécessaires à représenter n, que ce soit log10(n)en base décimale ou log2(n)en base binaire.
À l’ère des micro-ordinateurs, de tels algorithmes sont considérés comme implémentables, à la
différence des algorithmes en temps exponentiel inutilisables en pratique, puisque le temps de calcul
devient rapidement trop important lorsque le nombre à tester devient grand.
Bien qu’il soit facile de prouver la complexité temporelle de l’algorithme AKS en Ω(log(n)10.5), il
est aussi possible de trouver une meilleure complexité en Ω(log(n)7.5)grâce à des résultats de théorie
des nombres.
Toutefois, cela reste encore assez lent étant donné que l’on estime que les algorithmes réellement
utilisables doivent être au plus en Ω(log(n)3).
Cela n’a cependant aucune incidence sur le résultat théorique P∈ P.
1.4 Un algorithme inconditionnel
L’algorithme AKS ne repose sur aucune hypothèse : sa validité, tout comme sa complexité
temporelle polynomiale, sont entièrement prouvées et ne font pas appel à des conjectures de théorie
des nombres, à la différence de la majorité des autres tests de primarité. Notons toutefois que si
l’hypothèse de Riemann généralisée1était démontrée, on aurait déjà prouvé avec l’algorithme de
Miller-Rabin en temps O(log(n)2)que P∈ P, mais le fait est que cette conjecture n’a toujours
pas été prouvée.
2 Idée et description de l’algorithme
2.1 Identité remarquable
Le test de primarité AKS est fondé sur l’identité suivante, valable pour les nombres premiers, et
qui est une généralisation du petit théorème de Fermat.
Proposition 2.1. Soient aZet nN,n>2, tels que an= 1.
nest premier si, et seulement si, (X+a)nXn+a[n].
Démonstration : Supposons npremier.
Pour tout iJ1, n 1K,i Ci
n=n Ci1
n1donc ndivise i Ci
n.
Comme nest premier avec i,ndivise Ci
nen vertu du théorème de Ga. Or, le coefficient de Xi
dans le polynôme (X+a)nétant Ci
nani, il se retrouve divisible par n, si bien que (X+a)nXn+a[n].
Réciproquement, supposons que l’on ait (X+a)nXn+a[n].
Soit dune partie aliquote de n, autrement dit un diviseur strict de n:16d<n. On a :
Cd
n=n
dCd1
n10 [n]d’après l’identité puisque aest premier avec n.
Regardons les résidus des Ci
n1modulo n.
Pour i= 1,C1
n1=n1≡ −1 [n]. Or, d’après la formule de Pascal,Ci
n1+Ci+1
n1=Ci+1
n,
donc Ci+1
n1≡ −Ci
n1[n]. Il s’ensuit par une récurrence immédiate que Ci
n1(1)i[n]pour tout
16i6n1, et n
dCd1
n1n
d(1)d10 [n], ce qui n’est possible que si d= 1.
Donc nest premier.
1Cette conjecture sera énoncée au paragraphe 4.2.1.
TrigoFACILE — http://www.trigofacile.com/ 5
1 / 20 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !