Cours Anne Benoit
Travaux Dirig´es (2008-2009)
Benjamin Depardon, Christophe Mouilleron, Cl´ement Resvoy
Septembre 2009
1 Introduction : calcul dexn 9
1.1 Enonc´e du probl`eme . . . .´ 9
1.2 Algorithme na¨ıf . . . 9
1.3 M´ethode binaire . . . 9
1.4 M´ethode des facteurs . . . 10
1.5 Arbre de Knuth . . . 10
1.6 R´esultats sur la complexit´e . . . 11
1.7 Exercices . . . 12
1.8 R´ef´erences bibliographiques . . . 14
2 Diviser pour r´egner 15 2.1 Algorithme de Strassen . . . 15
2.2 Produit de deux polynˆomes . . . 17
2.3 Master theorem . . . 18
2.4 R´esolution des r´ecurrences . . . 19
2.4.1 R´esolution des r´ecurrences homog`enes . . . 19
2.4.2 R´esolution des r´ecurrences avec second membre . . . 19
2.5 Multiplication et inversion de matrices . . . 20
2.6 Exercices . . . 21
2.7 R´ef´erences bibliographiques . . . 23
3 Programmation dynamique 25 3.1 Pi`eces de Monnaies . . . 25
3.2 Le probl`eme du sac `a dos . . . 26
3.2.1 En glouton . . . 26
3.2.2 Par programmation dynamique . . . 26
3.3 Quelques exemples de programmation dynamique . . . 27
3.3.1 Chaˆınes de matrices . . . 27
3.3.2 Plus longue sous-suite . . . 28
3.3.3 Location de skis . . . 30
3.4 Exercices . . . 32
3.5 R´ef´erences bibliographiques . . . 34
4 Algorithmes gloutons 35 4.1 Exemple du gymnase . . . 35
4.2 Route `a suivre pour le glouton . . . 36
4.3 Coloriage d’un graphe . . . 37
4.3.1 Algorithme glouton 1 . . . 38
4.3.2 Algorithme glouton 2 . . . 38
4.3.3 Graphe d’intervalles . . . 39
4.3.4 Algorithme de Brelaz . . . 39
4.4 Th´eorie des matro¨ıdes . . . 41
4.4.1 Matro¨ıdes . . . 41
4.4.2 Algorithme glouton . . . 42
4.5 Ordonnancement . . . 42
4.6 Exercices . . . 44
4.7 R´ef´erences bibliographiques . . . 45
5 Tri 47 5.1 Tri fusion . . . 47
5.2 Tri par tas : Heapsort . . . 47
5.2.1 D´efinitions . . . 47
5.2.2 Tri par tas . . . 48
5.2.3 Insertion d’un nouvel ´el´ement . . . 48
5.2.4 Suppression d’un ´el´ement du tas . . . 49
5.2.5 Complexit´e du tri par tas . . . 49
5.3 Tri rapide . . . 49
5.3.1 Coˆut . . . 50
5.3.2 M´ediane en temps lin´eaire . . . 50
5.4 Complexit´e du tri . . . 51
5.4.1 Les grands th´eor`emes . . . 51
5.4.2 D´emonstration des th´eor`emes . . . 52
5.4.3 Peut-on atteindre la borne ? . . . 54
5.5 Exercices . . . 55
5.6 R´ef´erences bibliographiques . . . 57
6 Graphes 59 6.1 D´efinitions . . . 59
6.2 Arbres . . . 59
6.2.1 Caract´erisation . . . 59
6.2.2 Parcours d’arbres binaires . . . 60
6.2.3 Arbres binaires de recherche . . . 63
6.3 Structures de donn´ees pour les graphes . . . 65
6.4 Accessibilit´e . . . 69
6.4.1 Rappels sur les relations binaires . . . 69
6.4.2 Chemins dans les graphes . . . 70
6.4.3 Fermeture transitive . . . 70
6.5 Plus courts chemins . . . 73
6.5.1 D´efinitions . . . 73
6.5.2 Pr´esentation des plus courts chemins . . . 74
6.5.3 Avec des poids positifs . . . 74
6.5.4 Chemins alg´ebriques dans les semi-anneaux . . . 75
6.5.5 Algorithme de Dijkstra . . . 76
6.6 Parcours en largeur . . . 78
6.7 Parcours en profondeur . . . 80
6.7.1 Premi`ere version . . . 80
6.7.2 Analyse fine du parcours en profondeur . . . 81
6.8 Tri topologique . . . 82
6.9 Forte connexit´e . . . 83
7.1 Recherche en table . . . 89
7.2 Tables de hachage . . . 89
7.3 Collisions s´epar´ees . . . 90
7.4 Adressage ouvert . . . 91
7.5 R´ef´erences bibliographiques . . . 92
8 Analyse amortie 93 8.1 Compteur . . . 93
8.1.1 M´ethode des acomptes . . . 93
8.1.2 M´ethode du potentiel . . . 94
8.2 Malloc primaire . . . 94
8.2.1 M´ethode globale . . . 94
8.2.2 M´ethode des acomptes . . . 94
8.2.3 M´ethode du potentiel . . . 94
8.3 Insertion ET suppression . . . 95
8.4 Gestion des partitions . . . 95
8.4.1 Repr´esentation en listes chaˆın´ees . . . 95
8.4.2 Repr´esentation en arbres . . . 95
8.5 R´ef´erences bibliographiques . . . 96
9 N P-Compl´etude 97 9.1 Probl`emes deP . . . 97
9.1.1 Pens´ee du jour (PJ) . . . 97
9.1.2 D´efinition . . . 97
9.1.3 Exemples . . . 98
9.1.4 Solution d’un probl`eme . . . 99
9.2 Probl`emes deN P . . . 99
9.2.1 D´efinition . . . 99
9.2.2 Probl`emes NP-complets . . . 99
9.2.3 Exemples de probl`emes dansN P . . . 100
9.2.4 Probl`emes de d´ecision vs optimisation . . . 100
9.2.5 Exemple de probl`emes n’´etant pas forc´ement dansN P . . . 100
9.2.6 Probl`emes polynomiaux . . . 101
9.3 M´ethode de r´eduction . . . 102
9.4 3-SAT . . . 102
9.5 Clique . . . 104
9.6 Couverture par les sommets . . . 105
9.7 Cycle hamiltonien . . . 106
9.8 Coloration de graphes . . . 106
9.8.1 COLOR . . . 107
9.8.2 3-COLOR . . . 109
9.8.3 3-COLOR-PLAN . . . 110
9.9 Exercices . . . 112
9.10 R´ef´erences bibliographiques . . . 114