Vous êtes sur la page 1sur 11

Heuristique et mtaheuristique

IFT1575 Modles de recherche oprationnelle (RO)




8. Optimisation combinatoire
et mtaheuristiques

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

Optimisation combinatoire


Problme du voyageur de commerce

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

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
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 :



8. Optimisation combinatoire

Mthodes heuristiques


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

8. Optimisation combinatoire

Mthode de monte (descente)

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 :


Dantzig-Fulkerson-Johnson 1954!
Aujourdhui, on peut rsoudre des problmes ayant plus de
10000 villes : http://www.tsp.gatech.edu/

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

Inversion de sous-tours


Inversion de sous-tours : exemple

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

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

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

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

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 :



Exemple (suite)

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




8. Optimisation combinatoire

14

Recherche avec tabous (suite)

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

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)

15

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 :





Retour au voyageur de commerce

Nombre maximum ditrations


Temps limite
Nombre ditrations successives sans amlioration
Il ny a plus de modification possible




8. Optimisation combinatoire

partir de la solution courante 1-2-4-6-5-3-7-1, il y a


deux modifications :


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)

Itration 2 :


18

Exemple (suite)

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 :


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)

17

Exemple


Adaptation de cette mtaheuristique pour rsoudre


un problme particulier : structure de voisinage +
implantation de la liste taboue
8. Optimisation combinatoire

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

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 > 64)

Voyons cet algorithme implant dans IOR Tutorial

8. Optimisation combinatoire

20

Recuit simul


Recuit simul (suite)

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




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

A partir dune solution courante, on effectue une


modification au hasard qui nous amne une
solution candidate
Zc = valeur de lobjectif pour la solution courante
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

21

Recuit simul (suite)




23

x = (Zn Zc)/T

Prob(acceptation) = ex

-0,01

0,990

-0,1

0,905

-0,25

0,779

-0,5

0,607

-1

0,368

-2

0,135

-3

0,050

-4

0,018

-5

0,007
8. Optimisation combinatoire

24

Retour au voyageur de commerce





Exemple

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











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

Algorithmes gntiques

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

25

Exemple (suite)


27

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)




Retour au voyageur de commerce

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








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 :



29

Exemple


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 (suite)

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






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)


Programmation par contraintes (PPC)

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

Expression dune relation entre des variables


Algorithme de rduction de domaine
8. Optimisation combinatoire

34

Rduction de domaine


Mathmatiques: x + y < z
Logiques: si x = 5 et y 3, alors 6 z 8
Relationnelles: x, y et z doivent avoir des valeurs
diffrentes
Explicites: (x,y,z) peut prendre les valeurs (1,1,1),
(2,4,5) ou (3,4,6)
Un langage (au sens informatique) de programmation
par contraintes doit permettre lexpression de ces
diffrents types de contraintes




Algorithme associ chaque contrainte permettant


dliminer des valeurs des domaines des variables
impliques dans lexpression de cette contrainte
Exemple: la contrainte alldiff
alldiff(x1, x2, , xn) veut dire que les n variables doivent
toutes prendre des valeurs diffrentes
Si x1 {1,2}, x2 {1,2}, x3 {1,2,3}, x4 {1,2,3,4,5},
alors lalgorithme de rduction de domaine pour alldiff
dduit que :




8. Optimisation combinatoire

Des variables domaine fini


Des contraintes sur les valeurs de ces variables

Dveloppement de langages informatiques permettant


de reprsenter et rsoudre de tels problmes
Contrainte


Types de contraintes


Domaine de linformatique (souvent associ


lintelligence artificielle) sintressant la rsolution de
problmes de nature combinatoire impliquant:

35

x3 ne peut prendre les valeurs 1 et 2


x4 ne peut prendre les valeurs 1, 2 et 3

Rsultat: x1 {1,2}, x2 {1,2}, x3 {3}, x4 {4,5}


8. Optimisation combinatoire

36

Propagation de contraintes





Recherche de solutions

Mcanisme par lequel les rductions de domaines se


propagent dune contrainte lautre
Ajoutons la contrainte x1 + x3 = 4 dans notre exemple
Lalgorithme de rduction de domaine pour cette
contrainte dduit que x1 ne peut prendre la valeur 2,
do x1 {1}
Si on applique nouveau lalgorithme de rduction de
domaine pour alldiff, on dduit que x2 {2}: il y a eu

propagation de contraintes

8. Optimisation combinatoire

37

8. Optimisation combinatoire

Optimisation combinatoire et PPC




Soit un problme doptimisation combinatoire

Si on a une reprsentation (un modle) de lensemble X


laide dun langage de PPC, on peut alors rsoudre un
tel problme:


En appliquant un algorithme de construction de larbre des


solutions dans lequel on applique chaque sommet la
combinaison rduction de domaine/propagation de contraintes
On ajoute une variable Z reprsentant la valeur de lobjectif et
une contrainte Z L: la borne infrieure peut tre amliore
chaque fois quune nouvelle solution est identifie
Idalement, on aimerait aussi ajouter une contrainte Z U
8. Optimisation combinatoire

38

Problme daffectation

max xX f ( x)


Lorsque le domaine de chaque variable est rduit une


seule valeur, on obtient une solution (ou instanciation)
La combinaison rduction de domaine/propagation de
contraintes ne fournit pas ncessairement des solutions
Il faut alors recourir un algorithme de recherche de
solutions: le plus courant procde la construction de
larbre des solutions comme dans lalgorithme de branchand-bound en programmation en nombres entiers (PNE)
Dans notre exemple, on choisirait la variable non
instancie x4 et on gnrerait les deux alternatives
(sommets) x4 = 4 et x4 = 5





39

n tches affecter n machines de telle sorte que


chaque machine soit affecte une seule tche et
chaque tche soit affecte une seule machine
Si on affecte la tche j la machine i, il en cote cij
Lobjectif est de minimiser la somme des cots
Il sagit dun problme doptimisation combinatoire: X est
lensemble de toutes les affectations possibles des n
tches aux n machines (il y en a n!)

8. Optimisation combinatoire

40

10

Modle de PNE


Modle de PPC

Variables:
1 si la machine i est affecte la tche j
xij =
0 sinon
n
n
Objectif:
min Z = cij xij

element(y, [c1,c2,,cn], z): contrainte qui affecte z la


yme valeur du vecteur [c1,c2,,cn] (z = cy)
Variables:



i =1 j =1

Contraintes:

ij

yi = tche laquelle est affecte la machine i : yi {1,2,,n}


zi = contribution la valeur de lobjectif de laffectation de la
machine i : zi {ci1,ci2,,cin}
n

= 1, i = 1,2,..., n

Objectif:

= 1, j = 1,2,..., n

Contraintes:

min Z =

j =1

ij

i =1

variables et 2n contraintes

8. Optimisation combinatoire

41

2n variables et n+1 contraintes


42

PPC et mthodes de RO

Lexemple prcdent montre une rduction importante du


nombre de variables et de contraintes lorsquon utilise un
modle de PPC plutt quun modle de PNE
Toutefois, le modle de PNE pour le problme daffectation
peut tre rsolu par la programmation linaire, car la
relaxation PL possde une solution optimale entire!
Mais si on ajoutait des contraintes supplmentaires, cette
belle proprit ne tiendrait plus ncessairement: la PPC
serait alors une alternative intressante!
En particulier, si ces contraintes supplmentaires peuvent
difficilement sexprimer sous forme de contraintes linaires
8. Optimisation combinatoire

element(yi, [ci1,ci2,,cin], zi), i = 1,2,,n


alldiff(y1, y2,,yn)
8. Optimisation combinatoire

Potentiel de la PPC


i =1

 n2

43

Pour rsoudre un problme doptimisation combinatoire, il


peut tre intressant de combiner la PPC et la RO
Par exemple, un problme daffectation avec contraintes
supplmentaires peut tre rsolu avec un algorithme de
construction de larbre des solutions dans lequel :



On gnre des solutions ralisables par la PPC


On calcule des bornes infrieures sur la valeur de lobjectif par la
relaxation PL

Une autre possibilit est de combiner la PPC avec une


approche mtaheuristique pour explorer des voisinages
Mentionnons aussi que plusieurs algorithmes de rduction
de domaine sont bases sur des mthodes de RO
8. Optimisation combinatoire

44

11