Академический Документы
Профессиональный Документы
Культура Документы
Un algorithme heuristique permet didentifier au moins une solution ralisable un problme doptimisation, mais sans garantir que cette solution soit optimale Exemple : appliquer une fois la mthode du gradient un modle de programmation non convexe Une mtaheuristique est une stratgie gnrale, applicable un grand nombre de problmes, partir de laquelle on peut driver un algorithme heuristique pour un problme particulier
8. Optimisation combinatoire 2
8. Optimisation combinatoire
Optimisation combinatoire
Domaine qui tudie les problmes de la forme :
max xX f ( x)
o X est un ensemble fini, mais de trs grande taille Exemples :
Problme de larbre partiel minimum : X est lensemble de tous les arbres partiels possibles Programmation linaire : X est lensemble de tous les points extrmes du domaine ralisable
Dans ces deux exemples, on peut faire beaucoup mieux que dnumrer toutes les solutions Pour dautres problmes, on ne sait pas vraiment faire beaucoup mieux!!!
8. Optimisation combinatoire
Exemple
Mthodes exactes
Problme doptimisation combinatoire : X est lensemble des tours possibles Dans un graphe complet, il y a (n-1)!/2 tours possibles, donc X est de trs grande taille Il nexiste pas dalgorithme efficace comme pour le problme de larbre partiel minimum Le mieux (empiriquement) est dutiliser la programmation en nombres entiers :
Dantzig-Fulkerson-Johnson 1954! Aujourdhui, on peut rsoudre des problmes ayant plus de 10000 villes : http://www.tsp.gatech.edu/
8. Optimisation combinatoire 5 8. Optimisation combinatoire 6
Mthodes heuristiques
Il faut tre conscient que ces mthodes exactes peuvent prendre beaucoup de temps, surtout lorsque les problmes sont de grande taille Une autre approche consiste utiliser des mthodes heuristiques visant identifier rapidement de bonnes solutions On les classe souvent en deux catgories :
Mthodes constructives : permettent de construire une solution ralisable Mthodes damlioration : permettent de visiter plusieurs solutions ralisables en tentant damliorer la valeur de lobjectif (lobjet de notre tude)
8. Optimisation combinatoire 7
Inversion de sous-tours
Pour le problme du voyageur de commerce, on peut dfinir plusieurs types de modification Un type de modification possible consiste inverser lordre de visite dune sous-squence de villes Par exemple, si la squence de visite des villes est 1-2-3-4-5-6-7-1 et que nous choisissions dinverser la sous-squence 3-4, la solution 1-2-4-3-5-6-7-1 serait obtenue suite cette modification Sur notre exemple, on peut vrifier que la distance totale passe de 69 65 suite cette modification
8. Optimisation combinatoire 9
8. Optimisation combinatoire
10
Exemple
Solution initiale : 1-2-3-4-5-6-7-1 (69) Inversions de sous-tours (les autres possibilits ne mnent pas une solution ralisable) :
1-3-2-4-5-6-7-1 1-2-4-3-5-6-7-1 1-2-3-5-4-6-7-1 1-2-3-4-6-5-7-1 : : : : 68 65 65 66
8. Optimisation combinatoire
12
Exemple (suite)
Solution courante : 1-2-4-3-5-6-7-1 (65) Inversions de sous-tours :
1-2-3-4-5-6-7-1 : 69 (solution prcdente!) 1-2-4-6-5-3-7-1 : 64
Exemple (suite)
Pourtant, la solution obtenue de valeur 64 nest pas optimale : la solution 1-2-4-6-7-5-3-1 est de valeur 63 et on peut vrifier quelle est optimale Plusieurs mtaheuristiques utilisent la mme approche (par type de modifications, ou voisinage) que la descente, mais tentent dviter de demeurer pig dans un minimum local (recherche avec tabous, recuit simul) Dautres tentent de combiner plusieurs solutions (populations) pour en gnrer de nouvelles (algorithmes gntiques)
8. Optimisation combinatoire 14
Il ny a quune seule modification qui diminue la distance totale : on la choisit Inversions partir de 1-2-4-6-5-3-7-1 :
1-2-4-3-5-6-7-1 : 65 (solution prcdente!) 1-2-4-6-5-7-3-1 : 66
8. Optimisation combinatoire
16
Adaptation de cette mtaheuristique pour rsoudre un problme particulier : structure de voisinage + implantation de la liste taboue
8. Optimisation combinatoire 17
Exemple
Reprenons le mme exemple : la recherche avec tabous effectue les mmes modifications que la descente, mais gre galement la liste taboue Solution initiale : 1-2-3-4-5-6-7-1 (69) Itration 1 :
Inversion de la sous-squence 3-4 ajout des liens 2-4 et 3-5 Liste taboue = 2-4, 3-5 Nouvelle solution : 1-2-4-3-5-6-7-1 (65)
Exemple (suite)
partir de la solution courante 1-2-4-6-5-3-7-1, il y a deux modifications :
Inversion de la sous-squence 6-5-3 limination des liens 4-6 et 3-7, mais les deux sont dans la liste taboue : modification taboue Inversion de la sous-squence 3-7 ajout des liens 5-7 et 3-1, limination des liens 5-3 et 7-1 Liste taboue = 4-6, 3-7, 5-7, 3-1 Nouvelle solution : 1-2-4-6-5-7-3-1 (66 > 65)
Itration 2 :
Inversion de la sous-squence 3-5-6 ajout des liens 4-6 et 3-7 Liste taboue = 2-4, 3-5, 4-6, 3-7 Nouvelle solution : 1-2-4-6-5-3-7-1 (64)
8. Optimisation combinatoire 19
8. Optimisation combinatoire
20
Recuit simul
Comme dans la recherche avec tabous, on permet des modifications qui namliorent pas la valeur de lobjectif Au lieu de choisir la modification la plus intressante parmi toutes les modifications possibles, on en choisit une au hasard On va biaiser le choix vers des modifications qui amliorent ou tout au moins ne dtriorent pas trop la valeur de lobjectif
8. Optimisation combinatoire
21
8. Optimisation combinatoire
22
Prob(acceptation) = ex 0,990 0,905 0,779 0,607 0,368 0,135 0,050 0,018 0,007
24
Exemple
Solution initiale : 1-2-3-4-5-6-7-1; Zc = 69 Temprature initiale : T = 0,2.69 = 13,8 Modification choisie au hasard : inverser la soussquence 3-4 solution candidate 1-2-4-3-5-6-7-1; Zn = 65 Puisque Zn Zc, on accepte cette modification Solution courante : 1-2-4-3-5-6-7-1; Zc = 65 Modification choisie au hasard : inverser la soussquence 3-5-6 solution candidate 1-2-4-6-5-3-7-1; Zn = 64 : on laccepte
8. Optimisation combinatoire 26
Exemple (suite)
Solution courante : 1-2-4-6-5-3-7-1; Zc = 64 Modification choisie au hasard : inverser la soussquence 3-7 solution candidate 1-2-4-6-5-7-3-1; Zn = 66 Puisque Zn > Zc, Prob(acceptation) = e(-2/13,8) = 0,865 On gnre un nombre selon une loi U[0,1] : si ce nombre est < 0,865, on accepte la modification, sinon, on la refuse Voyons cet algorithme dans IOR Tutorial La mme approche peut tre adapte pour rsoudre des modles de programmation non convexe (voir dans IOR Tutorial)
8. Optimisation combinatoire 27
Algorithmes gntiques
Ces mtaheuristiques sont bases sur une analogie entre le processus de gnration dune population de solutions et la thorie de lvolution Les solutions (individus) survivent et deviennent parents en croisant leurs caractristiques (gnes), ce qui donne de nouvelles solutions, les enfants Des mutations peuvent galement intervenir permettant aux solutions dacqurir des caractristiques qui ne se retrouvent pas chez leurs parents
8. Optimisation combinatoire 28
Afin de gnrer un enfant, on choisira pour chaque sommet un lien choisi au hasard parmi les liens des deux parents
8. Optimisation combinatoire 30
Exemple
P1 : 1-2-3-4-5-6-7-1 et P2 : 1-2-4-6-5-7-3-1 Pour le sommet 1, on peut choisir 1-2 ou 1-7 (P1) ou 1-2 ou 1-3 : P(1-2) = , P(1-7) = , P(1-3) = Supposons quon choisit 1-2 Pour le sommet 2, on peut choisir 2-3 ou 2-4 Supposons quon choisit 2-4 : 1-2-4 Pour le sommet 4, on peut choisir 4-3 ou 4-5 ou 4-6 Supposons quon choisit 4-3 : 1-2-4-3 Pour le sommet 3, on peut choisir 3-7, mais rien dautre!...
8. Optimisation combinatoire 31
Exemple (suite)
Pour offrir plus de choix, on va considrer que la tourne construite jusqu maintenant (1-2-4-3) est une inversion de celle de P1 : 1-2-3-4-5-6-7-1 Pour complter linversion de 3-4, on ajouterait le lien 3-5, quon considre alors comme un choix possible pour lenfant Supposons quon fasse ce choix : 1-2-4-3-5 Les choix sont alors : 5-6 (P1) ou 5-6 ou 5-7 (P2) Choisissons 5-6 : 1-2-4-3-5-6 On doit alors complter le tour : 1-2-4-3-5-6-7-1
8. Optimisation combinatoire 32
Exemple (suite)
Cette procdure de gnration dun enfant inclut galement une mutation (avec probabilit < 0,1), qui consiste rejeter le lien choisi provenant dun parent et choisir un lien au hasard parmi tous ceux possibles Il est possible que les choix successifs nous amnent dans un cul-de-sac (aucun tour complet possible partir du tour partiel) : on reprend alors la procdure depuis le dbut Voir cet algorithme gntique dans IOR Tutorial
8. Optimisation combinatoire 33