Professional Documents
Culture Documents
Algorithmique et programmation.
Cours avanc
Jacques Stern
Anne 20102011
1.1
1.2
Algorithmes approchs . . . . . . . . . . . . . . . . . . . . . .
Analyse amortie . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
7
2 Tri et hachage
11
Le tri de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Tris de Shell deux passes . . . . . . . . . . . . . . . . . . . . 12
Tris plus de deux passes . . . . . . . . . . . . . . . . . . . . 18
Tri de Shell
2.1
2.2
2.3
3 Recherche de motifs
21
Extraction et alignements pour deux suites . . . . . . . . . . . 21
Alignement de plusieurs suites . . . . . . . . . . . . . . . . . . 25
3.1
3.2
4 Arbres
29
Arbres binomiaux et tas binomiaux . . . . . . . . . . . . . . . 29
Tas de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1
4.2
5 Graphes
36
Graphes dexpansion et valeurs propres . . . . . . . . . . . . . 36
Applications algorithmiques . . . . . . . . . . . . . . . . . . . 38
Graphes dexpansion
5.1
5.2
6 Flots
42
Flots bloquants . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Graphes unitaires et applications . . . . . . . . . . . . . . . . 47
6.1
6.2
7 Entiers
51
Symboles de Legendre et de Jacobi . . . . . . . . . . . . . . . 51
Tests de primalit . . . . . . . . . . . . . . . . . . . . . . . . . 56
Dcomposition dun entier en somme des quatre carrs . . . . 58
7.1
7.2
7.3
8.1
8.2
9.1
9.2
10 Programmation linaire
Algorithme de Khachyan
10.1 Ellipsodes . . . . . . . . . . . . . . . .
10.2 Lalgorithme de Khachyan . . . . . . .
10.3 Conclusion : algorithme de complexit
programmation linaire . . . . . . . . .
80
. . . . . . . . . . . . . 80
. . . . . . . . . . . . . 81
polynomiale pour la
. . . . . . . . . . . . . 84
Cours 1
(5 octobre)
Algorithmes : conception et
valuation
Algorithmes approchs et analyse amortie
1.1
1.1.1
Algorithmes approchs
Prsentation
Le but de cette partie est de prsenter des exemples dalgorithmes permettant de rsoudre de manire approche un problme doptimisation dont
le problme de dcision associ est connu comme NP-complet. Le problme
choisi est le bin packing (en franais problme de placement ou empaquetage). Lintrt du problme est double. Dune part, il existe des algorithmes
pratiques et efficaces avec une garantie de performance, ce qui veut dire que la
solution trouve par lalgorithme est dans un rapport constant de loptimum.
Dautre part, il existe des algorithmes (thoriques) donnant ce rapport une
valeur aussi proche que possible de 1. En dautres termes, mme si le problme est NP-complet, on peut sapprocher autant quon veut de loptimum
par un algorithme polynomial. Toutefois, le degr du polynme qui mesure
la complexit augmente avec la prcision choisie.
Le problme du bin packing snonce de la manire suivante : tant
donns un entier n et un ensemble U = (u1 , , un ) de n objets, auxquels
est associe une taille s(ui ) [0, 1], trouver une partition de U en k sousensemble X de U , k tant choisi minimum et chaque ensemble X de la
partition tel que
X
s(ui ) 1
iX
1.1.2
Algorithmes pratiques
il vient
n
X
i=1
s(ui )
XX
j
s(ui ) k = OP T (I).
iXj
En sommant, il vient :
n
X
i=1
s(ui )
XX
s(ui ) (k 1) 1/2 =
j6=j0 iXj
P
Finalement, la somme ni=1 s(ui ) est minore par
quon la vu plus haut, par OP T (I). Il vient
F F (I) 1
.
2
F F (I)1
2
et majore, ainsi
F F (I) 1
OP T (I),
2
et donc
F F (I) 2.OP T (I) + 1.
On peut en fait dmontrer par une combinatoire un peu plus fine que
F F (I) 17/10.OP T (I) + 2 (voir [2]). En effectuant, pralablement lexcution de lalgorithme FF, un tri rangeant les objets par taille dcroissante, on
amliore la garantie de performance qui devient F F D(I) 11/9.OP T (I)+2.
1.1.3
Un algorithme thorique
ce qui donne
A (I)
OP T (I)
+ 1.
1
1
1
1.2
1.2.1
Analyse amortie
Prsentation
2. insertion non critique si num < size un objet est insr la premire
place disponible ; num est incrment dune unit ;
3. insertion critique si num = size un tableau de taille 2.size est cr ;
les objets de lancien tableau sont recopis ; un nouvel objet est insr
la premire place disponible ; num est incrment dune unit ;
4. suppression non critique si num size/4 lobjet en position num est
supprim ; num est dcrment dune unit ;
5. insertion critique si num = size/4 un tableau de taille size/2 est cr ;
les objets de lancien tableau sont recopis ; lobjet en position num est
supprim ; num est dcrment dune unit ;
Le rsultat quon se propose dtablir est le suivant :
Thorme 2 Le cot dune suite de m insertions et suppressions successives
partir dune initialisation est un O(m).
Preuve On introduit une fonction potentiel (T ) gale
(T ) = 2.num size, si num size/2
(T ) = size/2 num, si num size/2.
Lemme 3 Si ci est le cot de la i-me opration dinsertion ou de suppression et si i est la valeur du potentiel aprs cette i-me opration, on a :
1 ci (i i1 ) 3.
Avant dtablir le lemme, on observe que le thorme sen dduit facilement. En effet, en sommant les ingalits ci-dessus pour les diffrentes valeurs
de i, on obtient
m
X
m
ci m + 0 3m.
i=1
Comme m est major par la taille size du tableau T aprs les m oprations
et que cette taille ne peut dpasser la plus petite puissance de deux qui excde
m, et donc pas 2m, on a bien
m
X
ci = O(m).
i=1
Bibliographie
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[2] D. S. Johnson, A. Demers, J. D. Ullman, M. R. Garey, and R. L. Graham.
Worst-case performance bounds for simple one-dimensional packing algorithms. SIAM J. Comput., 3 :256278, 1974.
[3] M. R. Garey and D. S. Johnson. Computers and Intractability. Freeman,
1979.
[4] V. V. Vazirani. Approximation Algorithms, Springer (2001)
[5] W. de la Vega, G. Lueker. Bin packing can be solved within 1 + in
linear time. Combinatorica, 1(4) :349-355, 1981.
10
Cours 2
(12 octobre)
Tri et hachage
Tri de Shell
2.1
2.1.1
Le tri de Shell
Prsentation
Le tri de Shell est ainsi appel la suite du nom de lauteur de larticle [3]
o il a t introduit. Lide est simple : on se donne une suite dcroissante
dentiers appels incrments, soit ht , ht1 , , h1 , et on trie successivement,
pour i allant de t 1, un tableau donn en prenant les lments de hi en hi ,
cest dire en triant sparment les tableaux extraits dont les indices valent
1 modulo hi , 2 modulo hi , et ce jusqu hi modulo hi . Dun point de vue
heuristique, il apparat que les tris grossiers, raliss avec des incrments de
taille levs, rduisent la complexit des tris fins excuts ultrieurement
avec des incrments petits.
De manire surprenante, il nest pas simple de donner cette observation
heuristique un contenu mathmatique prcis, comme on va le voir dans la
suite. Lexpos qui suit sinspire largement de Knuth [4].
2.1.2
Le thorme de commutation
Le rsultat qui suit montre que la succession de tris fait sens dans la
mesure o un tri ne dtruit pas les progrs obtenus prcedemment. Soit k
un entier, on dit quun tableau est k-tri si les tableaux extraits en prenant
les lments de k en k sont tris. En notant le tableau A, cette dfinition
exprime quon a A[i] A[i + k], pour tous entiers i tels que i et i + k soient
des indices du tableau. Un k-tri est un algorithme qui retourne un tableau
k-tri.
11
uv+k
+ `)h],
h
soit y` xm+` , cette ingalit valant pour autant que les deux termes y` et
xm+` soient dfinis, soit pour ` au plus gal un entier r. On se trouve dans
les conditions du lemme. En posant ` = iu
, il vient :
h
A[i] = y[u + `h] xm+` = A[v + (
uv+k iu
+
)h] = A[i + k],
h
h
2.2
2.2.1
2.2.2
n
Il y a en tout
permutations 2-tries des entiers de 1 n. En
bn/2c
effet, pour dfinir compltement une permutation 2-trie il suffit de prciser
les bn/2c entiers qui sont en position paire.
Par ailleurs, une reprsentation graphique dune permutation 2-trie est
possible sous forme dune escalier construit partir du tableau A qui dfinit la permutation. Cet escalier est form de sommets Pk obtenus en examinant les entiers successifs k et en partageant lensemble {1, , k} en deux
sous-ensembles Oddk et Evenk respectivement forms des entiers j placs
en position impaire et paire dans le tableau A. Le sommet Pk est gal
(|Evenk |, |Oddk |), o |X| dsigne le nombre dlements de X. Lescalier est
form en partant de (0, 0) et en joignant les sommets correspondant des
k conscutifs. En se reportant aux transparents du cours - en page 13 - on
trouve une reprsentation de lescalier correspondant au tableau
2, 1, 3, 4, 6, 5, 7, 10, 8, 11, 9, 12, 14, 13, 15.
On constate que larte correspondant k va vers la gauche si k est en
position paire et vers le bas si k est en position impaire. Lescalier rgulier,
correspondant la permutation identit est en pointills. Il se trouve que
le nombre dinversions est gal la surface enserre entre lescalier rgulier
et lescalier correspondant la permutation. Pour le voir, on imagine quon
place successivement les entiers k dans le tableau A, soit en position paire
soit en position impaire. On observe que pour k impair, on a :
1. Si Even(k 1) = Odd(k 1), ladjonction dun k en position paire ou
impaire ne produit pas de nouvelle inversion avec les ` dj placs.
2. Si Even(k 1) > Odd(k 1), ladjonction dun k en position paire ne
produit pas de nouvelle inversion avec les ` dj placs, tandis que ladjonction dun k en position impaire produit un nombre de de nouvelles
inversions gal Even(k 1) Odd(k 1).
13
q
q
X
X
|i j|
i=0 j=0
i+j
i
2q i j 1
qj
,
et pour n impair, n = 2q + 1 :
A2q+1 =
q
q
X
X
i=0 j=0
|i j|
i+j
i
2q i j
qj
,
Il se trouve que An a la forme simple bn/2c 2n2 , mais que ce nest pas
trop simple tablir.
14
2.2.3
|ij|
i+j
i
X
q
q
X
i+j
2q i j 1
+
|ij|
.
i
qj1
2q i j 1
qj
i=0 j=0
|i j|
i=0 j=0
i+j
i
2q i j
qj
,
n=0
un z n .
z
.
(14z)2
z d X q q
(z) =
(
4 z ),
4 dz q=0
lequel scrit
1.3. .(2i 1)2i z i
1.3. .(2i 1)2.4. .(2i)z i
=
=
!i
(!i)2
avec la convention !0 = 1.
P
i=1
2i + s
i
2i
i
zi.
. Notant fs (z) cette somme, on
1
.
14z
2i + 1
2i + 2
1
A partir de lgalite
= 2
, on dduit que f1 =
i
i+2
1 f0 (z)1
. Notant u = 1 4z, on trouve f1 (z) = u1 1u
.
2
z
2z
On se propose de gnraliser la formule
s
1 1u
fs (z) =
.
u
2z
A partir de lidentit
2i + s
2i + s 1
2i + s 1
=
+
,
i
i
i1
on dduit que fs (z) = fs1 (z) + zfs+1 (z). Il suffit donc de montrer que la
formule propose satisfait la mme rcurrence. On considre :
s1
s+1
1 1u
1 1u
+z
.
u
2z
u
2z
s
En mettant en facteur f0 (z) = u1 1u
, on trouve la somme :
2z
2z
1u
+z
.
1u
2z
En observant que u2 = 1 4z et donc que 4z = 1 u2 , on peut transformer
cette somme en
1+u 1u
+
= 1,
2
2
ce qui donne la relation cherche.
Etape 3. Fin du calcul. On a calculer
(z) =
X
X
n=0 jn
(i j)
i+j
i
16
2n i j
nj
zn.
En introduisant s = i j et t = n j, il vient :
X
X
X
2i + s
2t + s
s
zszizt.
i
t
i=0 s=0 t=0
X
1 s
s ,
u2
s=0
avec
= z.
Sachant que
ss vaut
(1 u)2
4z 2
,
(1)2
=
(1 u)2
1u
=
.
4z
1+u
2
2
1 1u
1u
2u
1 1u
( 1
(
= 2
,
u2 1 + u
1+u
u 1+u 1+u
soit enfin
2.2.4
z
1
(1 + u)(1 u) =
.
4
4u
(1 4z)2
17
2.3
2.3.1
2.3.2
Incrments de la forme 2s 1
Pt
2
1
2
t/2
qui est un O(n
) = O(n3/2 ).
s=t/2 2s ), soit donc un O(n /2
Reste les t/2 dernires passes. On note que hs+2 et hs+1 sont premiers
entre eux. Le lemme 6 montre que, lorsque lon aborde le hs -tri, les inversions correspondent des indices i et j distants de (hs+2 1)(hs+1 1) au
plus. Comme on prend les indices de hs en hs , les indices j qui produisent une
18
inversion avec un indice i au sein dun mme tableau extrait sont dans un ensemble qui a hs+2hhs s+1 lments. En faisant varier i, on voit que lensemble des
hs+1
hs -tris a une complexit cumule majore par nhs+2
, qui est un O(n.2s ).
hs
Pt/2 s
En sommant on obtient un O(n. s=1 2 ) qui est un O(n.2t/2 ) = O(n3/2 ).
La complexit du tri de Shell pour la suite dincrments 2s 1 est donc
en 0(n3/2 ). Ce rsultat a t prouv dans [2]. Le problme gnral de la
complexit du tri de Shell reste ouvert.
19
Bibliographie
[1] D. Knuth. The Art of Computer Programming, Volume 3 : Sorting and
Searching. Addison-Wesley, Reading, MA, 1973.
[2] A. Papernov and G. Stasevich. A method for information sorting in
computer memories. Problems Inform. Transmission, 1(3) :6375, 1965.
[3] D. L. Shell. A High-Speed Sorting Procedure. CACM, 2(7) :30-32, July
1959.
20
Cours 3
(19 octobre)
Recherche de motifs
Algorithmes dalignement en
bio-informatique
3.1
3.1.1
3.1.2
est la suite vide). Le tableau est rempli par rcurrence en utilisant le lemme
suivant :
Lemme 7 Soient i, j > 0.
i) Si xi = yj , alors c[i, j] = c[i 1, j 1] + 1 ;
ii) Si xi 6= yj , alors c[i, j] = max{c[i, j 1], c[i 1, j]}.
La preuve du lemme est facile. Le lecteur pourra se reporter au cours
dalgorithmique de Cormen et al. [3]. En maintenant dans un second tableau
lindication -, , de la provenance de loptimum (de c[i1, j 1], de c[i
1, j], ou de c[i, j 1]), il est immdiat dcrire un algorithme qui calcule non
seulement la longueur de la PLSEC, soit c[m, n], mais galement une PLSEC
de longueur maximale. Un tel algorithme est reproduit dans les transparents
du cours, en page 9.
3.1.3
V [i 1, j 1] + (si , tj )
V [i, j 1] + (si , )
On a V [i, j] = min
.
V [i 1, j] + (, tj )
La preuve du lemme est immdiate. Comme dans le cas de la PLSEC, on
peut obtenir un alignement optimal en maintenant dans un tableau lindication -, , de la provenance de loptimum.
3.1.4
bio-informatique, tient compte dune pnalit sappliquant aux longs espacements. En faisant le choix dune pnalit linaire de la forme Wg + qWs ,
o q dsigne le nombre despaces conscutifs insrs et o Ws , Wg sont 0,
on est amen une rcurrence plus complexe : lalgorithme maintient outre
V [i, j], trois tableaux E[i, j], F [i, j], G[i, j] contenant loptimum respectif
correspondant chacun des trois cas suivants :
1. optimum E[i, j] du cot dun alignement o le symbole - nest pas
insr la fin du mot Xi , mais est insr la fin du mot Yj ;
2. optimum F [i, j] du cot dun alignement o le symbole - est insr
la fin du mot Xi , mais nest pas insr la fin du mot Yj ;
3. optimum G[i, j] du cot dun alignement o le symbole - nest insr
ni la fin du mot Xi , ni la fin du mot Yj ;
Le lemme qui suit permet lcriture dun algorithme qui procde par rcurrence. On suppose que la pnalit prend compltement en compte le rle
des alignements : en dautres termes (a, ) = (, a) = 0.
Lemme 9 Soient i, j > 0.
V [0, 0] = G[0, 0] = 0,
V [i, 0] = E[i, 0] = Wg + iWs ,
V [0, j] = F [0, j] = Wg + jWs .
De plus,
i) V [i, j] = min{E[i, j], F [i, j], G[i, j]}.
ii) E[i, j] = min{E[i, j 1] + Ws , V [i, j 1] + Ws + Wg }.
iii) F [i, j] = min{F [i 1, j] + Ws , V [i 1, j] + Ws + Wg }.
iv) G[i, j] = V [i 1, j 1] + (si , tj ).
Preuve : La preuve est une simple tude de cas. Par exmple, pour ii), on
observe que loptimum du cot dun alignement o le symbole - nest pas
insr la fin du mot Xi , mais est insr la fin du mot Yj peut provenir
dun alignement optimum de Xi1 et Yj du mme type, avec un cot supplmentaire de Ws , ou dun alignement optimum de lun des autres types, avec
un cot supplmentaire de Wg + Ws . Ceci conduit la formule
E[i, j] = min{E[i, j 1] + Ws , F [i, j 1] + Ws + Wg , G[i, j 1] + Ws + Wg }.
La formule plus simple du lemme est obtenue en observant que le minimum
est infrieur E[i, j 1] + Ws + Wg et donc quon ne change pas sa valeur
en le remplaant par
min{E[i, j 1] + Ws , V [i, j 1] + Ws + Wg }.
23
3.1.5
Gestion de lespace
24
3.2
Etant donnes plusieurs suites et - un symbole qui napparat dans aucune de ces suites, un alignement de ces suites est obtenu en insrant dans
chacune des symboles - supplmentaires de manire ce que les suites produites soient toutes de mme longueur. Comme dans le cas de deux suites on
peut attribuer un cot un alignement multiple partir dune fonction score
(a, b). On se restreindra au cas o est symtrique ((a, b) = (b, a)), vrifie
lingalit triangulaire ((a, c) (a, b) + (b, c)) et est telle que (a, a) = 0.
Egalement, on supposera quil ny a pas de pnalit pour les espacements.
Dans cette section, on scarte des notations utilises auparavant en notant Si la i-me suite. En prenant les suites deux deux, on peut considrer le
cot de lalignement correspondant soit D(Si , Sj ). Le cot SP (sum of pairs)
est la somme
X
D(Si , Sj ).
i<j
On peut galement proposer une autre mesure - nomme erreur de consensus ou EC- calcule partir dun alignement en dterminant une suite S
reprsentant le consensus qui minimise :
X
D(S, Si ).
i
3.2.1
Lalgorithme Center-Star
i<j
i>1
i6=j
Compte tenu de la P
stratgie de lalgorithme,
P la somme apparaissant dans le
dernier terme, soit i>1
P d(i, 1) est gale i>1 D(Si , S1 ) et est majore par
les sommes analogues i6=j D(Si , Sj ) pour j fix. En prenant la moyenne, on
trouve pour loptimum SP un majorant de la forme
(k 1) X
2(k 1) X
D(Si , Sj ) =
D(Si , Sj ).
k
k
i<j
i6=j
En utilisant la majoration D(Si , Sj ) d (i, j), on trouve finalement :
d(i, j)
i<j
2(k 1)
,
k
3.2.2
i6=t
D(Sc , Si ) (1 +
i6=c
27
i6=c
k1
),
k
D(Sc , Si ), conduit au rsultat
Bibliographie
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[2] R. Shamir Algorithms for Molecular Biology : Course Archive.
http ://www.math.tau.ac.il/ rshamir/algmb.html
28
Cours 4
(26 octobre)
Arbres
Structures de donnes fusionnables
On a vu dans le cours diffrentes structures darbre permettant de grer
un ensemble de donnes et doprer des oprations de recherche, dinsertion
et de suppression dun lment repr par une cl, tout en maintenant le
caractre quilibr des arbres et en assurant ainsi que chaque opration a
une complexit O(log n), o n est le nombres de nuds de larbre.
Ces structures en revanche ne permettent pas facilement la fusion de deux
ensembles de donnes, du moins pas avec la mme complexit. Dautres structures y parviennent et lobjet de ce chapitre est den prsenter le principe.
4.1
4.1.1
4.1.2
Tas binomiaux
Un tas binomial est une structure de donnes forme dun suite darbres
binomiaux dont les racines constituent une liste chane. Chaque nud est
de plus tiqut de telle manire que, dans chaque arbre binomial ltiquette
dun pre est infrieure celle de son fils. Enfin, pour chaque entier i, il ny
a quun seul arbre binomial Bi au plus.
On note que si I est lensemble des indices des arbres binomiaux qui
apparaissent dans le tas binomial, on a, en notant n le nombre de nuds du
tas,
X
n=
2i .
i
4.1.3
Pour fusionner deux tas binomiaux, donns par un pointeur vers la liste
chane des racines, on fusionne les deux listes en ordre croissant des indices
des arbres binomiaux. Lindice est exactement le nombre de fils de chaque
nud racine, cest dire le degr de la racine, ce qui permet de le calculer,
moins quon ne prfre maintenir ce degr dans un champ attach chaque
nud.
Le problme cest que lon obtient pas ainsi en gnral un arbre binomial. En effet on peut avoir deux arbres de mme indice i, correspondant
au cas o i apparat ma fois dans la dcomposition binaire des entiers n
et m reprsentant respectivement le nombre dlments de chacun des tas
fusionner.
Pour rsoudre ce problme, on sinspire de laddition binaire avec retenue. On parcourt la suite des racines des arbres binomiaux de la liste
fusionne et on rduit le nombre des arbres par les rgles suivantes :
1. un unique arbre dindice i reste inchang,
30
4.1.4
Autres oprations
4.2
Tas de Fibonacci
Toutefois, toute structure ayant les proprits dcrites ci-dessous nest pas
ncessairement un arbre de Fibonacci. En effet, il ny a pas proprement
parler de dfinition synthtique et ne sont des tas de Fibonacci que les
structures qui peuvent tre rcursivement cres partir dun tas vide, par
les oprations dinsertion, de suppression du minimum, de dcrmentation
dune cl et de fusion.
La complexit des oprations mentionnes ci-dessus se mesure par rfrence un potentiel, comme expliqu dans la leon 1 : il sagit donc de
complexit amortie. Le potentiel est dfini par la quantit t + 2m, o t est le
nombre total darbres dans le tas et m le nombre de nuds marqus.
4.2.1
4.2.2
32
4.2.3
33
4.2.4
On a vu que toutes les oprations avaint une complexit amortie O(1) sauf
la consolidation, qui a une complexit amortie O(D). Reste donc borner
D.
Thorme 7 Soit x un nud de degr k dun tas de Fibonacci. Alors la
taille du sous arbre issu de x est minore par la k + 1-ime valeur Fk+1 de la
suite de Fibonacci.
On note quil rsulte de ce thorme que pour un tas qui a n lments,
tous les nuds ont au plus degr k, o k est le plus grand entier tel que
Fk+1 n. Comme Fk+1 est minor par k1 , reprsentant le nombre dor,
on en conclut que D est bien un O(log n).
Le thorme est quant lui consquence du lemme suivant.
Lemme 12 Soit x un nud de degr k dun tas de Fibonacci et soit y1 , , yk
la suite de ses fils ordonne suivant le moment o ils ont t lis x lors de
lexcution des algorithmes oprant sur les tas de Fibonacci ; alors, le degr
de yi est minor par i 2.
Preuve du lemme Au moment o yi est li x, x a pour degr i 1 au
moins, puisque y1 , , yi1 ont t lis auparavant. De plus, yi a mme degr
que x. Donc yi a degr i 1. Pour conclure, il suffit dobserver quun nud
ne perd des fils que lors de la cascade qui commence par le dplacement
dun lment conscutif une dcrmentation de sa cl et se poursuit avec
le dplacement de son pre, son grand pre etc. Un pre qui perd un fils
est marqu. Sil devait perdre un autre fils, il serait plac dans la liste des
racines. Comme yi est fils de x, il nest pas dans ce cas et a donc au moins
i 2 fils.
On revient maintenant la preuve du thorme. Soit si la taille maximum
du sous-arbre issu dun nud de degr i dun tas de Fibonacci. On a s0 = 1.
On a de plus, daprs le lemme prcdent,
sk 2 +
k
X
si2 .
i=2
k1
X
Fi = 1 +
i=1
k1
X
Fi
i=0
Pk1
i=0
vaut
Bibliographie
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[2] J. Vuillemin. A data structure for manipulating priority queues Communications of the ACM Volume 21 (4), 309315, 1978.
[3] M. L. Fredman and R. E. Tarjan . Fibonacci heaps and their uses in
improved network optimization algorithms, Journal of the ACM, Volume
34 (3) 596615 , 1987.
35
Cours 5
(2 novembre)
Graphes
Graphes dexpansion
Dans cette leon, on tablit un lien entre les proprits dexpansion dun
graphe et les valeurs propres de sa matrice dadjacence. On tudie aussi les
applications algorithmiques de graphes ayant de bonnes proprits dexpansion.
5.1
5.1.1
Les graphes tudis dans cette section sont non orients. Etant donn un
ensemble de sommets W dun graphe G, on note |W le nombre dlments
de W et on appelle voisins de W lensemble des sommets lis un lment
de W par une arte de G.
Un graphe n sommets admet la constante dexpansion c, si pour tout
ensemble de sommets W tel que |W | n/2, lensemble des voisins de W a
au moins c|W | lments.
5.1.2
On dit quun graphe est d-rgulier si chaque sommet a exactement d voisins. La thorie qui suit prsente, dans le cadre simplifi des graphes rguliers,
le lien profond qui unit les proprits dexpansion dun graphe aux valeurs
propres de sa matrice dadjacence A. On note que la matrice A est symtrique et quelle admet d comme valeur propre, puisque la matrice A dI
a la somme de toutes ses colonnes nulle et est donc non inversible. Cest la
36
37
Par ailleurs, le produit scalaire ((d.I A)x, x) est donn par la formule matricielle habituelle t (x)(d.I A)(x), et on voit facilement que ce produit vaut :
X
X
dx2u 2
xu xv ,
u
A[u,v]=1
bc2 + cb2
bc
= (d ) ,
2
(b + c)
n
5.2
5.2.1
Applications algorithmiques
Marche alatoire dans un graphe
d
21/4
38
A[u,v]=1
5.2.2
Les constructions explicites connues de graphes dexpansion, dues Lubotzky, Phillips, Sarnak [4] et Margulis [5], sont trop difficiles pour tre exposes ici. On se contentera de mentionner quil est possible de trouver
des
familles explicites de graphes dexpansion de degr d avec || 2 d 1
pour toute valeur de d gale p + 1, p tant un nombrepremier congru 1
modulo 4. Par exemple, pour d = 30, on obtient || 2 29 et donc
1 2
d + ||2
2
1/2
' 23.79
d
21/4
' 25.23.
40
Bibliographie
[1] N. Alon. Eigenvalues and expanders, Combinatorica 6(1986), 8396.
[2] N. Alon, and J. H. Spencer. The Probabilistic Method, John Wiley &
Sons, Inc., New York, 1992.
[3] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[4] A. Lubotzky, R. Phillips, and P. Sarnak. Ramanujan graphs, Combinatorica, 8 (1988), 261277.
[5] G. A. Margulis. Explicit group-theoretic constructions of combinatorial
schemes and their applications in the construction of expanders and
concentrators. Problemy Peredachi Informatsii, 24(1), 5160, 1988.
41
Cours 6
(9 novembre)
Flots
Mthode de flot bloquant
Dans cette leon, on cherche amliorer les algorithmes de flot maximum
prsents dans le cours de base et notamment lalgorithme dEdmonds-Karp,
bas sur la recherche dun chemin de longueur minimal dans le graphe rsiduel. Cette amlioration passe par la notion de flot bloquant. On applique
ensuite les rsultats obtenus la recherche de couplages dans les graphes
bipartis.
6.1
6.1.1
Flots bloquants
Dfinitions
42
6.1.2
Lalgorithme de calcul dun flot bloquant opre sur des variables globales
qui reprsentent :
1. un flot f sur G,
2. un graphe H, sur les mmes sommets que G,
3. un chemin p de G dorigine s reprsent sous forme dune liste chane
avec accs en temps constant lextrmit last(p) de p.
Cet algorithme met en uvre quatre fonctions.
INITIALISER
p [s];
43
RECULER
v last(p) ;
si v = s alors retourner(chec) sinon
supprimer v de p ;
u last(p) ;
supprimer (u, v) de H ;
retourner(succs) ;
AVANCER
v last(p) ;
si v na pas darte sortante dans H alors retourner(chec) sinon
calculer une telle arte sortante (v, w) ;
ajouter w la fin de p ;
retourner(succs) ;
AUGMENTER
v last(p) ;
calculer minimum de C(u, v) f (u, v) quand (u, v) dcrit les artes de p ;
supprimer de H les artes o le minimum est atteint ;
pour chaque arte (u, v) de p ajouter f (u, v) et f (v, u) ;
Lalgorithme lui-mme est dcrit par :
H G; f 0;
INITIALISER
test-fin succs ;
tant que (test-fin = succs) faire
test-av succs ;
tant que (test-av = succs) faire test-av AVANCER ;
si last(p) 6= t alors test-fin RECULER sinon
AUGMENTER ;
INITIALISER ;
On prouve dabord que, sil se termine, lalgorithme calcule un flot bloquant f . Si ce nest pas le cas, il existe un chemin q de s t dont aucune
arte nest sature. Ce chemin q ne peut emprunter uniquement des artes
du graphe dfini par la valeur de H la fin du programme. En effet, lalgorithme ne se termine que si un appel de la fonction RECU LER retourne une
valeur dchec pour la variable test f in, ce qui ne se produit que si elle est
appele avec une valeur de p telle que last(p) = s. La fonction RECU LER
nest elle-mme appele que si la fonction AV AN CER retourne une valeur
dchec pour la variable test av, ce qui dans le contexte implique quaucune
arte du graphe dfini par la valeur finale de H ne sort de s. Les artes du
44
chemin q ne sont donc pas toutes dans H. Soit (u, v) la premire arte de q
avoir t supprime de H. Il y a deux cas considrer :
premier cas : cette arte a t supprime par la fonction AU GM EN T ER.
Cette fonction a galement satur larte (u, v) en augmentant la valeur courante du flot f . Do une contradiction.
deuxime cas : cette arte a t supprime par la fonction RECU LER un
moment o, par dfinition de (u, v), larte suivante du chemin q, soit (v, w)
tait encore dans H. Or, la fonction RECU LER nest appele que si la fonction AV AN CER retourne une valeur dchec pour la variable test av, ce
qui dans le contexte implique quaucune arte du graphe dfini par la valeur
courante de H ne sort de v. Do, nouveau une contradiction.
On montre ensuite la terminaison : chaque excution des deux fonctions
RECU LER ou AU GM EN T ER supprime au moins une arte ; il y en a
donc au plus m. Les excutions conscutives de AV AN CER sont en nombre
au plus n1, puisque chacune augmente la longueur du chemin p dune unit
et que, le graphe Lf tant sans cycle, cette longueur ne peut dpasser n 1.
Le nombre total des appels de fonction est donc en O(m) pour les fonctions
RECU LER ou AU GM EN T ER et en O(mn) pour la fonction AV AN CER.
La complexit est galement en O(nm) si on prend soin de reprsenter
les graphes par des structures de donnes mixte composes dune matrice
dadjacence, dune liste dadjacence et de pointeurs indiquant, pour chaque
arte (u, v), la position de v dans la liste dadjacence de u. Une telle structure
de donne permet de raliser en temps constant les oprations de base telles
que : suppression dune arte ou accs une arte issue dun sommet donn.
En effet, RECU LER et AV AN CER ont alors un cot constant, tandis que
AU GM EN T ER a un cot linaire en n.
6.1.3
Pour calculer un flot maximum, on itre le calcul dun flot bloquant sur
le graphe flot graphe Lf pour la capacit rsiduelle et laugmentation de f en
f + f 0 . On arrte litration lorsque le flot est maximum, ce que lon constate
- par exemple - par la condition d(s, t) = .
Lemme 15 Soit R0 le graphe rsiduel du flot f + f 0 et d0 (s, u) la fonction
distance la source pour ce graphe R0 . Pour tout sommet u on a d(s, u)
d0 (s, u).
Preuve : Largument est analogue celui donn dans le cours pour lalgorithme dEdmonds-Karp. Si la conclusion du lemme est en dfaut, on choisit
un contre-exemple tel que lentier k
k = d0 (s, u) < d(s, u)
45
6.2
6.2.1
Un graphe G muni dune capacit C est unitaire sil nadmet pas darte
allant de s t et si tout sommet u diffrent de s et t est dun des deux types
suivants :
type I : u admet au plus arte entrante (cest dire une arte de la forme
(v, u)) et cette arte, si elle existe, est de capacit 1,
type II : u admet au plus arte sortante (cest dire une arte de la forme
(u, v)) et cette arte, si elle existe, est de capacit 1.
On se donne un flot f sur un graphe unitaire. Pour un sommet de type I,
le flot sur larte entrante ne peut valoir que zro ou un, et dans ce dernier cas,
il existe une unique arte sortante sur lequel il vaut 1 galement. Toujours
dans le cas o le flot vaut 1 sut larte entrante, celle-ci disparat du graphe
rsiduel, mais linverse de lunique arte sortante sur lequel le flot vaut 1
apparat comme unique arte entrante avec capacit 1. Le sommet reste donc
de type I dans le graphe rsiduel.
De mme, pour un sommet de type II, le flot sur larte sortante ne
peut valoir que zro ou un, et dans ce dernier cas, il existe une unique arte
entrante sur lequel il vaut 1 galement. Larte sortante disparat du graphe
rsiduel, mais linverse de lunique arte entrante sur lequel le flot vaut 1
apparat comme unique arte sortante avec capacit 1. Le sommet reste donc
de type II dans le graphe rsiduel. Le graphe rsiduel est donc galement
unitaire.
Lemme 17 Soit G un graphe unitaire. Un chemin amliorant de longueur
` admet au moins b 2` c artes critiques, cest dire dartes dont la capacit
rsiduelle ralise le minimum de C(u, v)f (u, v) quand (u, v) dcrit les artes
du chemin amliorant.
Preuve du lemme : comme le graphe rsiduel est unitaire, les observations
qui prcdent lnonc du lemme montrent quun flot de valeur 1 sur un
chemin amliorant sature lunique arte entrante dun sommet de type I et
lunique arte sortante dun sommet de type II, soit une arte sur deux, do
le rsultat.
Lemme 18 Soit G un graphe unitaire, f un flot sur G et d la distance de s
.
t dans le graphe rsiduel R. Tout flot sur R a une valeur majore par n2
d1
Soit f 0 un flot sur le graphe rsiduel R. Comme R est unitaire, les observations
qui prcdent lnonc des deux lemmes montrent que lensemble des artes de
47
48
6.2.2
49
Bibliographie
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[2] J. E. Hopcroft, and R. Karp. An n5/2 algorithm for maximum matchings
in bipartite graphs. SIAM J. Comput. 2 (1973), 225-231.
[3] R.E. Tarjan. Data Structures and Network Algorithms. Society for Industrial & Applied Mathematics (1983).
50
Cours 7
(16 novembre)
Entiers
Tests de primalit ; sommes de quatre carrs
Dans cette leon, on prsente des algorithmes efficaces pour reconnatre
si un nombre entier est premier et pour obtenir la dcomposition dun entier
en somme de quatre carrs, suivant le rsultat dmontr en 1770 par le mathmaticien franais Joseph Louis Lagrange. Les algorithmes prsents sont
probabilistes et efficaces.
7.1
7.1.1
il ny a pas dautre solution et donc les lments dordre d sont inclus dans
le groupe engendr par a. De plus, au engendre le mme groupe que a si et
seulement si x est premier d (cest dire inversible modulo d), ce quon voit
facilement par des calculs simples sur les exposants de a. Il y a donc (d)
tels gnrateurs, o est la fonction dEuler dfinie par :
Y
(n) =
(pi 1)pei i
i
les pi dcrivant lensemble des facteurs premiers de n, et ei dsignant lexposant de pi dans la factorisation de n.
En notant Nd le nombre de sous-groupes engendrs par un lment dordre
d, il vient :
X
p1=
Nd (d)
d|p1
7.1.2
p2 1
8
p1 q1
2
2
(p1)/2
aj = a
p1
2
j=1
j=1
= (a|p)
n
Y
p ri
i=1
k
Y
sj
j=1
(p1)/2
= (a|p)(1)
j,
j=1
do le rsultat.
On tablit ensuite le lemme suivant :
Lemme 21 Soit p un nombre premier impair, a un entier impair et premier
p ; alors (a|p) est la somme modulo 2 des entiers bja/pc quand j dcrit
lensemble des entiers 1, , (p 1)/2.
Preuve : On note S la somme modulo 2 des entiers bja/pc. On observe que
ja = bja/pc.p + (ja) mod p. En faisant la somme de tous les ja, il vient
(p1/2
j = Sp +
n
X
j=1
i=1
53
ri +
k
X
j=1
sj .
vaut
P(p1/2
j=1
j=
(p1)(p+1)
.
8
j=1
k
X
(p 1)(p + 1)
(a + 1)
= np + Sp + 2(
sj ).
8
j=1
7.1.3
Symbole de Jacobi
k
Y
(a|qi ),
i=1
iv ((2)|n) = (1) 8
(n1)(m1)
4
v (m|n)(n|m) = (1)
Preuve : La preuve repose sur des calculs simples. Les points i et ii sont
immdiats. Le point iii et le point iv reposent sur les galits :
ab 1
a1 b1
=(
+
) mod 2,
2
2
2
a2 1 b 2 1
a2 b 2 1
=(
+
) mod 2,
8
2
2
pour a et b impairs. Le point v repose sur la loi de rciprocit quadratique
et lgalit
X pi 1
m1
=
2
2
Q
o m est impair et m = pi est la dcomposation de m en facteurs premiers
non ncessairement distincts. Les dtails sont laisss au lecteur.
La loi de rciprocit quadratique a une consquence algorithmique tout
fait remarquable, qui est lexistence dun algorithme de complexit cubique
(en la taille des entiers) qui calcule le symbole de Jacobi (m|n). De fait,
le calcul suit essentiellement un algorithme de pgcd. On note Jacobi(m, n)
lalgorithme quon appelle pour n impair et 0 < m < n (le cas m ngatif
sen dduisant laide des rgles i iii du lemme ci-dessus). Lalgorithme est
rcursif et procde comme suit :
1. Extraire de m la plus grande puissance de 2, m = 2h m0 , m0 impair ; si
n2 1
h est impair, calculer t = (1) 8 ;
0
1)
2. Si m0 = 1, retourner t ; sinon calculer t = t.(1) (n1)(m
et n0 =
4
0
n mod m ;
55
7.2
7.2.1
Tests de primalit
Test de Solovay et Strassen
Donc, dans les deux cas, hp1 nest pas gal 1 modulo p2 . Il en rsulte que
lordre de h modulo p2 qui divise lordre du groupe des lments inversibles
modulo p2 , soit p(p 1) est en fait gal p(p 1). Par le thorme des restes
chinois, il existe un entier a tel que a soit gal h modulo p2 et a soit gal
1 pour tous les autres nombres premiers de la factorisation de n. La quantit
n1
a 2 nest pas gale 1 ni 1 : en effet, son carr an1 vaudrait alors 1
modulo p2 , donc n 1 serait multiple de lordre p(p 1) de a. On aurait ainsi
trouv un diviseur commun p n et n 1.
Dans le second cas, on peut crire n comme produit dun nombre premier
p et dun entier m > 1 non divisible par p. On utilise nouveau le thorme
des restes chinois : soit u un non rsidu quadratique modulo p et v un carr
modulo m. Soit a congru u modulo p et v modulo m. Par hypothse,
n1
a 2 vaut (a|p)(a|m) = (u|p)(v|m) = 1. Soit maintenant, toujours par le
thorme des restes chinois, b tel que b = 1 mod p et b = a mod m. On a
n1
n1
n1
n1
b 2 mod p = 1 et b 2 mod m = a 2 mod m = 1 et donc b 2 mod n ne
peut tre gal ni 1 ni 1 et donc nest pas une valeur dun symbole de
Jacobi, do la contradiction cherche.
Finalement, lensemble des entiers a, qui sont inversibles modulo n et tels
n1
lments, ce qui est infrieur n2
que (a|n) = a 2 mod n a au plus (n)
2
7.2.2
Test de Rabin
57
7.2.3
Tests dterministes
Les deux tests prsents dans les sections prcdentes sont - comme on
la expliqu - de nature probabiliste. De fait, si lon admet lhypothse de
Riemann gnralise, la mthode de Rabin peut tre rendue dterministe :
plus prcisment, on peut prouver que, si lon a test toutes les valeurs de a
comprises entre 1 et 2(log n)2 , et que n na pas t dclar compos, alors il
est premier. En labsence dhypothse supplmentaire, lexistence dun test
dterministe de complexit polynomial est un rsultat tabli en 2002 par
Agrawal, Kayal et Saxena[1].
7.3
7.3.1
7.3.2
7.3.3
61
Bibliographie
[1] M. Agrawal, N. Kayal and N. Saxena. PRIMES is in P, preprint , 2002.
[2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[3] C. F. Gauss. Disquisitiones Arithmeticae, Springer, 1986.
[4] Ju. V. Linnik. An asymptotic formula in an additive problem of HardyLittlewood, Izv. Akad. Nauk SSSR. Ser. Mat., 24, 1960, 629706.
[5] I. Niven, H. S. Zuckerman, H. L. Montgomery. An Introduction to the
Theory of Numbers, 5th edition, Wiley, 1991.
[6] G L. Miller. Riemanns Hypothesis and Tests for Primality, Journal of
Computer and System Sciences 13 (3), 1976, 300317.
[7] M. O. Rabin, Probabilistic algorithm for testing primality, Journal of
Number Theory 12 (1), 1980, 128138.
[8] M. O. Rabin, J. O. Shallit. Randomized algorithms in number theory,
Comm. Pure Appl. Math. 39 (1986), 239256.
[9] R. M. Solovay and V. Strassen. A fast Monte-Carlo test for primality,
SIAM Journal on Computing 6 (1), 1977, 8485.
62
Cours 8
(23 novembre)
8.1
8.1.1
63
8.1.2
Nombres de Fermat
Lemme 23 Dans lanneau des entiers modulo m, est racine primitive nime de lunit et n est inversible.
Preuve : Pour voir que est racine primitive n-ime de lunit, on observe
dabord que n/2 = m 1 et donc que n = 1 mod m. On value ensuite
P ( j ) o P est le polynme P (t) = 1 + t + + tn1 , dont il est facile de voir
que cest le produit des binmes 1 + t` pour ` = 1, , 2k1 , k tant lentier
tel que n = 2k . On constate que P ( j ) est nul en isolant les puissances de 2
dans j, soit j = u2t , t < k, u impair, et en fixant i de manire que lexposant
de 2 dans la dcomposition en facteurs de j2i soit exactement k 1. Il vient
i
1 + ( j )2 = 1 + ( n/2 )u = 0 mod m, ce qui implique bien que P ( j ) vaut
zro.
Reste voir que n = 2k est inversible. En observant que n excde n et
quil sagit de puissances de deux on en dduit que n divise n , soit n = nv
pour un entier v. Modulo m, v est linverse de n, ce quil fallait dmontrer.
8.1.3
Le cot modr assign aux oprations de FFT vient de ce que ce sont des
additions ou des multiplications modulo m par des puissances de deux, qui
ont un cot seulement linaire. En supposant que est petit, disons major
par 256, on obtient une complexit qui est O(n2 log n) + n(m), o (m)
dsigne le temps de calcul dune multiplication modulo m.
Le calcul ci-dessus est exact, cest dire fournit le produit de A et B
modulo xn1 au sens des entiers, si les coefficients ai et bj sont majors en
valeur absolue par M et si 2nM 2 m. En effet chaque coefficient de la
convolution cyclique
X
ai b j
i+j=u mod n
est alors major par m/2 et donc parfaitement dtermin par son reste modulo m. De mme, le produit est exact si les ai et bj sont positifs majorspar
M et si nM 2 m. Dans ce dernier cas, si M est seulement major par m,
il est possible de dterminer le produit exact en calculant galement la valeur
modulo n de AB modulo xn 1, ce qui correspond calculer directement les
valeurs modulo n de chaque coefficient de la convolution cyclique. Les entiers
n et m tant premiers entre eux, le thorme des restes chinois permet de
calculer la valeur modulo mn dun coefficient c de la convolution cyclique
partir de ses valeurs cm et cn modulo m et n.
En termes de complexit, le surcot attach lapplication du thrme
des restes chinois est ngligeable : comme m-1 est divisible par n, il est facile
de voir quun coefficient c est calcul par cm + m((cn cm ) mod n).
Le surcot attach aux petites multiplications, cest dire aux multiplications modulo n est a priori non ngligeable puisquil correspond O(n2 )
multiplications de nombres de log n bits. Le lemme suivant montre quon
peut cependant rendre cette complexit moindre que celle des tapes 1 3
du calcul modulo m.
Lemme 24 Il existe un algorithme de calcul des petites multiplications de
complexit 0(n2 ).
Preuve : Lide est dvaluer (A mod n)(B mod n) au point = 3dlog ne.
Il sagit dune simple multiplication de deux entiers, qui peut tre ralise en
temps O(nlog 3 ) par lalgorithme rcursif vu en cours (algorithme de Karatsuba). Cette complexit est bien un O(n2 ). Par ailleurs AB scrit
0 + 1 x + + 2n2 x2n2 ,
o chaque u est le coefficient
X
ai b j ,
i+j=u
65
lequel est major par n3 . Par suite, dans le calcul, de les termes u (2 )u ont
des dcompositions binaires qui ne se chevauchent pas. Lcriture binaire du
produit (A mod n)(B mod n) valu en donne donc celle des coefficients
u par lecture directe. Les valeurs de la convolution cyclique modulo n sen
dduisent par la formule cu = i + u+n mod n.
8.1.4
i+j=n+u
Cette formule permet de localiser les valeurs des coefficients dans un intervalle
de longueur nM 2 , lorsque les ai et les bj sont positifs majors par M . Cet
intervalle dpend de u et est de la forme [(n u 1)M 2 , (u + 1)M 2 ]. Cette
localisation permet de calcul de cu partir de ses valeurs modulo m et n. Les
dtails sont laisss au lecteur.
66
8.1.5
Conclusion
8.2
Lalgorithme de Schnhage et Strassen prend en entre un entier q puissance de 2 et deux entiers poitifs u, v 2q et forme le produit uv mod 2q + 1.
Sa complexit est en O(q log q log log q). En prenant q plus grand que le
nombre de bits de u et v, on obtient un algorithme exact de multiplication
rapide des entiers. Il est noter que cet algorithme semble complexe mais
quil a t implant (voir [5]). La performance devient meilleure que celle
de lalgorithme rcursif de Karatsuba partir de 20000 chiffres dcimaux
environ.
8.2.1
8.2.2
Complexit de lalgorithme
q
k
1
1
k
+ 3( p + + ) p + 3,
p
2
2
2
2
8.2.3
dans [3]. La borne de Frer est en O(n log n2log n ), o logn dsigne le nombre
ditrations de la fonction log ncessaires pour atteindre une valeur 1. La
fonction log n croit moins vite que log n, log log n etc.
69
Bibliographie
[1] A. V. Aho, J. E. Hopcroft and J. D. Ullman . The Design and Analysis
of Computer Algorithms, Addison Wesley, 1974.
[2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[3] Martin Frer. Faster integer multiplication, Proceedings of STOC 2007,
57-66.
[4] A. Schonhage and V. Strassen. Schnelle Multiplikation grosser Zahlen,
Computing 7, 1971, 281-292.
[5] Paul Zimmermann. Implantation de lalgorithme de Schnhage en C
avec la bibliotheque BigNum.
http ://www.loria.fr/ zimmerma/bignum/schon.bignum.c
70
Cours 9
(30 novembre)
9.1
9.1.1
71
entires. Posant B 0 = BU , il vient (B 0 ) = det(U BBU
)1/2 = |det(U )|(B).
En prenant lidentit analogue pour V , on en dduit que |det(U )||det(V )|
vaut 1, et donc que les deux dterminants det(U ) et det(V ) valent 1. La
matrice U est dite unimodulaire et on a bien (B 0 ) = (B).
On peut donc dfinir le dterminant dun rseau L, soit (L) comme celui
dune quelconque de ses bases... pour autant quon sache que tout rseau admet une base. Ce nest pas un rsultat compltement vident en gnral, mais
- dans le cas simple des rseaux coordonnes entires - on peut considrer
les familles libres ayant le plus grand nombre dlments k et en choisir une
(b1 , , bk ) de dterminant minimum (B), puisque le carr du dterminant
est entier. Si une telle famille nengendre pas le rseau, on prend b hors du
sous-rseau engendr par la base et on crit
b=
k
X
i bi
9.1.2
Orthogonalisation de Gram-Schmidt
Etant donne une base (b1 , , bk ) dun rseau, on peut lui appliquer
lorthogonalisation de Gram-Schid vue dans le cours de base. On obtient une
72
suite de vecteurs (b1 , , bk ), coefficients rationnels, deux eux orthogonaux, tels que, pour tout i k, (b1 , , bi ) et (b1 , , bi ) engendrent le mme
sous-espace. ces vecteurs, ainsi que les coefficients it , 1 t i 1, sont
dfinis par :
i1
X
it bt
bi = bi +
t=1
ce qui donne
(bi , bt )
||bt ||2
Les coefficients it sont ceux dune matrice triangulaire suprieure T , dont la
i-me colonne est compose des coefficients (i1 , , ii1 , 1), et qui permet
de calculer la matrice B des bi en fonction de la matrice B des bi par la
formule B = B T . Cette formule montre que le dterminant du rseau (L)
est gal la racine carre du dterminant
B B , soit au produit
Qkde lamatrice
Q
k
2
Lemme 26 Chaque coordonne de bi est un rationnel dont le dnominateur divise 2i et chaque coefficient it , t i 1, est un rationnel dont le
dnominateur divise 2t+1 .
Preuve : Le cas i = 1 est clair en considrant que i vaut 1 et lon se
restreint dans la suite i 2. Si lon note Bi la matrice dont les colonnes
sont les vecteurs (b1 , , bi1 ), alors, daprs ce qui a t vu dans le cours
de base, bi est est exactement donn par (I Bi+ )(bi ), o Bi+ est le pseudoinverse de Bi , soit (Bi Bi )1 B. Toutes les matrices du second membre sont
coordonnes entires et linversion introduit un dnominateur qui est le
dterminant de (Bi Bi ) soit 2i . Ceci tablit la premire assertion du lemme.
Pour la seconde on considre la formule
(bi+1 , bt )
i+1,t =
||bt ||2 .
On
les coordonnes de bt ont un dnominateur qui divise 2t soit
Qt1sait que
2
2
j=1 ||bj || . Tenant compte de la division par ||bt || , le dnominateur devient
Qt
un diviseur de j=1 ||bj ||2 soit 2t+1 .
73
9.2
9.2.1
Algorithme LLL
Prsentation
||bi ||
||bi ||2
i1
X
t=1
74
1/4||bt ||2
||bi ||2 (1
+ 1/4
i1
X
2it )
t=1
i1
||bi ||2 .
On a alors :
(L)
k
Y
i=1
k
Y
i=1
k
Y
||bi ||2
||bi ||2
2i1 ||bi ||2
i=1
k(k1)/2
= 2
(L)2 .
2
i1
2
Le point iii est onbtenu en faisant le produit des ingalits
P ||b1 || 2 ||bi || .
Enfin, le point iv part dun vecteur quelconque x = i i bi . En considrant
le dernier
P il vient
P indice j tel que le coefficient j correspondant est non nul,
x = ji=1 i bi , ce qui dans la base orthogonale peut scrire x = ji=1 i bi ,
avec des i rationnels mais j = j entier. Il vient ||x|| |j |2 ||bj ||2
2(j1) ||b1 ||2 , ce donne bien ||b1 || 2(n1)/2 ||x||, comme attendu.
9.2.2
Remarque 2 : Pour chaque i 2, la seconde tape doit procder par t dcroissant, cest dire par une boucle : pour t allant de i 1 1 remplacer
bi par bi dit cbt . Tout dabord, comme cette suite doprations ne modifie
aucun bj dindice < i, elle ne change pas les coefficients jt antrieurement
calculs et dment rendus de valeur absolue 1/2. Avant chaque affectation
de bi correspondant lindice t, on a :
(bi dit cbt , bt )
= it dit c,
||bt ||2
ce qui montre que la nouvelle valeur de bi est bien telle que it est 1/2.
La raffectation de bi ne change pas bi puisquelle ajoute bi un lment
de lespace engendr par (b1 , , bi1 ). Enfin, chaque nouvelle affectation ne
modifie pas les coefficients iu dindice u > t puisqueelle ajoute bi un
lment de lespace engendr par (b1 , , bt ), dont le produit scalaire avec bu
est nul. A la fin de la boucle, tous les it ont t rendus de valeur absolue
1/2.
Remarque 3 : Aprs lchange ventuel de bi1 et bi ltape 3, il nest pas
ncessaire de reprendre le calcul de lorthogonalisation de Gram-Schmid
son dbut puisque les vecteurs (b1 , , bi2 ) restent les mmes ; on peut ainsi
rinitialiser lindice i 1.
En termes de complexit, ltape 1 ncessite, pour i fix, O(k) calculs
de coeffients it en mode rationnel. Chaque calcul consiste principalement
en lvaluation dun produit scalaire de vecteurs de dimension n, soit en
tout O(kn) oprations en mode rationnel. Les autres oprations, calcul de
bi , rduction des it ne changent pas cet ordre de grandeur. On suppose,
ce qui sera dmontr juste aprs, que lalgorithme sarrte et on note N le
nombre dchanges oprs ltape 3. En analysant la version incrmentale
de lalgorithme, on constate quelle est contrle par un indice i qui varie
entre 2 et k, que lindice vaut 1 au dbut de lalgorithme, k la fin et quil
est diminu N fois. Cest donc quil a t augment N + k fois, do une
complexit qui est un O(knN ) oprations en mode rationnel.
Lemme 28 Lalgorithme LLL se termine et le nombre N dchanges quil
ralise est en O(k 2 log M ), o M est un majorant des normes euclidiennes
des vecteurs dentre de lalgorithme.
Preuve : On reprend les notations de la section 9.1.2 et on considre la suite
des carrs des dterminants 21 , , 2k+1 atachs une base (b1 , , bk ) et
on note que :
Les oprations de ltape 2 ne changent pas la valeur des bi .
76
9.2.3
bi = bi +
it bt
t=1
avec |it | 1/2. Il sensuit que ||bi || est major par un O(kM ). Au cours de
ltape 1, les quantits it sont calcules par
it =
(bi , bt )
||bt ||2
On a donc it ||bi ||/||bt ||. La quantit ||bt ||2 a un dnominateur major par
2t , ce qui permet de la minorer par 1/2t . De ce qui prcde, on dduit que
77
it est major par un O(kM k/2 ) soit un O(M k ). Les dnominateurs des it
tant major par un O(M k ), leurs numrateurs sont majors par un O(M 2k ).
Reste borner la variation des bi ltape 2, les remplacements successifs de
bi par bi dit cbt conduisent ajouter un vecteur major par un O(kM )
des quantits chacune majore par un O(kM k+1 ). Lopration tant rpte
au plus k fois, on aboutit un majorant qui est un O(k 2 M k+1 ). En prenant
les logarithmes la preuve du lemme est acheve.
En conclusion, on voit, en assignant une complexit quadratique aux
oprations sur les rationnels, que la complexit de lalgorithme LLL est en
O(nk 5 (log M )3 ). Dans la pratique, on opre en mode flottant et non en mode
rationnel. Ceci conduit des implantations tout fait performantes, comme
celle de Victor Shoup [5], mme si leur terminaison nest pas, stricto sensu,
assure.
78
Bibliographie
[1] H. Cohen. A Course in Computational Algebraic Number Theory, Springer, 1993.
[2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[3] A. K. Lenstra, H. W. Lenstra Jr. and L. Lovsz. Factoring polynomials
with rational coefficients, Mathematische Annalen 261 (1982), 515534.
[4] Hermann Minkowski. Geometrie der Zahlen, Teubner, Leipzig, 1896 ;
republi par Johnson, New York, 1968.
[5] V. Shoup. A Library for doing Number Theory,
www.shoup.net/ntl/
79
Cours 10
(14 dcembre)
Programmation linaire
Algorithme de Khachyan
Dans cette leon, on prsente lalgorithme de lellipsode de Khachyan, qui
tablit que le problme de la programmation linaire admet un algorithme
de complexit polynomiale. Lalgorithme de Khachyan a t initialement prsent dans larticle [3]. On pourra galement se reporter louvrage [4]. Un
autre algorithme polynomial pour la programmation linaire, plus pratique
au demeurant, a t propos quelques annes plus tard par Karmarkar [2]
10.1
Ellipsodes
10.1.1
Dfinitions
80
10.1.2
Prototype de litration
1 2 n2 1 X 2
(n + 1)2
(x
+
) +
x 1.
1
n2
n+1
n2 i=2 i
Cette ingalit est quivalente
n
n2 n1 n 2
) (
).
n2 1
n+1
10.2
Lalgorithme de Khachyan
10.2.1
10.2.2
st x
.
||s||
t
ss
La matrice de cette application est I 2 ||s||
et donc cette application est
t
1
sa propre transpose, = . De plus, = et prserve le produit
scalaire.
On note la symtrie relative lhyperplan mdiateur de v et w o
v = Qt a et w = ||v||e1 est colinaire au premier vecteur de base. Les vecteurs
v et w tant de mme norme, cet hyperplan est dfini par lquation v t x = wt x
et est orthogonal la diffrence w v. On observe que change v et w.
Dans le cas o v et w seraient gaux, on peut choisir pour nimporte quelle
symtrie relative un hyeplan contenant v = w.
On considre maintenant lapplication affine inversible obtenue en composant dans cet ordre
1
w
) = tj
Qt Qt a.
(n + 1)||v||
n+1
En notant que t est lidentit, que QQt vaut B, et que ||v||2 = at QQt a =
at Ba, on trouve bien la formule donne dans les transparents du cours, soit
tj+1 = tj
Ba
1
p j
.
n + 1 at Bj a
n2
2
1
n2
2
1
=
.
2
2
2
t
n 1 n + 1 ||v||
n 1 n + 1 a Bj a
83
n2
2 (Bj a)(Bj a)t
,
n2 1 n + 1
at Bj a
10.2.3
Terminaison de lalgorithme
10.3
maij xi bi ,
Loptimum de la focntion dobjectif, sil existe, est galement un rationnel dont le numrateur et le dnominateur sont majors par 2L .
Deux solutions de base, dont les fonctions dobjectif diffrent de moins
de 22L ont mme valeur de la fonction dobjectif.
La preuve se fonde sur la rsolution du systme linaire obtenu en choisissant les variables de base par les formules habituelles par dterminants
extraits et sur la majoration des dterminants par la formule dHadamard.
On peut galement tablir par les mmes mthodes le lemme suivant
Lemme 31 Un systme donn dingalits
X
maij xi bi
i
85
Bibliographie
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[2] N. Karmarkar. A New Polynomial Time Algorithm for Linear Programming, Combinatorica, 4(4), 1984, 373395.
[3] L.G. Khachyan. A polynomial algorithm in linear programming, Translated in Soviet Mathematics Doklady, 20 (1979) 191194.
[4] C. H. Papadimitriou, K. Steiglitz. Combinatorial Optimization : Algorithms and Complexity, Prentice-Hall, 1982
86
Cours 11
(4 janvier)
11.1
11.1.1
Lalgorithme de Berlekamp
Rduction sans facteur carr
11.1.2
il vient
Hp H =
(H s)
sFp
p
11.1.3
Lalgorithme de Berlekamp
11.1.4
Complexit de lalgorithme
rpt est en O(n2 (log p)3 ), le terme n2 provenant des lvations au carr
ou des multiplications ou encore de la rduction modulo U de polynmes de
dgr 2n qui sont les rsultats de calculs intermdiaires. Ce calcul fait, celui
des puissances successives de ce polynme est en O(n3 (log p)2 ).
Ltape 2 est une classique opration dalgbre linaire. La mthode du
pivot de Gauss sapplique, avec complexit O(n3 (log p)2 ).
Enfin, ltape 3/4 ncessite au plus rp calculs de pgcd de polynmes de
degr au plus n, soit un O(rpn2 (log p)2 ). Globalement, lalgorithme nest pas
polynomial cause du facteur p et la question de lexistence dun algorithme
de factorisation de polynmes modulo p, qui opre en temps polynomial reste
ouverte.
11.2
Algorithme de Cantor-Zassenhaus
91
Bibliographie
[1] E. Berlekamp. Factoring polynomials over finite fields, Bell System
Tech. J. 46 (1967), 18531859.
[2] D. Cantor and H. Zassenhaus. A new algorithm for factoring polynomials
over finite fields, Math. Comp. 36 (1981), 587592.
[3] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction
to Algorithms, 2nd ed. Cambridge, Massachusetts : M.I.T. Press, 2001.
[4] D. Knuth. The Art of Computer Programming, Volume 2 : Seminumerical Algorithms. Addison-Wesley, Reading, MA, 1969.
92