You are on page 1of 13

Optimisation combinatoire Mtaheuristiques

Pierre Brezellec Laboratoire Gnome et Informatique, Evry Prsentation informelle du problme Dfinition formelle du problme}

OPTIMISATION COMBINATOIRE MTAHEURISTIQUES LE PROBLEME DU VOYAGEUR DE COMMERCE CARACTERISATION DU PROBLEME TECHNIQUES DE RESOLUTION EXACTES DU PROBLEME TECHNIQUES DE RESOLUTION APPROCHEE DU PROBLEME: RECHERCHE D'UN OPTIMUM LOCAL CADRE DE TRAVAIL: LE PROBLEME A "RESOUDRE" LE VOISINAGE LA DESCENTE (RECHERCHE D'UN MINIMUM) LA DESCENTE (EXEMPLE) IDEES A LA BASE DES META-HEURISTIQUES RECUIT SIMULE (METROPOLIS [1953], KIRKPATRICK [1983]) LE TABOU (FRED GLOVER [1989]) LES ALGORITHMES GENETIQUES (1RE CONFRENCE EN 1986) CONCLUSION

1 1 2 4 4 6 6 6 8 8 8 9 10 11 12

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 12756 kilomtres, mettons 12756000000 de ces ordinateurs les uns la suite des autres sur l'quateur. On peut ainsi calculer 12576000000000000000 solutions par seconde 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)) complexit en 2


n

Problme du sac dos: Tableau d'objets/proprits O1 P1 P2 ... Pm 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 O2 O3... On b1 b2

bm

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 Exponentielle 1,1 n=10 2593 n=100 13780,61 n=500 4,969.10
20

n=1000 2,469.1041

Polynomiale

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

Voisinage de x: inverser successivement chacun des bits

1 0 0 0 0 0

1 0 1 1 1 1

0 0 1 0 0 0

1 1 1 0 1 1

0 0 0 0 1 0

1 1 1 1 1 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] [5] [3.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 choisir choisir choisir choisir [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 une solution initiale s une temprature initiale Ti > 0 une temprature finale Tf > 0 // Tf < Ti un nombre d'itration NB ( une temprature donne) le coefficient de diminution de la temprature

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 (modification, slection, amplification). 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

Mutation

Croisement
0 1 0 1 0 1

Algorithme :
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} // recombinaisons par mutation et croisement Reproduction des individus de P // slection probabiliste de t individus // crs l'tape prcdente (plus ils sont "bons", // et plus la probabilit de les slectionner // est forte Mise jour de P ENDWHILE

Dans un espace cartsien, par exemple des points en 2 dimensions, si les solutions prcdentes sont (x1,y1) et (x2,y2), on pourrait crer des mutations (x1+x1,y1) ou (x2,y2+x2), etc ou des croisements comme (x1,y2) et (x2,y1) pour crer de nouvelles solutions.

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