Vous êtes sur la page 1sur 9

Heuristique et mtaheuristique

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

IFT1575 Modles de recherche oprationnelle (RO)

8. Optimisation combinatoire

Optimisation combinatoire
Domaine qui tudie les problmes de la forme :

Problme du voyageur de commerce


Un voyageur de commerce doit visiter un certain nombre de villes Il doit visiter chaque ville une et une seule fois tant donn des distances entre chaque paire de villes, il doit minimiser la distance totale parcourue On peut reprsenter ce problme par un graphe : chaque ville correspond un sommet et chaque arte une paire de villes pouvant tre visites lune la suite de lautre Le problme correspond trouver un tour complet (circuit Hamiltonien) dans ce graphe qui minimise la somme des distances
3 8. Optimisation combinatoire 4

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

Mthode de monte (descente)


tant donn une solution ralisable initiale, on tente de lamliorer par une modification dun certain type Dans lensemble de toutes les modifications dun certain type, on choisit celle qui amliore le plus la valeur de lobjectif (sil y en a une!) Cette approche est une mtaheuristique, appele mthode de monte (max) ou de descente (min) Exemple : mthode du gradient en programmation non linaire
Modification : faire un pas dans la direction du gradient On calcule la modification (t*) qui amliore le plus la valeur de lobjectif
8. Optimisation combinatoire 8

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

Inversion de sous-tours : exemple

8. Optimisation combinatoire

10

Descente par inversion de sous-tours


Identifier une solution ralisable initiale Considrer toutes les inversions de sous-tours et choisir celle qui amliore le plus la distance totale parcourue par le nouveau tour ainsi obtenu Arrter sil ny a aucune inversion de sous-tours qui permette damliorer la distance totale parcourue Cette mthode est intressante, mais elle ne garantit pas de trouver une solution optimale Elle identifie plutt un optimum local (par rapport au type de modification utilis)
8. Optimisation combinatoire 11

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

Il y a deux modifications qui diminuent le plus la distance : on choisit la premire

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

Aucune modification namliore la valeur de lobjectif: on arrte


8. Optimisation combinatoire 13

Recherche avec tabous


Lide de cette mthode est de permettre des modifications qui namliorent pas la valeur de lobjectif Toutefois, on choisira toujours la meilleure modification possible Mais nous venons de voir quune des modifications possibles nous ramne la solution prcdente Il faut donc changer la dfinition de lensemble des modifications possibles pour interdire celles qui nous ramnent la solution prcdente
8. Optimisation combinatoire 15

Recherche avec tabous (suite)


cette fin, on conservera une liste des dernires modifications effectues en rendant taboue (en interdisant) la modification inverse Cette liste taboue peut tre vue comme une mmoire court terme permettant de guider la recherche A chaque itration, on choisit la meilleure modification possible (excluant celles qui sont taboues), puis on met jour cette liste en ajoutant la modification inverse de celle effectue

8. Optimisation combinatoire

16

Recherche avec tabous (suite)


Contrairement la mthode de descente, il ny a pas de critre darrt simple Typiquement, on utilise une combinaison des critres suivants :
Nombre maximum ditrations Temps limite Nombre ditrations successives sans amlioration Il ny a plus de modification possible

Retour au voyageur de commerce


Voisinage : inversion de sous-tours, ce qui implique lajout de deux liens et llimination de deux liens Liste taboue : les deux liens ajouts sont insrs dans la liste taboue; une modification est taboue si les deux liens liminer sont dans la liste taboue On ne conservera dans la liste taboue que les liens ajouts lors des deux dernires itrations : on dit que la longueur de la liste taboue est 4 On arrte lalgorithme lorsque trois itrations conscutives sans amlioration ont t excutes (ou lorsquil ny a plus de modification possible)
8. Optimisation combinatoire 18

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

Voyons cet algorithme implant dans IOR Tutorial

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

Recuit simul (suite)


A partir dune solution courante, on effectue une modification au hasard qui nous amne une solution candidate Zc = valeur de lobjectif pour la meilleure solution Zn = valeur de lobjectif pour la solution candidate T = paramtre appel temprature, qui prend une valeur leve lors des premires itrations, puis diminue au fil des itrations Supposons un problme de maximisation

8. Optimisation combinatoire

21

8. Optimisation combinatoire

22

Recuit simul (suite)


Si Zn Zc accepter la solution candidate Si Zn < Zc accepter la solution candidate avec une probabilit ex, o x = (Zn Zc)/T Si T est lev, x est prs de 0 et alors ex est lev : on a de fortes chances daccepter la modification mme si elle mne une moins bonne solution Si T est petit, x est prs de 0 lorsque Zn est prs de Zc et alors ex est lev : on a de fortes chances daccepter une modification qui ne dtriore pas trop la valeur de lobjectif Pour un problme de minimisation, on inverse Zn et Zc dans la formule
8. Optimisation combinatoire 23

Recuit simul (suite)


x = (Zn Zc)/T
-0,01 -0,1 -0,25 -0,5 -1 -2 -3 -4 -5
8. Optimisation combinatoire

Prob(acceptation) = ex 0,990 0,905 0,779 0,607 0,368 0,135 0,050 0,018 0,007
24

Retour au voyageur de commerce


Voisinage : inversion de sous-tours Choix dune modification au hasard : on choisit au hasard le dbut et la fin de la sous-squence inverser (si linversion namne pas vers une solution ralisable, on recommence jusqu ce quon obtienne une solution candidate ralisable) La temprature initiale est fixe T = 0,2.Zc, ce qui est relativement lev compar Zn Zc Ensuite, on divise la temprature par 2 toutes les cinq itrations On arrte aprs 25 itrations
8. Optimisation combinatoire 25

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

Algorithmes gntiques (suite)


tant donn une population de solutions, on value la valeur de lobjectif (le degr dadaptation) pour chacune En biaisant le choix vers les solutions les mieux adaptes, on choisit les solutions qui seront croises pour devenir des parents Chaque couple de parents donnera naissance deux enfants en croisant leurs caractristiques (et en permettant des mutations de temps en temps) Ajouter les enfants la population et liminer de la population les solutions les moins adaptes
8. Optimisation combinatoire 29

Retour au voyageur de commerce


Les solutions qui forment la population initiale sont choisies au hasard Des parents sont choisis au hasard (mais on choisit davantage parmi les mieux adapts) Supposons quon a les deux parents suivants :
P1 : 1-2-3-4-5-6-7-1 P2 : 1-2-4-6-5-7-3-1

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

Vous aimerez peut-être aussi