• Aucun résultat trouvé

2.5 M´etaheuristiques pour l’optimisation combinatoire

2.5.4 M´etaheuristiques ` a solution courante unique

2.5.4.1 La m´ethode du recuit simul´e 2.5.4.1.a Les origines

Inspir´ee du domaine de la m´etallurgie, cette m´ethode a ´et´e mise au point au d´ebut des ann´ees 1980 dans les laboratoires d’IBM par S. Kirkpatrick et al. [Kirk 83], et ind´ependamment par V. ˇCern´y [Cern 85]. Elle se base sur les proc´ed´es industriels de solidification des m´etaux. Il est en effet ´etabli qu’un m´etal `a temp´erature ´elev´ee doit ˆetre refroidi lentement (en opposition `a la m´ethode dite de la trempe) afin de laisser le temps aux atomes de s’agencer de mani`ere opti- male — ce qui se traduit par un ´etat d’´energie minimale du mat´eriau et donc une configuration stable le rendant plus r´esistant aux contraintes m´ecaniques. Ces propri´et´es thermodynamiques sont mod´elis´ees d`es les ann´ees 1950 par N. Metropolis et al. [Metr 53] qui mettent au point un algorithme bas´e sur une chaˆıne de Markov utilisant une distribution de Boltzmann pour ´echan- tillonner l’espace de recherche. Cet algorithme a ´et´e repris plus tard par W.K. Hastings [Hast 70], et g´en´eralis´e `a d’autres distributions, aboutissant `a l’algorithme de Metropolis-Hastings.

2.5.4.1.b Pr´esentation de l’approche

L’algorithme de recuit simul´e s’appuie sur cette mod´elisation. On construit tout d’abord une solution initiale dont la valeur de coˆut est l’´energie E = E0. On fixe une valeur de temp´erature

T = T0 suffisamment « ´elev´ee ». On s´electionne ensuite une solution candidate dans le voisi-

nage de cette solution initiale, dont on d´etermine l’´energie En. Si la variation ∆E = En− E

est n´egative, on accepte la solution candidate comme solution courante. Si elle est positive ou nulle, elle est accept´ee avec une probabilit´e exp−∆ET . Cette loi appel´ee r`egle de M´etropolis (is- sue des travaux de mod´elisation thermodynamique mentionn´es ci-avant) emploie la variable de temp´erature : on constate que plus T est ´elev´ee, plus une solution m´ediocre (comparativement `

a la solution courante) aura de chances d’ˆetre n´eanmoins accept´ee. C’est ce facteur qui permet `

a la m´ethode du recuit simul´e de maintenir l’exploration de l’espace de recherche, mˆeme si un optimum local est atteint.

Une illustration de la m´ethode est pr´esent´ee sur la figure 2.16. Pour la phase de recuit, deux approches sont fr´equemment employ´ees. La premi`ere consiste `a abaisser la temp´erature par paliers : l’algorithme s’ex´ecute en maintenant la temp´erature constante, jusqu’`a atteindre un ´equilibre thermodynamique. Cet ´equilibre d´esigne le moment `a partir duquel l’´energie du syst`eme ne d´ecroˆıt plus : il peut par exemple ˆetre d´efini par un nombre fix´e de cycles durant lequel la temp´erature ne varie pas, ou par une valeur seuil d’am´elioration du coˆut sur un nombre de cycles donn´e. Une fois cet ´equilibre atteint, on abaisse la temp´erature `a un palier inf´erieur (ces paliers ´etant d´efinis par une loi de d´ecroissance) et on continue la recherche. L’algorithme s’arrˆete lorsque le crit`ere d’arrˆet de l’algorithme est atteint (on parle alors de syst`eme fig´e), par exemple une valeur seuil de la temp´erature. La seconde approche consiste non pas `a abaisser la

temp´erature par paliers, mais entre chaque nouvelle solution, de mani`ere continuelle. On peut alors choisir une r`egle de d´ecroissance simple comme Ti+1 = λ.Ti avec λ ∈ [0, 1[ g´en´eralement

tr`es proche de 1 afin de ne pas converger trop vite et donc de ne pas stagner dans un optimum local.

2.5.4.1.c Application au TSP

La m´ethode du recuit simul´e a ´et´e appliqu´ee `a un grand nombre de probl`emes, notam- ment de Recherche Op´erationnelle. Une solution est mod´elis´ee par un vecteur correspondant `

a l’ordre successif des villes `a visiter (par exemple, S = [2, 4, 5, 1, 3] pour mod´eliser le tour 2 → 4 → 5 → 1 → 3 → 2 d’un probl`eme `a cinq villes) appel´e repr´esentation en chemin. On peut construire la solution initiale de plusieurs mani`eres, al´eatoirement ou par recherche locale par exemple. Le voisinage d’une solution peut ˆetre d´efini de diff´erentes mani`eres. Il peut ˆetre constitu´e de l’ensemble des solutions issues d’une permutation d’un sous-ensemble de villes dans la solution initiale : en choisissant al´eatoirement deux indices i et j, une solution voisine est construite en inversant l’ordre des villes entre les indices i et j. Par exemple, soit une solution S = [2, 7, 4, 5, 1, 8, 3, 6] `a un probl`eme quelconque de 8 villes. Si i = 2 et j = 6 (l’indice initial ´etant 0), la solution devient alors S′ = [2, 7, 3,8,1,5,4, 6]. Le coˆut ou ´energie d’une solution

est calcul´e `a l’aide d’une matrice de distances. C’est ce voisinage qu’utilise ˇCern´y [Cern 85] ; en revanche, dans son impl´ementation, ce n’est pas la temp´erature qui est modifi´ee au cours de l’ex´ecution (celle-ci ´etant fix´ee `a T = 0, 1). On va en fait d´ecroˆıtre la taille du voisinage en r´eduisant l’´ecart possible entre les indices i et j : ainsi, les permutations autoris´ees concerneront un nombre de plus en plus r´eduit de villes. Efficace jusqu’`a des instances de quelques centaines de villes, ce type d’approche montre vite ses limites au-del`a, en raison du grand nombre de combinaisons de solutions de qualit´e m´ediocre (solutions avec croisements). Plus r´ecemment, en revanche, des approches hybrid´ees avec des m´ethodes de recherche locale appel´ees Iterative Local Search ont vu le jour. Dans ces approches, on ne se contente pas de choisir une solution voisine de la solution courante : on va utiliser un algorithme d’am´elioration locale, afin d’obtenir un minimum local. Les solutions voisines sont alors obtenues en perturbant cette solution. Par exemple, on va permuter deux points dans la solution, dans le but d’engendrer des croisements d’arˆetes dans la solution. En ex´ecutant une recherche locale de type 2-opt au cycle suivant, on a alors peu de chances de retomber sur la solution pr´ec´edente (on obtiendra donc un nouvel opti- mum local). Les m´ethodes de type ILS impliquent davantage de charge de calcul `a chaque cycle qu’un algorithme de recuit simul´e simple, mais chaque solution ´evalu´ee est un minimum local (de la m´ethode de recherche locale utilis´ee). Un algorithme tr`es efficace bas´e sur ce principe est le LSMC (pour Large Step Markov Chain) [Mart 91] : bas´e sur un algorithme de recuit simul´e, il emploie une m´ethode de recherche locale type Lin-Kernighan et une fonction de perturba- tion sp´ecifique dite de double-pont (voir l’article pour davantage de d´etails). Cet algorithme est capable de r´esoudre efficacement des probl`emes de plusieurs milliers de villes.

2.5.4.2 La recherche tabou

2.5.4.2.a Pr´esentation de l’approche

Le recherche tabou est une m´ethode d’optimisation mise au point par F. Glover en 1986 [Glov 86]. Bas´ee sur une m´ethode de recherche locale (recherche d’une solution dans le voisinage am´eliorant la fonction de coˆut), sa philosophie fut d’introduire un m´ecanisme de m´emoire des derni`eres solutions explor´ees, sous forme d’une liste appel´ee liste tabou. Les ´el´ements de cette

Figure2.16 – Sch´ema d’approche du recuit simul´e. Les ´etapes en pointill´es sont propres `

liste sont alors exclus de la recherche dans le but d’interdire l’exploration d’une zone d´ej`a visit´ee. Tabou se d´emarque ainsi de la m´ethode du recuit simul´e, qui ne capitalise pas sur les ex´ecutions pr´ealables de la recherche.

Afin de limiter les op´erations de comparaison de la liste tabou — qui rendraient rapidement l’algorithme inefficace — et pour des raisons ´evidentes d’espace m´emoire, la taille de la liste est limit´ee : en pratique, elle est souvent faible (moins d’une dizaine d’´el´ements). Cette taille est un param`etre de configuration important de la m´etaheuristique. Organis´ee sous forme de FIFO, ou file — structure o`u le premier ´el´ement ajout´e est le premier retir´e — la liste tabou est donc une m´emoire temporaire empˆechant `a court terme la recherche de faire des mouvements cycliques dans l’espace d’´etat. C’est ce mˆeme m´ecanisme qui permet `a la m´ethode de s’extraire d’un optimum local, puisque la recherche ne peut ni stagner ni revenir en arri`ere. Le pseudo-code de l’approche est fourni par l’algorithme 3.

Algorithme 3 M´etaheuristique Recherche Tabou 1: S ← solutionInitiale()

2: ListeT abou ← ∅

3: tant que Condition d’arrˆet non atteinte faire 4: ListeCandidats ← ∅

5: pour chaque Scandidat ∈ meilleursV oisins(S) faire

6: si ¬T abou(Scandidat, ListeT abou) alors

7: ListeCandidats ← Scandidat

8: fin si 9: fin pour

10: Scandidat ← meilleureSolution(ListeCandidats)

11: miseAJourListeT abou(Scandidat, ListeT abou)

12: fin tant que

13: retourner La meilleure solution trouv´ee

Une liste tabou peut en principe contenir des informations de toutes natures :

– des solutions sous forme compl`ete, ce qui peut cependant poser des difficult´es pour des instances de probl`emes de grande taille (espace m´emoire, rapidit´e des comparaisons) ; – des mouvements : modifications apport´ees pour aboutir `a une nouvelle solution (voir sec-

tion 2.5.4.2.d pour un exemple). Tr`es ´econome en complexit´e (m´emoire et temporelle), cette impl´ementation introduit n´eanmoins un biais en interdisant potentiellement des solutions non emprunt´ees ;

– des valeurs de coˆut des solutions : tr`es simple, cette impl´ementation n´ecessite cependant que les solutions au probl`eme aient des valeurs de coˆut tr`es variables et que la probabilit´e de trouver deux solutions de mˆeme coˆut soit tr`es faible ;

– etc.

En pratique, c’est souvent le choix d’une liste de mouvements qui est fait. Ces mouvements correspondent `a la d´efinition qui est donn´ee au voisinage des solutions.

2.5.4.2.b D´efinition du voisinage

L’ensemble des voisins potentiels d’une solution va d´ependre de l’op´erateur qui sera employ´e pour perturber une solution. Dans ce voisinage, la m´ethode tabou compare l’ensemble des so- lutions afin de s´electionner la meilleure d’entre elles. En pratique, la taille de ce voisinage est

limit´ee, en imposant des restrictions aux op´erateurs de perturbation, afin que le nombre d’´eva- luations ne soit pas trop grand (des exemples sont donn´es `a la section 2.5.4.2.d). Ces restrictions peuvent priver l’algorithme du meilleur optimum local, mais peuvent n´eanmoins introduire une diversit´e dans la recherche.

Mod´eliser une solution interdite par le biais de mouvements induit des situations ind´esi- rables : on risque d’interdire une solution du voisinage alors qu’elle pourrait mener `a un nouvel optimum. Pour ´eviter ces situations, il est possible d’ajouter des crit`eres aux ´el´ements d’une liste tabou afin d’autoriser l’algorithme, dans certains cas, `a braver l’interdiction d’un mouve- ment. Ce m´ecanisme s’appelle l’aspiration, et doit ˆetre impl´ement´e judicieusement, pour ne pas r´eintroduire de cycles dans la recherche (voir [Glov 97] pour plus de d´etails).

2.5.4.2.c M´ecanismes avanc´es

La recherche tabou a ´et´e exp´eriment´ee sur un large panel de probl`emes. Pour certains d’entre eux, des chercheurs ont constat´e que la recherche restait cantonn´ee `a une zone restreinte de l’espace des solutions. Des strat´egies de diversification ont donc ´et´e d´evelopp´ees, afin de permettre `

a l’algorithme de sortir de cette zone et forcer l’exploration d’un espace plus vaste. La plupart des auteurs ont aussi fait le constat que certaines zones prometteuses ´etaient trop rapidement parcourues, et que la recherche pouvait passer `a cˆot´e de l’optimum pour s’en ´eloigner rapidement. Des strat´egies d’intensification ont donc ´egalement vu le jour.

On peut caract´eriser une solution `a l’aide d’attributs, qui sont des crit`eres d’´evaluation boo- l´eens d’une solution. Dans un probl`eme de coloriage de graphe, par exemple, on peut d´efinir un pr´edicat p prenant pour param`etre un sommet v et une couleur c. Dans ce cas, pour une solu- tion S d´efinie comme un vecteur de couleurs dont les indices sont les identifiants des sommets, px,c(S) = V RAI si et seulement si S(x) = c et F AU X sinon. Lors d’une recherche tabou, il

est possible d’analyser les attributs des solutions explor´ees afin d’en tirer avantage. Ainsi, s’il s’av`ere que les solutions explor´ees ont en commun certains attributs dont les valeurs ne varient pas, on va pouvoir r´ealiser une diversification, de mani`ere `a positionner la recherche dans un espace o`u ces attributs sont modifi´es. Au contraire, si l’on s’aper¸coit que les meilleures solutions rencontr´ees ont des attributs communs, on peut estimer que ceux-ci sont un facteur de r´eussite et ainsi mener une intensification en encourageant les solutions poss´edant ces mˆemes attributs. Ces ´evaluations statistiques vont ainsi pouvoir guider la strat´egie de diversification ou d’intensi- fication de l’algorithme (voir par exemple les travaux de E. Taillard sur le probl`eme d’affectation quadratique [Tail 91]).

2.5.4.2.d Application au TSP

Pour le probl`eme du voyageur de commerce, on utilise souvent la repr´esentation en chemin. Pour d´efinir le voisinage d’une solution, on peut employer plusieurs types de permutations :

– l’inversion : principe de base de la recherche locale 2-opt [Croe 58], on va inverser un sous-chemin de la solution, de taille d´efinie ;

– la transposition : on ´echange l’ordre de deux villes dans la solution ;

– le d´eplacement : on retire une ville de la solution et on l’intercale `a un autre endroit. Si l’on d´ecide d’employer une inversion, il suffit de m´emoriser dans la liste tabou le mouvement op´er´e. Par exemple, si S = [7, 9, 4, 5,1,8,3, 2, 6] et si le meilleur voisin est S′ = [7, 9, 4, 3,8,1,5, 2, 6] (inversion de l’ordre des villes entre 5 et 3), il n’est n´ecessaire de conserver que la trace de cette permutation, `a savoir le couple < 3, 5 >.

Pour limiter le nombre de candidats dans le voisinage, plusieurs solutions existent. On peut par exemple limiter l’ampleur des permutations : si l’on fait le choix d’employer des transposi- tions, on va pouvoir se restreindre aux combinaisons dans laquelle une ville ne peut ˆetre permut´ee avec une autre que si elles sont s´epar´ees de moins de k villes l’une de l’autre. On peut ´egale- ment se restreindre `a ´evaluer le voisinage sur un segment seulement de la solution (les bornes de ce segment changeant au cours du temps). Pour plus de d´etails sur ces impl´ementations, voir [Glov 91, Glov 97].