Académique Documents
Professionnel Documents
Culture Documents
8. Optimisation combinatoire 2
1
Exemple Méthodes exactes
Problème d’optimisation combinatoire : X est
l’ensemble des tours possibles
Dans un graphe complet, il y a (n-1)!/2 tours
possibles, donc X est de très grande taille
Il n’existe pas d’algorithme efficace comme pour le
problème de l’arbre partiel minimum
Le mieux (empiriquement) est d’utiliser la
programmation en nombres entiers :
Dantzig-Fulkerson-Johnson 1954!
Aujourd’hui, on peut résoudre des problèmes ayant plus de
10000 villes : http://www.tsp.gatech.edu/
8. Optimisation combinatoire 5 8. Optimisation combinatoire 6
2
Inversion de sous-tours Inversion de sous-tours : exemple
Pour le problème du voyageur de commerce, on peut
définir plusieurs types de modification
Un type de modification possible consiste à inverser
l’ordre de visite d’une sous-séquence de villes
Par exemple, si la séquence de visite des villes est
1-2-3-4-5-6-7-1 et que nous choisissions d’inverser la
sous-séquence 3-4, la solution 1-2-4-3-5-6-7-1 serait
obtenue suite à cette modification
Sur notre exemple, on peut vérifier que la distance
totale passe de 69 à 65 suite à cette modification
pas de trouver une solution optimale Il y a deux modifications qui diminuent le plus la
Elle identifie plutôt un optimum local (par rapport au distance : on choisit la première
type de modification utilisé)
3
Exemple (suite) Exemple (suite)
Solution courante : 1-2-4-3-5-6-7-1 (65) Pourtant, la solution obtenue de valeur 64 n’est pas
Inversions de sous-tours : optimale : la solution 1-2-4-6-7-5-3-1 est de valeur
1-2-3-4-5-6-7-1 : 69 (solution précédente!) 63 et on peut vérifier qu’elle est optimale
1-2-4-6-5-3-7-1 : 64 Plusieurs métaheuristiques utilisent la même
Il n’y a qu’une seule modification qui diminue la approche (par type de modifications, ou voisinage)
distance totale : on la choisit que la descente, mais tentent d’éviter de demeurer
Inversions à partir de 1-2-4-6-5-3-7-1 : piégé dans un minimum local (recherche avec
1-2-4-3-5-6-7-1 : 65 (solution précédente!) tabous, recuit simulé)
1-2-4-6-5-7-3-1 : 66
D’autres tentent de combiner plusieurs solutions
Aucune modification n’améliore la valeur de l’objectif:
on arrête (populations) pour en générer de nouvelles
(algorithmes génétiques)
8. Optimisation combinatoire 13 8. Optimisation combinatoire 14
4
Recherche avec tabous (suite) Retour au voyageur de commerce
Contrairement à la méthode de descente, il n’y a pas Voisinage : inversion de sous-tours, ce qui implique
de critère d’arrêt simple l’ajout de deux liens et l’élimination de deux liens
Typiquement, on utilise une combinaison des critères Liste taboue : les deux liens ajoutés sont insérés
suivants : dans la liste taboue; une modification est taboue si
Nombre maximum d’itérations les deux liens à éliminer sont dans la liste taboue
Temps limite On ne conservera dans la liste taboue que les liens
Nombre d’itérations successives sans amélioration ajoutés lors des deux dernières itérations : on dit que
Il n’y a plus de modification possible la longueur de la liste taboue est 4
Adaptation de cette métaheuristique pour résoudre On arrête l’algorithme lorsque trois itérations
un problème particulier : structure de voisinage + consécutives sans amélioration ont été exécutées (ou
implantation de la liste taboue lorsqu’il n’y a plus de modification possible)
8. Optimisation combinatoire 17 8. Optimisation combinatoire 18
5
Recuit simulé Recuit simulé (suite)
Comme dans la recherche avec tabous, on permet A partir d’une solution courante, on effectue une
des modifications qui n’améliorent pas la valeur de modification au hasard qui nous amène à une
l’objectif solution candidate
Au lieu de choisir la modification la plus intéressante Zc = valeur de l’objectif pour la meilleure solution
parmi toutes les modifications possibles, on en choisit Zn = valeur de l’objectif pour la solution candidate
une au hasard T = paramètre appelé température, qui prend une
On va biaiser le choix vers des modifications qui valeur élevée lors des premières itérations, puis
améliorent ou tout au moins ne détériorent pas trop diminue au fil des itérations
la valeur de l’objectif Supposons un problème de maximisation
6
Retour au voyageur de commerce Exemple
Voisinage : inversion de sous-tours Solution initiale : 1-2-3-4-5-6-7-1; Zc = 69
Choix d’une modification au hasard : on choisit au Température initiale : T = 0,2.69 = 13,8
hasard le début et la fin de la sous-séquence à
Modification choisie au hasard : inverser la sous-
inverser (si l’inversion n’amène pas vers une solution
réalisable, on recommence jusqu’à ce qu’on obtienne séquence 3-4 → solution candidate 1-2-4-3-5-6-7-1;
une solution candidate réalisable) Zn = 65
La température initiale est fixée à T = 0,2.Zc, ce qui Puisque Zn ≤ Zc, on accepte cette modification
est relativement élevé comparé à Zn – Zc Solution courante : 1-2-4-3-5-6-7-1; Zc = 65
Ensuite, on divise la température par 2 à toutes les Modification choisie au hasard : inverser la sous-
cinq itérations séquence 3-5-6→ solution candidate 1-2-4-6-5-3-7-1;
On arrête après 25 itérations Zn = 64 : on l’accepte
8. Optimisation combinatoire 25 8. Optimisation combinatoire 26
7
Algorithmes génétiques (suite) Retour au voyageur de commerce
Étant donné une population de solutions, on évalue la Les solutions qui forment la population initiale sont
valeur de l’objectif (le degré d’adaptation) pour choisies au hasard
chacune Des parents sont choisis au hasard (mais on choisit
En biaisant le choix vers les solutions les mieux davantage parmi les mieux adaptés)
adaptées, on choisit les solutions qui seront croisées Supposons qu’on a les deux parents suivants :
pour devenir des parents P1 : 1-2-3-4-5-6-7-1
Chaque couple de parents donnera naissance à deux P2 : 1-2-4-6-5-7-3-1
enfants en croisant leurs caractéristiques (et en Afin de générer un enfant, on choisira pour chaque
permettant des mutations de temps en temps) sommet un lien choisi au hasard parmi les liens des
Ajouter les enfants à la population et éliminer de la deux parents
population les solutions les moins adaptées
8. Optimisation combinatoire 29 8. Optimisation combinatoire 30
8
Exemple (suite)
Cette procédure de génération d’un enfant inclut
également une mutation (avec probabilité < 0,1), qui
consiste à rejeter le lien choisi provenant d’un parent
et à choisir un lien au hasard parmi tous ceux
possibles
Il est possible que les choix successifs nous amènent
dans un cul-de-sac (aucun tour complet possible à
partir du tour partiel) : on reprend alors la procédure
depuis le début
Voir cet algorithme génétique dans IOR Tutorial
8. Optimisation combinatoire 33