Algorithmique I - Cours et Travaux Dirigés L3

Telechargé par Ange Dabié
Algorithmique I - Cours et Travaux Dirig´es
L3, Ecole Normale Sup´erieure de Lyon
Anne Benoit
Septembre 2007
2
Table des mati`eres
1 Introduction : calcul de xn9
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Diviser pour r´egner 17
2.1 Algorithme de Strassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Produit de deux polynˆomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Master theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 R´esolution des r´ecurrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.1 R´esolution des r´ecurrences homog`enes . . . . . . . . . . . . . . . . . . . . 21
2.4.2 R´esolution des r´ecurrences avec second membre . . . . . . . . . . . . . . . 21
2.5 Multiplication et inversion de matrices . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6 Exercices ........................................ 23
2.7 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Programmation dynamique 33
3.1 Pi`eces de Monnaies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Le probl`eme du sac `a dos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.1 Englouton ................................... 34
3.2.2 Par programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Quelques exemples de programmation dynamique . . . . . . . . . . . . . . . . . . 35
3.3.1 Chaˆınes de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.2 Plus longue sous-suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.3 Location de skis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4 Exercices ........................................ 40
3.5 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4 Algorithmes gloutons 49
4.1 Exemple du gymnase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Route `a suivre pour le glouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Coloriage d’un graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.1 Algorithme glouton 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.3.2 Algorithme glouton 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3
4.3.3 Graphe d’intervalles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.4 Algorithme de Brelaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4 Th´eorie des matro¨ıdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4.1 Matro¨ıdes.................................... 55
4.4.2 Algorithme glouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.5 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6 Exercices ........................................ 58
4.7 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5 Tri 63
5.1 Trifusion ........................................ 63
5.2 Tri par tas : Heapsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2.1 D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2.2 Tripartas ................................... 64
5.2.3 Insertion d’un nouvel ´el´ement . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.4 Suppression d’un ´el´ement du tas . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.5 Complexit´e du tri par tas . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3 Trirapide ........................................ 65
5.3.1 Coˆut....................................... 66
5.3.2 M´ediane en temps lin´eaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4 Complexit´e du tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4.1 Les grands th´eor`emes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4.2 D´emonstration des th´eor`emes . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.3 Peut-on atteindre la borne ? . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.5 Exercices ........................................ 71
5.6 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 Graphes 87
6.1 D´enitions........................................ 87
6.2 Arbres.......................................... 87
6.2.1 Caract´erisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.2 Parcours d’arbres binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.3 Arbres binaires de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.3 Structures de donn´ees pour les graphes . . . . . . . . . . . . . . . . . . . . . . . . 93
6.4 Accessibilit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.1 Rappels sur les relations binaires . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 Chemins dans les graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 Fermeture transitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.5 Plus courts chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.5.1 D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.5.2 Pr´esentation des plus courts chemins . . . . . . . . . . . . . . . . . . . . . 101
6.5.3 Avec des poids positifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.5.4 Chemins alg´ebriques dans les semi-anneaux . . . . . . . . . . . . . . . . . 102
6.5.5 Algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.6 Parcours en largeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.7 Parcours en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.7.1 Premi`ere version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.7.2 Analyse fine du parcours en profondeur . . . . . . . . . . . . . . . . . . . 108
6.8 Tri topologique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.9 Forte connexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4
6.10Exercices ........................................110
6.11 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7 Tables de hachage 119
7.1 Recherche en table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.2 Tables de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.3 Collisions s´epar´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.4 Adressage ouvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.5 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8 Analyse amortie 123
8.1 Compteur........................................123
8.1.1 M´ethode des acomptes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.1.2 M´ethode du potentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2 Malloc primaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2.1 M´ethode globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2.2 M´ethode des acomptes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2.3 M´ethode du potentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.3 Insertion ET suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.4 Gestion des partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.4.1 Repr´esentation en listes chaˆın´ees . . . . . . . . . . . . . . . . . . . . . . . 125
8.4.2 Repr´esentation en arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.5 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
9NP-Compl´etude 127
9.1 Probl`emes de P.....................................127
9.1.1 Pens´ee du jour (PJ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
9.1.2 D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
9.1.3 Exemples ....................................128
9.1.4 Solution d’un probl`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
9.2 Probl`emes de NP ...................................129
9.2.1 D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
9.2.2 Probl`emes NP-complets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
9.2.3 Exemples de probl`emes dans NP .......................130
9.2.4 Probl`emes de d´ecision vs optimisation . . . . . . . . . . . . . . . . . . . . 130
9.2.5 Exemple de probl`emes n’´etant pas forc´ement dans NP ...........130
9.2.6 Probl`emes polynomiaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
9.3 M´ethode de eduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.4 3-SAT ..........................................132
9.5 Clique ..........................................134
9.6 Couverture par les sommets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.7 Cycle hamiltonien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
9.8 Coloration de graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
9.8.1 COLOR.....................................137
9.8.2 3-COLOR....................................139
9.8.3 3-COLOR-PLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
9.9 Exercices ........................................142
9.10 R´ef´erences bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
5
1 / 163 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!