You are on page 1of 15

Optimisation combinatoire Mtaheuristiques

Original Pierre Brezellec


Laboratoire Gnome et Informatique, Evry
(modifi par Jol Pothier)

OPTIMISATION COMBINATOIRE METAHEURISTIQUES..........................................................1

PRESENTATION INFORMELLE DU PROBLEME - DEFINITION FORMELLE DU PROBLEME ..................................1


LE PROBLEME DU VOYAGEUR DE COMMERCE .................................................................................1
CARACTERISATION DU PROBLEME ..................................................................................................2
TECHNIQUES DE RESOLUTION EXACTES DU PROBLEME ...............................................................4
TECHNIQUES DE RESOLUTION APPROCHEE DU PROBLEME : RECHERCHE D'UN OPTIMUM
LOCAL...........................................................................................................................................................4
CADRE DE TRAVAIL: ...............................................................................................................................6
LE PROBLEME A "RESOUDRE" ................................................................................................................6
LE VOISINAGE.............................................................................................................................................6
LA DESCENTE (RECHERCHE D'UN MINIMUM) .............................................................................................8
LA DESCENTE (EXEMPLE)........................................................................................................................8
IDEES A LA BASE DES META-HEURISTIQUES..................................................................................8
RECUIT SIMULE (METROPOLIS [1953], KIRKPATRICK, GELATT, VECCI [1982], INDEPENDAMMENT
CERNY EN 1985) .............................................................................................................................................9
LE TABOU (FRED GLOVER [1989], TABU SEARCH )..............................................................................10
LES ALGORITHMES GENETIQUES (1ERE CONFERENCE EN 1986) ........................................................11
HARMONY SEARCH .................................................................................................................................14
CONCLUSION ............................................................................................................................................14

Prsentation informelle du problme - Dfinition formelle du problme

LE PROBLEME DU VOYAGEUR DE COMMERCE

50 villes -> 49! solutions possibles, i.e. 6,08.1062 tournes possibles

Prenons un ordinateur de millimtres calculant un milliard de solutions par seconde. Sachant


que le diamtre quatorial de la terre est de 12 756 kilomtres, on peut mettre 12 756 000 000 de
ces ordinateurs les uns la suite des autres sur l'quateur. On peut ainsi calculer
12 576 000 000 000 000 000 solutions par seconde (1,25. 1019)
Pour tre certain de trouver la tourne la plus courte, il faut considrer toutes les tournes
possibles. Il nous faudra alors 4,766.1043 secondes avec le super ordinateur que l'on vient de
prsenter. Note : 4,766.1043 est l'quivalent de 1,51.1034 sicles

CARACTERISATION DU PROBLEME

Etant donn une fonction f valeurs numriques dfinie sur X et un ensemble fini F(P) inclus
dans X, trouver un lment x de F(P) qui atteint l'optimum de f
Les lments de F(P) sont appeles solutions ralisables
CARACTERISATION DU PROBLEME
Optimiser (maximiser ou minimiser) la fonction objectif f dfinie sur X, l'optimum - appel x* -
devant appartenir au domaine F(P) X
La condition x F(P) X est appele contrainte


SAT (problme SAT: satisfiable):

tant donne une formule logique : existe-t il une interprtation qui la satisfasse ?
x1 x2 boolens: expression (x1 ou x2) et (non(x1) ou non(x2))
n
complexit en 2
Problme du sac dos:
Tableau d'objets/proprits
O1 O2 O3... On
P1 b1
P2 b2
...
Pm bm
max cjxj
xi = 0 si Oj n'est pas dans le sac
xi = 1 si Oj est dans le sac
aijxj bj (contraintes)
Le fait que les xi vaillent 0 ou 1 empche une rsolution numrique.
Rsolution approche:
- mthodes de relaxation: exemple: xi [0,1[ dans le problme du sac dos, rsolution
numrique, puis choix si xi > 0.5 alors xi = 1, sinon xi = 0.
- heuristiques: guides par astuces
- mta-heuristiques : indpendantes du problme trait
P ?= NP
Cook (1971): tout problme peut se rduire SAT en temps polynomial (reformulation).
(Informatique quantique ?)
Problmes de dcision = problmes doptimisation
Problmes de dcision : 2 rponses : oui/non
Classes P et NP
Exemples :
- a) parit dun nombre entier,
- b) plus court chemin G dans un graphe, a et b sommets de G et B un nombre entier. Question :
existe til un chemin entre a et b de longueur infrieure B.
-c) Question : existe til un chemin lmentaire (cad ne passant pas 2 fois par un mme sommet)
entre a et b de longueur suprieure B ?
-d) G admet il un cycle hamiltonien (cad passant une fois et une seule par chaque sommet) ?
Classe P : classes de problmes de dcision polynomiaux. Un problme appartient P si il peut
tre rsolu par un algorithme A de complexit O(Nk) o k est une constante et N la taille du
problme.
Problmes ci dessus :
- a) O(1) -> division par 2
- b) O(N2)
- c) et d) jusquici pas trouv
NP : classes de problme de dcision pouvant tre rsolus en temps polynomial par un algo non
dterministe
Df : un problme appartient NP ssi pour tout jeu de donnes du problme ayant pour rponse
oui , il existe un certificat permettant avec un algorithme polynomial, de vrifier que la
rponse au problme est effectivement oui .
Problmes c) et d) : la vrification, si on donne le chemin ou lhamiltonien est faite en temps
polynomial.
- problme de la non primalit : n est il divisible par un nombre autre que 1 et lui mme ?
Ce problme appartient NP car :
- si on considre une instance o la rponse est oui , cad que n nest pas premier, il admet
un diviseur a et en prenant a comme certificat, la division par a (en temps polnomial)
vrifie la rponse au problme, donc ce problme appartient NP
Complmentaire : n est il premier ? : Ici la dtermination dun certificat est moins aise (mais
la dmonstration existe).
Note : P est inclus dans NP
NP complets : en 1970, Cook a montr que parmi les problmes de dcision, certains taient plus
difficiles rsoudre que dautres. Conjecture : seuls des algorithmes numratifs de complexit
au moins O(2N) permettent la rsolution de ces problmes NP complets . Les problmes c) et
d) dans un graphe quelconque sont NP complets. Par contre, dans un graphe sans circuit, le
problme c) est en O(m), m tant le nombre darcs.
Problmes doptimisation NP difficiles :
Problme b) : trouver un chemin entre a et b de longueur minimale
Problme c) : trouver un chemin entre a et b de longueur maximale
Les versions optimisation sont au moins aussi difficiles rsoudre que les versions
dcision . Si le problme de dcision est NP complet , la version optimisation sera
qualifie de NP difficiles (numration de type sparation et valuation).

TECHNIQUES DE RESOLUTION EXACTES DU PROBLEME


Recherche exhaustive (ou numration explicite)
Technique de complexit exponentielle
Branch-and-bound (ou numration implicite)
Complexit importante (bien que le nombre de solutions considres est moindre que dans une
recherche exhaustive)
Programmation dynamique

TECHNIQUES DE RESOLUTION APPROCHEE DU PROBLEME :


RECHERCHE D'UN OPTIMUM LOCAL
Mthodes de relaxation
On relche le problme pour rendre plus ais sa rsolution
La solution obtenue n'est pas ncessairement la solution optimale du problme

Heuristiques
Recherche guide par des "astuces" qui dpendent du problme trait

Mta-heuristiques
Mthodes de recherche indpendantes du problme trait (recuit simul, tabou search, ...)

Pour les problmes intressants, i.e. les problmes NP,on ne connait pas d'algorithmes exacts et
rapides permettant de rsoudre la question pose
EXPONENTIEL versus POLYNOMIAL
n=1 n=10 n=100 n=500 n=1000
Exponentielle 1,1 2593 13780,61 4,969.1020 2,469.1041
Polynomiale 1 1010 1020 9,765.1026 1030
CADRE DE TRAVAIL:

LE PROBLEME A "RESOUDRE"

f : E > R

E est couramment appel "espace de recherche". On cherche l'optimum de f, i.e. l'lment x de E


minimisant (ou maximisant) f. On suppose que l'espace E est de grande taille

LE VOISINAGE
Notion de voisinage : l'espace est structur
A chaque lment x de E, on associe un voisinage. Un voisinage est un ensemble d'lments de E

E = espace des chaines binaires de longueur 6

E = 26 = 64

xE

0 1 0 1 0 1

Voisinage de x: inverser
successivement chacun des bits

1 1 0 1 0 1

0 0 0 1 0 1

0 1 1 1 0 1

0 1 0 0 0 1

0 1 0 1 1 1

0 1 0 1 0 0
LA DESCENTE (recherche d'un minimum)
choisir une solution initiale s

fin <- FALSE


WHILE {fin = FALSE}
soit s le voisin de s qui minimise f
< f(s') - f(s)
IF 0
s < s'
ELSE
fin < TRUE
ENDIF
ENDWHILE

LA DESCENTE (EXEMPLE)

[4]
[3.5]
[5]

[3]
[4]
[2] [3]
[2]
[1]

[2] [3]

IDEES A LA BASE DES META-HEURISTIQUES


Il n'existe pas de technique gnrale pouvant rduire l'cart entre un optimum local et un
optimum global en amliorant systmatiquement le cot d'une solution}
Accepter provisoirement une mauvaise solution pour trouver une meilleure solution
- pour viter de rester bloqu sur un optimum local
Eviter de boucler
- pour parcourir le plus d'espace possible

RECUIT SIMULE (Metropolis [1953], Kirkpatrick, Gelatt, Vecci [1982],


indpendamment Cerny en 1985)
Mthode inspire d'une analogie avec un phnomne physique (exemple de laimantation).
Analogie avec Boltzmann.
Ne dispose pas en elle-mme de mcanismes "anti-bouclage"
RECUIT SIMULE (recherche d'un minimum)

choisir une solution initiale s


choisir une temprature initiale Ti > 0
choisir une temprature finale Tf > 0 // Tf < Ti
choisir un nombre d'itration NB ( une temprature donne)
choisir le coefficient de diminution de la temprature
[0,1[
T < T_{i}$
WHILE { Tf < T}
FOR {k = 1 to NB}
S < voisin alatoire de s
< f(s') - f(s)$
IF { 0}
s < s'
ELSE
-/T
s < s' avec la probabilit e
ENDIF
ENDFOR
T < T*
ENDWHILE
Explication :
- si T grande, exp(-/T) est de lordre de 1, on garde toujours le mouvement, mme si il est
mauvais.
- si T trs petit, exp(-/T) est de lordre de 0, donc les mouvements qui augmentent lnergie (la
diffrence) sont disqualifis.
- mthode : on tire au hasard dans lintervalle [0,1[, si le nombre est < exp(-/T) , on garde sinon
on jette.
Amlioration: stocker la meilleure solution !!!
Cest une bonne mthode pour le voyageur de commerce, mais pas trs bonne pour les problmes
dordonnancement.
LE TABOU (Fred Glover [1989], tabu search )
Garder des traces du pass pour mieux s'orienter dans le futur
Lide est dutiliser une (petite) mmoire (la liste tabou) pour viter de tomber dans un optimum
local et/ou pour viter de boucler (cycles de petite taille). Dans la liste tabou, on peut garder des
configurations, des points ou des rgions visites, ou plus gnralement des attributs, qui vont
viter des mouvements dj faits.
Algorithme :
On va garder tous les points du voisinages - ou une partie chantillonne de ces points si
lensemble est trop grand (cas dune fonction continue par exemple) quon appelle N(s)). On va
retirer de ces points ceux qui sont dans la liste tabou T(s,k) pour obtenir N(s,k)=N(s)-T(s,k). On
calcule la valeur de la fonction f minimiser pour chacun de ces points de N(s,k), on trie les
points par ordre de f croissant (le 1er est donc le meilleur du voisinage, mais pas forcment
meilleur que le point courant qui nest videmment pas inclus dans le voisinage). Si le 1er point
est meilleur que la meilleure solution obtenue jusquici, on le garde. Ensuite on met tous les
points du voisinage dans la liste tabou. Et on itre jusqu par exemple ne plus avoir de
changement (ou un autre critre).
Ainsi, chaque itration, lalgorithme tabou choisit le meilleur voisin non tabou, mme si celui-ci
dgrade la fonction.
On peut aussi ajouter un critre d aspiration , qui dterminera si un point de la liste tabou (ou
plusieurs, donc un sous ensemble A(s,k)) peut quand mme tre utilis. qui permette dutiliser un
point tabou car il remplirait quand mme une condition dsire (par exemple, si un mouvement
interdit par la liste tabou conduit une valeur de la fonction f qui serait meilleure que celle
obtenue jusquici. Evidemment, cette configuration ne peut pas survenir si on garde des points
dans la liste tabou : si un point de la liste tabou a la meilleure valeur de f, il a forcment t
compt auparavant. Des critres daspirations plus sophistiqus peuvent tre utiliss pour ce
critre daspiration.
choisir la taille k de la liste tabou LTABOU
choisir un nombre d'itration NB
choisir une solution initiale s
meilleure_evaluation < f(s)
meilleure_solution < s
change < TRUE
WHILE {change = TRUE}
change < FALSE
FOR {iteration = 1 to NB}
identifier le voisinage N(s)
T(s,k) <- les points de N(s) de la liste LTABOU
N(s,k) <- N(s)-T(s,k)+A(s,k)
trier le voisinage en fonction de la fonction f
s = lment de N(s,k) tel que f(s) minimum
IF {f(s') < meilleure_evaluation}
meilleure_solution < s'
meilleure_evaluation < f(s')
change = TRUE
ENDIF
mettre jour la liste tabou,
(i.e. ajouter N(s,k) LTABOU)
s < s'
ENDFOR
ENDWHILE
Note : la gestion de la liste tabou est de type FIFO (First In First Out)
La liste tabou ne doit pas tre trop grande (sinon, on bloque les mouvements), ni trop petite. En
gnral, k=7 est pas mal. Nanmoins, la taille de la liste doit tre proportionnelle la taille du
problme.
Algorithme tabou de base : mmoire court terme (liste taboue), assure une diversification
court terme
Algorithme tabou volu : mmoire court terme (liste taboue) + mmoire long terme pour
assurer lintensification et/ou la diversification

LES ALGORITHMES GENETIQUES (1re confrence en 1986)


Bass sur une analogie avec l'volution (reproduction/selection, mutations, croisements). John
Holland (1960/1970), David Goldberg (1980/1990).

La notion de voisinage est remplace par l'application d'oprateurs de "mutation" et de


"croisement" (cross-over).
Etude simultane d'un ensemble de solutions versus tude d'une solution pour le recuit et le tabou
Codage :
On cherche avoir un codage sur une chane de 0/1 pour pouvoir effectuer les croisements (et
mutations).
Si x est une variable de f(x) optimiser sur lintervalle [xmin,xmax].
On re-crit x :2n (x-xmin)/(xmax-xmin)
Ce qui donne une chane de n bits (on garde une prcision de n digits en base 2) puisque (x-
xmin)/(xmax-xmin) est dans lintervalle [0,1].
Une population complte of N individus de n bits est gnre.
Mutation 0 1 0 1 0 1

0 0 0 1 0 1

Croisement
0 1 0 1 0 1

1 1 0 1 0 0

1 1 0 1 0 1 0 1 0 1 0 0

Algorithme gnral :
Choisir la taille t de la population
Gnrer la population initiale P // i.e. un ensemble de solutions
WHILE {le critre d'arrt n'est pas satisfait}
Mutations et Recombinaisons par croisements
Calcul pour chaque individu xi de la fonction de fitness f(xi)
(et de S, la somme totale des f(xi))
Pour chaque xi calcul de p(xi)=f(xi)/S
Reproduction des individus de P selon les p(xi),
cest dire slection probabiliste de t
individus selon leur p(xi)
Mise jour de P
ENDWHILE

Le choix de la reprsentation en bits est primordial, car les croisements peuvent tre inadapts.
On peut tre amen choisir par exemple un code o les chiffres successifs ne diffrent que dun
bit (utile en lectronique, o on veut viter que plusieurs contacts ne sinversent lorsquon passe
dun nombre un nombre juste suprieur, car on passe alors par des intermdiaires). Le code de
Gray (Franck Gray, 1953) est un tel code.
Le code de Gray, galement appel binaire rflchi, est un type de codage binaire permettant
de ne modifier qu'un seul bit la fois quand un nombre est augment d'une unit.
Codage dcimal Codage binaire naturel Codage Gray ou binaire rflchi
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100

Pour passer d'une ligne la suivante, on inverse le bit le plus droite possible conduisant un
nombre nouveau.
Une autre mthode de calcul permettant de passer d'un nombre de Gray au suivant, et qui
prsente l'avantage de ne pas ncessiter de connatre l'ensemble des nombres prcdents est la
suivante :
si le nombre de 1 est pair, il faut inverser le dernier chiffre.
si le nombre de 1 est impair, il faut inverser le chiffre situ gauche du 1 le plus droite.
Et enfin, la mthode la plus simple consiste calculer le OU Exclusif (symbolis ici par le
caractre ^) entre le binaire de dpart et ce mme binaire dcal d'un rang droite.
Exemples : On veut reprsenter 7 en code de Gray.
7 s'crit 0111 en base 2.
0111
^ 0011
-----
0100

Pour des fonctions de variables relles, on emploie le croisement barycentrique (gnralement).


Le crossover est alors :
x1 = x1 + (1- ) x2
x2 = (1- ) x1 + x2
o est tir au hasard dans lintervalle [-0.5,1.5] (et donc (1- ) est dans [1.5,-0.5])
Et une mutation est: x1 = x1 + B(0,)
o B(0,) est un bruit gaussien centr en 0 et dcart type
Pour les algorithmes gntiques, le codage et les oprateurs choisis conditionnent grandement la
qualit des solutions quon peut obtenir. Il ne suffit pas dintroduire une fonction pour en retirer
loptimum. Sans un codage et des oprateurs appropris, les rsultats seront au mieux mdiocres.
Il existe une technique ( sharing ) qui permet de modifier la fitness dun individu selon le
nombre dindividus semblables (i.e. similaires dans lespace du problme) qui lentourent : la
fitness dun individu dans une zone peuple est diminue. Ceci pour viter trop de reprsentants
dune mme solution, et favoriser les reprsentants uniques - ou peu nombreux - dune solution.

HARMONY SEARCH
La recherche dharmonie ( harmony search , Geem et al., 2001) est inspire par le processus
dimprovisation des musiciens, et ressemble aux algorithmes gntiques. Elle fait partie de la
mme famille des algorithmes volutionnaires.
Il sagit donc de trouver le vecteur x qui minimise/maximise la fonction f(x) (x est un vecteur de
taille n).
Algorithme :
Pas 0 : On gnre alatoirement hms vecteurs n (hms: harmony memory size) quon garde en
mmoire.
Pas 1 : on gnre un nouveau vecteur x dont les composantes xi sont tirs comme suit :
- avec une probabilit hmcr ( harmony memory considering rate; 0 hmrc 1), on prend
la valeur xi dun vecteur choisi au hasard uniformment parmi les vecteurs en mmoire
- avec une probabilit 1-hmcr on tire le xi au hasard dans lintervalle permis
Pas 2 : si le xi tir au pas 1 provient de la mmoire (dun vecteur existant) :
- avec une probabilit par (pitch adjusting rate; 0 par 1), modifier xi dune petite
valeur pour une variable discrte, ou fwuniform(-1,1) (avec lespace entre deux
variables discrtes voisines, et fw (fret width, formerly bandwidth) le changement
maximum dans lajustement du pitch, en gnral 0.01 0.001 lintervalle permis
- avec la probabilit (1-par) on ne fait rien
Pas 3 : si x est meilleur que le plus mauvais vecteur en mmoire, on le garde et on retire le
plus mauvais vecteur.
Pas 4 : on rpte les pas 1 3 jusqu ce que le critre darrt (maximum ditrations) soit atteint.

Les paramtres de lalgorithme harmony search sont :


hms taille de la mmoire, varie de 1 100 (valeur typique 30)
hmcr la probabilit de choisir une valeur dj en mmoire. Varie gnralement de 0.7
0.99 (valeur typique 0.9)
par le taux de choix dune valeur voisine. Varie gnralement de 0.1 0.5 (valeur typique
0.3)
Il est possible

CONCLUSION
Convergence ( la limite) des Mta-heuristiques
Robustesse aux conditions initiales
Ncessit d'automatiser le processus d'initialisation des paramtres
Plus on injecte de la "culture" dans la dfinition du voisinage, meilleurs sont les rsultats
O l'heuristique irrigue la Mta-heuristique
Combiner les Mta-Heuristiques entre elles
"Au pays des Z'heuristiques, l'inceste n'est pas tabou"
Existence d'autres Meta-Heuristiques (Bruitage, etc.)

You might also like