Université de Bordeaux Préparation à l’agrégation
Mathématiques Année 2013–2014
Algorithme d’Euclide
1. Rappels
Soit Aun anneau euclidien. C’est donc que Aest commutatif unitaire, intègre, et
qu’il existe une application ϕ:ANappelée stathme euclidien, telle que
(1) ϕ(a) = 0 si et seulement si a= 0
(2) Si aet bsont des éléments de A, avec b6= 0, il existe des éléments ret qde
Atels que a=bq +ret ϕ(r)< ϕ(b). Les éléments ret qsont respectivement
appelés reste et quotient de la division de apar b; on n’impose pas qu’ils soient
uniques.
Par exemple, si A=Z, on peut prendre ϕ(n) = |n|. Ici, il n’y a pas unicité de
l’écriture a=bq +r, où ϕ(r)< ϕ(b); on impose traditionnellement 06r < b ce qui
garantit l’unicité, mais c’est un choix arbitraire : on pourait tout aussi bien imposer
b/2< r 6b/2par exemple. Si A=K[X], où Kest un corps, on peut choisir
ϕ(P) = deg P+ 1 si P6= 0 et ϕ(0) = 0. Enfin, pour A=Z[i], on peut prendre comme
stathme ϕ(a+ib) = a2+b2.
Tout anneau euclidien est principal, et tout anneau principal est factoriel (tout élé-
ment non nul se décompose en produit fini d’irréductibles et cette décomposition est
unique, à multiplication des facteurs par des inversibles près). Si Aest un anneau prin-
cipal, soient aet bdeux éléments de Atels que (a, b)6= (0,0), il existe ddans Atel
que
(1) d|aet d|b
(2) Si e|aet e|b, alors e|d.
Cet élément d, unique à multiplication près par un élément inversible de A, est appelé
le pgcd de aet b, et noté pgcd(a, b), ou parfois (a, b)si le contexte ne permet pas
d’ambiguïté avec l’élément (a, b)de A2. On a alors aA +bA =dA. En particulier, il
existe uet vdans Atels que au+bv =d(identité de Bézout). Ceci donne une définition
légèrement plus générale : on appelle pgcd de (a, b)tout générateur de l’idéal aA+bA de
Aengendré par aet b; cette définition est équivalente à la précédente quand (a, b)6= 0
et définit pgcd(0,0) = 0.
Une dernière définition, encore plus générale puisqu’elle est valable si l’anneau Aest
factoriel. Si Aest factoriel, aA\{0}, et pirréductible dans A, on définit vp(a)la plus
grande puissance de pqui divise a: si v=vp(a), on a pv|amais pv+1 a. On définit
pgcd(0, b) = bpuis, pour tout bAet pour a, b tous deux non nuls, on pose
pgcd(a, b) = Y
p
pmin(vp(a),vp(b))
1
2
pparcourt un système de représentants des éléments irréductibles de Amodulo les
unités. Cette définition généralise les deux précédentes et permet de calculer le pgcd d
quand la factorisation dans Aest effective.
Si Aest de plus euclidien, l’algorithme d’Euclide permet aussi ce calcul, en général à
bien moindre coût que celui d’une factorisation. L’algorithme d’Euclide étendu calcule,
en même temps que d, des éléments uet vsatisfaisant l’identité de Bézout.
Rappelons finalement que dans un anneau principal A, si aet bsont deux éléments
de A, il existe un élément cdans A, unique à multiplication près par un inversible de
A, tel que
(1) a|cet b|c
(2) Si a|eet b|e, alors c|e.
C’est le ppcm de aet b, noté ppcm(a, b), ou encore [a, b]. On a
aA +bA = (a, b)A, aA bA = [a, b]Aet abA = (a, b)[a, b]A.
2. Algorithme d’Euclide
Algorithme 2.1 (Algorithme d’Euclide)
Entrée :a,bdans A
Sortie :pgcd(a, b)
(1) Si b= 0, retourner a.
(2) Soit rle reste de de la division euclidienne de apar b. Poser ab,bret
revenir à l’étape (1).
Preuve. Le cas (a, b) = (0,0) est clair puisque l’algorithme retourne directement 0à
l’étape (1). Le cas général vient du fait que (a, b) = (a+bk, b)pour tout kA
(exercice). L’algorithme se termine car la valeur de ϕ(b)décroit strictement tant que
b6= 0. Comme ϕprend ses valeur dans N, on finit par arriver à ϕ(b) = 0, donc b= 0.
3. Algorithme d’Euclide étendu
Algorithme 3.1 (Algorithme d’Euclide étendu)
Entrée :aet bdans A,(a, b)6= (0,0).
Sortie : Le pgcd dde aet b, et un couple (u, v)de A2tel que au +bv =d.
(1) Si a= 0, sortir d=b,u= 0,v= 1.
(2) xa,yb,vx0,vy1,ux1,uy0.
(3) Tant que y6= 0
(4) Calculer le quotient qet le reste rde la division euclidienne de xpar y.
(5) (ux, uy)(uy, uxquy).
(6) (vx, vy)(vy, vxqvy).
(7) (x, y)(y, r).
(8) Sortir d=x,u=ux,v=vx.
3
Preuve. Comme dans l’algorithme précédent, l’algorithme se termine, et l’on calcule
bien dun pgcd de aet b.
On pose x0=a,v0= 0,u0= 1,x1=b,v1= 1 et u1= 0. Pour i>1, on écrit la
division euclidienne xi1=qixi+xi+1, où ϕ(xi+1)< ϕ(xi), et on pose vi+1 =vi1qivi
et ui+1 =ui1qiui. C’est donc que
uivi
ui+1 vi+1=0 1
1qiui1vi1
uivi.
Donc si
uivi
ui+1 vi+1a
b=xi1
xi,
ce qui est vrai pour i= 1, alors
uivi
ui+1 vi+1a
b=0 1
1qixi1
xi=xi
xi+1.
Soit ll’entier tel que xl+1 = 0. On a bien alors ula+vlb=xl=d.
4. Complexité dans K[X]
Soit Kun corps. Alors K[X]est un anneau euclidien. On veut majorer le nombre
d’opérations dans Knécessaire à l’exécution des algorithmes d’Euclide en fonction du
degré des polynômes concernés. On garde les notations du paragraphe précédent.
4.1. Algorithme d’Euclide. Soient aet bdeux polynômes de K[x], de degrés respec-
tifs net m. On suppose que m6n. Le nombre d’itérations lest borné par ϕ(b), donc
ici m+ 1.
Pour tout i, on note ni= deg xi. On peut diviser le polynôme xi1par xien utilisant
au plus (2ni+ 1)(ni1ni+ 1) additions et multiplications, et une inversion dans K.
Donc le coût total est inférieur à
C=
l
X
i=1
(2ni+ 1)(ni1ni+ 1)
additions et multiplications, plus linversions dans K. On voit alors que
C6(2m+ 1)
l
X
i=1
(ni1ni+ 1) 6(2m+ 1)(l+nnl)6(2m+ 1)(n+m+ 1).
On a donc prouvé le résultat suivant.
Théorème 4.1. Soit N>1. On peut exécuter l’algorithme d’Euclide pour deux poly-
nômes de degré inférieur ou égal à Nen O(N2)opérations sur le corps de base.
On peut donner une majoration plus précise de C. Pour cela, on évalue Cdans le cas
où le degré décroît exactement de 1à chaque pas, et on montre ensuite que c’est le cas
le pire.
4
Dans ce cas, l=m+ 1,n0=n,n1=met pour idans {2...,m+ 1},ni=mi+ 1.
On trouve alors que
C= (2m+ 1)(nm+ 1) + 2
m+1
X
i=2 2(mi+ 1) + 1
= 2mn +n+m+ 1.
Pour montrer que c’est le cas le pire, on pose, pour n0>n1> n2>···> nl>0,
σ(n0,...,nl) =
l
X
i=1
(2ni+ 1)(ni1ni+ 1).
Montrons que σcroît, si l’on insère un entier kentre nj1et un nj, ou bien si l’on
ajoute kaprès nl. Soit donc kun entier tel que nj1> k > nj.
σ(n0, . . . , nj1, k, nj,...,nl)σ(n0,...,nl)
= (2k+ 1)(nj1k+ 1) + (2nj+ 1)(knj+ 1) (2nj+ 1)(nj1nj+ 1)
= (2k+ 1)(nj1k+ 1) + (2nj+ 1)(knj1)
= 2(nj1k)(knj) + 2k+ 1 >0
On montrerait le méme résultat, en ajoutant un entier kaprès nl. On en déduit par
récurrence que σ(n0,...,nl)6σ(n0, n1, n11, n12,...,1), et donc que le cas où le
degré baisse de 1à chaque pas est le cas le pire.
Théorème 4.2. L’algorithme d’Euclide, appliqué à des polynômes aet bde degrés
respectifs net m(n>m), utilise au plus 2mn +m+n+ 1 additions et multiplications,
plus m+ 1 inversions dans K.
4.2. Algorithme d’Euclide étendu. Pour évaluer la complexité de l’algorithme d’Eu-
clide étendu, il nous faut majorer le degré des polynômes uiet vi.
Proposition 4.3. On a
deg vi=X
16j<i
deg qj=n0ni1, i ∈ {1,...,l+ 1},
deg ui=X
26j<i
deg qj=n1ni1, i ∈ {2,...,l+ 1}.
Preuve. Par récurrence. On a v0= 0,v1= 1,v2=v0q1v1=q1. Ainsi, deg v2=
deg q1=nm=n0n1. Soit i>1. On suppose que pour tout j∈ {1,...,i}, on a
deg vj=Pj1
k=1 deg qk. Ainsi, deg vj1<deg vj. On en déduit que
deg vi+1 = deg(vi1qivi) = deg qi+ deg vi=X
16k6i
deg qi.
L’égalité pour le degré de uise prouve de la même façon.
5
Le calcul de vi+1 =vi1qividemande au plus 2 deg qideg vi+ deg qi+ deg vi+ 1
opérations dans Kpour le produit et au plus deg vi+1+1 opérations pour la soustraction,
c’est-à-dire en tout 2(ni1ni)(n0ni1+n0ni+ 1), sauf pour i= 1 : le calcul
de v2=q1demande nm+ 1 changements de signe. On obtient que le nombre
d’opérations dans Kpour calculer les viest majoré par
Cv=nm+ 1 + 2
l
X
i=2
((ni1ni)(n0ni1) + n0ni+ 1)
6nm+ 1 + 2n
l
X
i=2
(ni1ni) + 2(l1)(n+ 1)
6nm+ 1 + 2n(n1nl) + 2(l1)(n+ 1)
6nm+ 1 + 2mn + 2m(n+ 1)
64mn +n+m+ 1.
On montrerait de même que le nombre d’opérations dans Knécessaires au calcul des
uiest inférieur ou égal à 4m2+m.
On peut améliorer ces majorations, en calculant le nombre d’opérations nécessaires
au calcul des uiet des vidans le cas où le degré du reste baisse de 1à chaque étape,
puis en montrant que c’est le cas le pire. On obtient alors
Cv=nm+ 1 + 2
m+1
X
i=2
((n(mi+ 2)) + n(mi+ 1) + 1))
= 4mn 2m2+n+m+ 1
Cu= 2 + 2
m+1
X
i=3
((m(mi+ 2)) + m(mi+ 1) + 1)
= 2(m2+m).
On peut aussi noter que l’algorithme d’Euclide étendu calcule inutilement la suite
des vi: on peut entièrement supprimer ces calculs, sans affecter le calcul de uet d. Si
b6= 0, on peut alors poser v= (dau)/b.
Théorème 4.4. L’algorithme d’Euclide étendu, appliqué à des polynômes aet bde
degrés respectifs net m(n>m), utilise 6mn +O(n)additions et multiplications, plus
m+ 1 inversions dans K.
5. Complexité dans Z
5.1. Algorithme d’Euclide. On applique l’algorithme d’Euclide à deux entiers aet b
positifs. Le nombre d’itérations est inférieur ou égal à b, mais on peut trouver une bien
meilleure majoration :
Théorème 5.1. Soit nun entier naturel non nul, et soient aet bdeux entiers tels
que a > b et tels que l’algorithme d’Euclide appliqué à aet bcessite exactement n
1 / 7 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 !