methodes d`optimisation combinatoire resume table des

publicité
METHODES D’OPTIMISATION COMBINATOIRE
IRENE CHARON, OLIVIER HUDRY, ANNE GERMA
RESUME
Cet ouvrage propose une introduction aux méthodes généralement utilisées
dans le domaine de l'optimisation combinatoire. Son objectif est double :
proposer un ensemble de modélisations classiques, à l'aide principalement de
la théorie des graphes et de la programmation linéaire ; décrire un ensemble de
méthodes exactes ou approchées pour résoudre les problèmes d'optimisation
ainsi modélisés Composé de trois parties (programmation linéaire, algorithmes
dans les graphes, méthodes d'optimisation combinatoire), l'ouvrage propose de
nombreux exercices, tous corrigés. Issu d'un cours de première et deuxièmes
années de l'Ecole Nationale Supérieure des Télécommunications, il s'adresse
aux élèves des écoles d'ingénieurs, aux étudiants de deuxième cycle, ainsi
qu'à tous ceux (ingénieurs, chercheurs...) qui souhaitent se familiariser avec
les méthodes d'optimisation combinatoire le plus souvent utilisées.
TABLE DES MATIERES
Introduction
1
I. L'algorithme du simplexe
I.1.Introduction
I.2.L'algorithme du simplexe appliqué à un exemple
I.3.La dégénérescence et le cyclage
I.4.Recherche d'un dictionnaire réalisable
I.5.Annexe : la forme du pivot
I.6.Exercices
5
5
7
10
13
15
16
II. Forme matricielle de la méthode du simplexe
II.1 Généralités
II.2.Version matricielle d'une itération de la méthode du simplexe
II.2.1.Recherche d'une variable entrante
II.2.2.Recherche d'une variable sortante
II.2.3.Actualisation
II.2.4.Résumé
II.3.Un exemple d'application de la méthode
II.4.Application au problème de découpe
II.5.Exercice
19
19
21
21
22
22
22
23
26
31
III. Dualité
III.1.Définition du problème dual
III.2.Théorème de la dualité
III.3.Le théorème des écarts complémentaires : un certificat d'optimalité
III.4.La signification économique du dual
III.5.Problème dual-réalisable
III.6.Exercices
33
33
34
37
38
40
41
IV. Généralités sur les graphes. Arbre couvrant de poids minimum
IV.1.Introduction à la théorie des graphes et définitions
IV.2.Représentation des graphes en machine
IV.2.1.Matrice d'adjacence (sommets-sommets)
IV.2.2.Tableau de listes d'adjacence
IV.3.Complexité d'un algorithme
IV.4.Le problème de l'arbre couvrant de poids minimum
IV.4.1.Définition du problème
IVA.2.Une application en réseaux
43
43
44
45
45
46
47
47
47
IVA.2.Une application en réseaux
IV.4.3.Une application en traitement d'images
IV.4.4.Algorithme de Kruskal
IV.4.5.Algorithme de Prim
IV.5.Exercices
47
48
48
50
52
V. Problèmes de plus courts chemins
V.1.Définition des différents problèmes
V.1.1.Définitions nécessaires à ce chapitre
V.1.2.Problèmes
V.2.Plus courts chemins d'un sommet à tous les autres : cas des valuations positives
V.2.1.Motivation
V.2.2.Algorithme de Dijkstra
V.3.Plus courts chemins d'un sommet à tous les autres : cas des graphes sans circuit
V.3.1.Motivation
V.3.2.Algorithme de Bellman
V.4.Plus courts chemins d'un sommet à tous les autres : cas général
V.4.1.Motivation
V.4.2.Algorithme de Ford
V.4.3.Algorithme général de Ford-Dantzig
V.5.Plus courts chemins de tout sommet à tout sommet : cas général
V.6.Exercices
55
55
55
56
57
57
58
60
60
60
62
62
62
63
64
65
VI. Parcours de graphes
VI.1.Définition d'un algorithme de « parcours de graphe »
VI.1.1.Cas orienté
VI.1.2.Cas non orienté
VI.1.3.Complexité
VI.2.Les parcours « marquer-examiner »
VI.2.1.Généralités
VI.2.2.Résultat d'un parcours « marquer-examiner » selon une file le parcours en largeur
VI.2.3.Résultat d'un parcours « marquer-examiner » suivant une pile
VI.3.Les parcours en profondeur
VI.3.1.Le cas orienté
VI.3.2.Le cas non orienté
VI.4 Applications des parcours en profondeur
VI.4.1.Application à la détermination des composantes fortement connexes
VI.4.2.Application à la détermination des sommets d'articulation d'un graphe non orienté
VI.4.3.Application à la détermination des composantes 2‑connexes d'un graphenon orienté
VI.5 Exercices
69
69
69
72
72
73
73
74
74
74
74
76
78
78
80
82
84
VII. Flot maximum et coupe de capacité minimum
VII.I.Introduction, théorème du flot et de la coupe
VII.1.1.Introduction
VII.1.2.Définitions, notations et problèmes
VII.1.3.Résultats théoriques
VII.1.4.Lien avec la programmation linéaire
VII.2.Algorithme de Ford et Fulkerson
VII.2.1.Chaîne augmentante
VII.2.2.Description de l'algorithme de Ford et Fulkerson
VII.2.3.Un exemple
VII.2.4.Preuve, convergence et complexité de l'algorithme
VII.3.Compléments : algorithme de Dinic et algorithme de Busacker et Gowen
VII.3.1.Graphe d'écart
VII.3.2.Algorithme de Dinic
VII.3.3.Algorithme de Busacker et Gowen
VII.4.Exercice
85
85
85
86
86
87
88
88
89
91
92
93
94
94
95
96
VIII. Applications de la théorie des flots
VIII.1.Application à la détermination des connectivités d'un graphe
VIII.1.1.Forte arc-connectivité d'un graphe orienté
97
97
97
VIII.1.2.Détermination de l'arête connectivité d'un graphe non orienté
VIII.1.3.Forte connectivité d'un graphe orienté, connectivité d'un graphe non orienté
VIII.2.Couplage maximum dans un graphe biparti
VIII.2.1.Un exemple et quelques définitions
VIII.2.2.Modélisation d'un problème d'affectation et solution du problème des mariages
VIII.3.Exercice
IX. Le problème de transport
IX.1.Position du problème
IX.2.Arbres réalisables
IX.3.Recherche d'une solution optimale à partir d'une solution réalisable
IX.4.Recherche d'un arbre réalisable
99
100
101
101
102
103
105
105
107
108
112
IX.4.Recherche d'un arbre réalisable
IX.5.Modélisation et résolution à l'aide de la théorie des flots
IX.6.Exercices
112
113
114
X. Complexité d'un problème
X.1.Présentation et premières définitions
X.1.1.Problème du voyageur de commerce
X.1.2.Taille d'une instance
X.1.3.Machine de Turing et complexité d'un algorithme
X.1.4.Problème de reconnaissance
X.2.Classes P et NP ; problèmes NP-complets
X.2.1.La classe P
X.2.2.La classe NP
X.2.3.Problèmes NP‑complets
X.2.4.Problèmes NP‑difficiles
X.3.Exercices
117
117
117
118
118
121
123
123
123
124
128
129
XI. Méthodes par séparation et évaluation
XI.1.Introduction
XI.2.Problème du sac à dos : méthodes heuristiques
XI.2.1.Première heuristique
XI.2.2.Seconde heuristique
XI.3.Méthode par séparation et évaluation pour le problème du sac à dos
XI.3.1.Principe de séparation
XI.3.2.Principe d'évaluation et utilisation de la borne
XI.3.3.Stratégie de développement
XI.3.4.Application au problème de sac à dos
XI4.Application au problème du voyageur de commerce
XI.4.1.Forme linéaire en 0‑1 du problème du voyageur de commerce
XI.4.2.Définition d'une fonction d'évaluation
XI.4.3.Description d'une méthode par séparation et évaluation
XI.5.Exercices
131
131
132
133
133
133
134
135
136
137
138
138
139
139
140
XII. La programmation dynamique
XII.l.Les problèmes de la partition et du sac à dos
XII.1.1.Le problème de la partition
XII.1.2.Résolution du problème de la partition par la programmation dynamique
XII.1.3.Résolution du problème du sac à dos par la programmation dynamique
XII.2.Un problème d'entrepôt
XII.3.Le problème du voyageur de commerce
XII.4.Complexité de la méthode utilisée
XII.5.Exercices
141
141
141
142
143
144
146
148
149
XIII. Relaxation la grangienne
XIII.1.Position du problème
XIII.2.Résolution du problème dual
XIII.2.1.Principe de la méthode
XIII.2.2.Etude du problème de chemin de coût minimum à une contrainte
XIII.3.Maximum du minimum d'une famille de fonctions linéaires
XIII.4.Exercice
153
153
155
155
157
161
163
XIV. Méthodes approchées définies par un voisinage
XIV.1.Introduction
XIV.1.1.La fable des randonneurs
165
165
165
XIV.1.2.Formulation du problème
XIV.2.Principe des méthodes de descente (méthodes d'amélioration itérative)
XIV.2.1.Voisinage d'une solution
167
167
168
XIV.2.2.Quelques voisinages habituels
XIV.2.3.Exemple : le problème du voyageur de commerce
XIV.2.4. Schéma général d'une descente
XIV.2.5. Algorithmes gloutons
XIV.2.6. Méthodes par partitionnement
XIV.3. Le recuit simulé
XIV.3.1. Une analogie avec la thermodynamique
XIV.3.2. Schéma du recuit simulé
XIV.3.3. Interprétation de cette méthode, appliquée au problème du voyageur de commerce
XIV.3.4. Modèles de recuit
XIV.3.5. Exemple d'application : le problème du voyageur de commerce euclidien
XIV.4. La méthode Tabou
XIV.4.1. Principe de la méthode Tabou
XIV.4.2. Amélioration de la méthode Tabou
XIV.4.3. Un exemple d'application : le partitionnement de graphes
XIV.5. Exercices
168
169
170
171
172
173
173
174
176
177
180
181
181
183
183
185
XIV.5. Exercices
185
XV. Algorithmes génétiques
XV.1. Introduction : de la génétique à l'algorithmique
XV.2. Principe des algorithmes génétiques
XV.2.1. Le codage
XV.2.2. La sélection
XV.2.3. Le croisement
XV.2.4. La mutation
XV.2.5. Autres opérateurs
XV.3. La théorie des schémas
XV.4. Application à un problème d'antennes
XV.4.1. Codage
XV.4.2. Croisement
XV.4.3. Mutation
XV.4.4. Résultats
XV.5.Exercices
187
187
188
189
190
192
193
193
194
195
195
195
196
196
196
Corrigés des exercices
1.Chapitre I
2.Chapitre II
3.Chapitre III
4.Chapitre IV
5.Chapitre V
6.Chapitre VI
7.Chapitre VII
8.Chapitre VIII
9.Chapitre IX
10.Chapitre X
11.Chapitre XI
12.Chapitre XII
13.Chapitre XIII
14.Chapitre XIV
15.Chapitre XV
199
199
205
206
216
218
223
227
229
230
238
241
246
250
257
260
Bibliographie
Index
263
265
TOP
Téléchargement