Vous êtes sur la page 1sur 16

TABLE DES MATIRES

M2 IAD - Universit Paris 6 - Pierre Fouilhoux - pierre.fouilhoux@lip6.fr 2009-2010

Mthodes heuristiques en Optimisation Combinatoire


Document 3/5 : Partie 1 Mtaheuristiques

Table des matires


1 Introduction
1.1 1.2 1.3 Motivation et cadre d'utilisation . . . . . . . . . . . . . . . . . . . . . . Mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2
2 2 3

Mta-heuristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 3

Algorithmes gloutons Mthodes de recherche locale


3.1 Voisinage d'une solution 3.1.1 3.1.2 3.2 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . Quelques ides de voisinages possibles . . . . . . . . . . . . . . . Exemple de voisinage : le problme du voyageur de commerce .

3 4
4 6 7 7 8 8 8 9 10 10 10

Initialisation et ritration des mthodes de recherche locale La mthode Tabou 3.3.1 3.3.2 3.3.3

. . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Principe de la mthode Tabou . . . . . . . . . . . . . . . . . . . La liste Tabou . . . . . . . . . . . . . . . . . . . . . . . . . . . . Amliorations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.4

Les mthodes de descente 3.4.1 3.4.2

Descente simple et descente stochastique

Algoritme du recuit simul . . . . . . . . . . . . . . . . . . . . .

Les mthodes volutives


4.1 4.2 Cadre des algorithmes gntiques Mise en oeuvre 4.2.1 4.2.2 4.2.3 4.2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12
13 14 14 14 15 16

La slection

Le croisement . . . . . . . . . . . . . . . . . . . . . . . . . . . . La mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Autres oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . .

La simulation

16

TABLE DES MATIRES

1
1.1

Introduction
Motivation et cadre d'utilisation
Un problme d'Optimisation Combinatoire peut tre issu de l'industrie, de la ges-

tion de la ct, de la biologie, des nouvelles technologies en gnral ou tre purement thorique. Suivant les cas, celui qui tudie ce problme doit se demander de quel temps d'tude il dispose, de l'intrt induit par cette tude mais aussi du cadre (machine, temps de calcul,...) dont il dipose pour rsoudre des instances de ce problme. En eet, dans de nombreux cas, la dtermination d'une solution exacte prend trop de temps de calcul pour qu'il soit raisonnable de chercher une telle solution. De mme, la dicult ou l'intrt scientique rduit du problme (de part sa complexit pratique, sa structure dicile,...) ou bien sa ralit pratique (trop de donnes, taille norme des instances,...) peut demander de trouver rapidement un algorihme ecace pour dterminer simplement une bonne solution et non la meilleure. La notion de bonne solution n'est pas thorique et repose plus sur le fait qu'on sait produire une solution non triviale et de valeur suprieure celle qu'un cerveau humain pourrait construire. On se contente alors souvent d'une solution approche, en essayant de faire en sorte qu'elle soit la meilleure possible dans un temps acceptable. Malheureusement ce compromis est souvent impossible valuer numriquement a priori. Si on sait valuer la qualit de la solution dtermine de manire thorique, on parle

proximation

d'algorithme d'ap-

qui ne sont pas voqus dans ce support de cours. Si cette valuation ne

peut se faire qu'exprimentalement ou alors par un valuateur humain, on parle alors

d'heuristiques combinatoires.
Ces algorithmes heuristiques fournissent donc rapidement des solutions ralisables pour un problme pratique. On calibre alors l'heuristique en fonction du temps de calcul possible, de la puissance des machines etc. Par exemple, si la solution doit tre fournie une machine dite en temps rel, il n'y a que quelques centime de secondes possibles. L'industrie ou la gestion de la ct (circulation urbaine,...) ore plutt des horizons de quelques minutes, voir de quelques heures. D'autre part, les heuristiques sont souvent les seules faons de traiter de trs grandes instances venant de l'industrie (circuits lectroniques, gestion de productions,...) ou des nouvelles technologies (gnomiques,...).

1.2

Mthodologie

L'tude commence bien videmment par tudier si le problme en question n'a pas une rponse polynomiale simple, ecace et exacte ! ! On dcouvre parfois des logiciels commerciaux donnant des solutions heuristiques des problmes de plus courts chemins ou de ots maximum ! !

1.3

Mta-heuristiques

Une bonne heuristique est bien souvent spcique un problme : elle est par exemple la traduction informatique du savoir d'un spcialiste du domaine (par exemple des spcialistes du planning d'un hpital,...). Apprendre construire de telles heuristiques se fait par l'exprience de nombreux cas concrets. En comparant ces heuristiques particulires entre elles, les spcialistes ont nanmoins dduits de grands principes que l'on appelle

mthodologie

de la construction

heuristique. Il s'agit principalement de concevoir des heuristiques en validant tape par tape leur proximit avec la ralit du problme qu'elles rsolvent. Principalement, il est intressant de valider la justesse de son heuristique avec des solutions exactes (quand on les connat) ou avec des solutions fournies par l'exprience. Nanmoins, il est thoriquement impossible d'valuer rellement une solution heuristique.

1.3

Mta-heuristiques

Si certaines heuristiques sont spciques un problme, d'autres ont pour vocation de pouvoir tre adaptes divers problmes. On appelle parfois ces dernires des

mta-heuristiques

ou encore heuristiques gnrales. En fait, il s'agit de principes

algorithmiques permettant d'obtenir une solution en respectant certains principes de construction. Les principales sont les mhodes gloutonnes ; les mthodes de recherche locale (ou d'amliorations itratives) telle que la mthode tabou (ou ses amliorations comme Grasp) ou les mthodes de descentes (recuit simul) ; les mthodes volutives (algorithmes gntiques) ; et la simulation (objet ou continue).

Algorithmes gloutons
Les algorithmes gloutons (greedy algorilhms en anglais) sont des algorithmes pour

lesquels, chaque itration, on xe la valeur d'une (ou plusieurs) des variables dcrivant le problme sans remettre en cause les choix antrieurs. Le principe est donc de partir d'une solution incomplte (ventuellement totalement indtermine) que l'on complte de proche en proche en eectuant des choix dnitifs : chaque tape, on traite (on  mange ) une partie des variables sur lesquelles on ne revient plus. Par exemple, l'algorithme de Kruskal pour la recherche d'un arbre couvrant de poids minimum est glouton : on traite successivement les artes sans revenir sur les dcisions prises propos des artes prcdentes. Cet algorithme conduit nanmoins une solution exacte ! Mais ce n'est que rarement le cas. Pour le problme du voyageur de commerce par exemple, on peut proposer l'algorithme glouton suivant (dite heuris-

TABLE DES MATIRES

tique de Christodes) : on part d'un sommet proche voisin qu'on appelle

u ui

pris au hasard et on le relie son plus

u2 ;

une itration courante, si on appelle

ui

le sommet

atteint l'itration prcdente, on repart de

et on le relie son plus proche voisin

parmi les sommets non encore rencontrs ; lorsqu'on atteint tous les sommets, on ferme le cycle hamiltonien l'aide de l'arte

{un , u1 }

si on appelle

un

le dernier sommet ren-

contr. On peut remarquer que la dernire arte utilise peut tre la plus longue du graphe... rendant ainsi la solution trs mauvaise.

Si les algorithmes de ce type sont souvent rapides, en revanche la solution qu'ils dterminent peut tre arbitrairement loin de la solution. On les utilise nanmoins frquemment pour obtenir rapidement une solution ralisable. Par exemple, elle servent initialiser une mthode itrative. Mais dans certains types d'instances relles, la solution gloutonne est parfois trs bonne.

Mthodes de recherche locale


Le principe des

mthodes de recherche locale (ou mthodes d'amlioration itrative)

est inspire des mthodes d'optimisation continue. Ces mthodes consistent dterminer itrativement la solution d'une fonction continue en utilisant des outils comme les drives partielles ou les gradients, suivant que la fonction soit ou non drivable. La description de ces mthodes partir d'une solution de dpart une suite (nie) de solutions

X0 ,

engendrer

( Xn )

dtermines de proche en proche, c'est--dire itra-

tivement (Xi+1 tant dtermine partir de

Xi ).

Le choix de la solution

Xi+1

se fait

dans un ensemble localement proche de la solution solution

Xi

et de manire avoir une

Xi+1

plus intressante au sens de la recherche locale. Les deux expressions

mises entre guillemets dans la phrase prcdente se formalisent partir de la notion de

voisinage et de recherche dans un voisinage.


La construction essentielle de ces mthodes reposent en eet sur la dtermination d'un bon voisinage. Ensuite, suivant la faon de choisir une solution dan le voisinage, on obtient direntes mthodes de recherche locale : mthode tabou, descente pure, descente stochastique, recuit simul,...

3.1

Voisinage d'une solution

On dnit gnralement le voisinage d'une solution l'aide d'une transformation lmentaire (ou locale). On appelle une solution

transformation toute opration permettant de changer


X
de

de

en une autre solution

S . Une transformation sera considre

comme lmentaire (ou locale) si elle ne modie que "faiblement la structure de la solution laquelle on l'applique.

3.1

Voisinage d'une solution

Autrement dit, les transformations locales constituent un sous-ensemble de l'ensemble des transformations. Elles sont locales en ce sens qu'elles ne perturbent pas globalement la structure de la solution qu'elles changent, mais ne la modient que localement. Par exemple, si X est un entier cod sous la forme d'une chane de 0-1, une transformation locale peut consister changer un lement en 0-1 de la chane en son complmentaire. Le choix de la transformation lmentaire dpend a priori du problme traiter. On peut soumettre le choix de la transformation lmentaire deux critres qu'elle devra respecter. Dans la mesure o cette transformation est applique de nombreuses fois, on doit d'abord pouvoir en valuer rapidement les consquences, ce qui entrane qu'elle doit tre relativement simple (c'est pour cette raison qu'on considre plus volontiers des transformations locales que globales). D'autre part, elle doit permettre d'engendrer tout l'ensemble

S,

ou du moins tout

l'ensemble dans lequel on cherche la solution optimale. C'est la proprit

bilit. On veut aussi pouvoir revenir sur ses pas la solution d'origine rversibilit. Par exemple, la transformation consistant changer, dans
n
tion en au plus

d'accessi-

: proprit de une chane de

0-1, un 0-1 en son complmentaire permet d'engendrer n'importe quelle congura-

n changements bien choisis partir de n'importe quelle solution initiale.

La transformation lmentaire tant choisie, on peut dnir le voisinage d'une solution. Etant donne une transformation locale, le

voisinage V (X ) d'une
X

solution

est

l'ensemble des solutions que l'on peut obtenir en appliquant locale.

cette transformation

La notion de voisinage dpend donc de la transformation locale considre. Ainsi, pour la transformation lmentaire voque plus haut dans l'exemple, le voisinage d'une chane

de

0-1 est l'ensemble des

chanes de

0-1 possdant exactement

n1

0-1 en commun avec

X.

Une autre transformation pourrait induire un voisinage de

cardinal dirent. Par exemple, celle dnie par le changement simultan de deux 0-1 n(n1) conduirait un voisinage possdant lments... 2 En pratique, on recherche en gnral des voisinages de tailles rduites dans laquelle 2 3 l'exploration peut tre ralise en temps polynomial (O (n), O (n ) au pire O (n )). Mais le tout est d'avoir un voisinage bien pense et ecace.

Un autre problme sous-jacent au voisinage est la faon de coder une solution. En eet, il peut y avoir direntes faon de coder la valeur d'une solution ce qui induit plusieurs techniques de recherche. Par exemple, un tour du TSP peut tre cod soit par les artes utilises, soit par la liste des villes dans l'ordre de la visite...

TABLE DES MATIRES

3.1.1

Quelques ides de voisinages possibles

Pour dnir le voisinage, on trouve frquemment une ou plusieurs des oprations suivantes mises en oeuvre, selon la nature du problme et du codage des solutions : -

complmentation (remplacement) : pour les solutions codes sous forme d'une

chane en 0-1. On a voqu plus haut cette transformation : on remplace un 0-1 quelconque de la chane par son complmentaire. Par exemple, 1 0 0 1 1 1 0 0 1 devient 1 0 0 1 1 0 0 0 1 par complmentation du sixime lment. On peut gnraliser cette transformation, lorsque la solution est code sous la forme d'une chane de caractres : en remplaant un (ventuellement plusieurs) caractre(s) quelconque(s) de la chane par un autre caractre (par autant d'autres caractres). -

change : lorsque la solution est code sous la forme d'une chane de caractres,

l'change consiste intervertir les caractres situs en deux positions donnes de la chane. Ainsi A B C D E F G devient A E C D B F G par change des positions 2 et 5. -

insertion-dcalage : supposons de nouveau que la solution est code sous la forme


et

d'une chane de caractres. L'insertion-dcalage consiste alors choisir deux positions

j,

insrer en position

le caractre situ en position

puis dcaler tous les

caractres anciennement situs entre

i (inclus) et j

(exclus) d'un cran droite si

i < j,

d'un cran gauche sinon. Par exemple A B C D E F G devient A B F C D E G par insertion-dcalage avec -

i=3

et

j = 6. i et j avec i < j , puis inverser i, i + 1,...,j 1, j . Par exemple

inversion : supposons encore que la solution est code sous la forme d'une chane de

caractres. L'inversion consiste choisir deux positions l'ordre d'criture des caractres situs aux positions

A B C D E F G devient A E D C B F G par inversion avec

i=2

et

j = 5.

Ces transformations locales dpendent d'un (pour la premire) ou de deux (pour les autres) paramtres. On peut concevoir des transformations locales dpendant d'un plus grand nombre de paramtres. Pour de nombreux problmes, les consquences de ces changements sont faciles valuer et la rptition de ces transformations (en les choisissant convenablement) un nombre de fois susant permet bien d'engendrer n'importe quelle solution. Ces transformations (ou les codages adopts pour reprsenter les

3.2

Initialisation et ritration des mthodes de recherche locale

solutions) ont parfois un inconvnient, provenant gnralement du fait que les congurations ainsi engendres ne sont pas toujours toutes pertinentes (un exemple tant celui du remplacement d'un caractre par un autre, dans le cas o la chane reprsentant une solution ralisable ne peut admettre plusieurs fois un mme caractre).

En pratique, un voisinage doit s'inspirer de la structure mme du problme. Il est par exemple important de choisir le bon codage de la solution pour

X.

Par exemple,

pour le problme du voyageur de commerce, il est possible de coder la solution par l'ordre des villes visit ou par un vecteur en 0-1 sur les artes du graphe...

3.1.2

Exemple de voisinage : le problme du voyageur de commerce

Pour le problme du voyageur de commerce, il est habituel de considrer comme transformation lmentaire celle qui consiste choisir deux artes non adjacentes dans le cycle hamiltonien (de la solution courante) et de les remplacer par les deux artes qui permettent de reconstituer un cycle hamiltonien. Cette transformation est appele 2-opt. Elle dnit, pour chaque solution, un voisin(n3) nage de lments. Elle peut en fait tre considre comme un cas particulier de 2 l'inversion voque plus haut. On peut la gnraliser en envisageant une transformation qu'on pourrait appeler par

k -opt

et qui consisterait remplacer simultanment

artes

autres convenablement choisies.

3.2

Initialisation et ritration des mthodes de recherche locale

Pour appliquer une mthode de recherche locale, il faut une solution de dpart. Celleci peut tre calcule tout fait alatoirement, ou bien provenir d'une autre mthode approche, par exemple d'un algorithme glouton. Lorsque la solution initiale est (au moins partiellement) alatoire, on peut alors appliquer plusieurs fois la descente en changeant chaque fois la conguration de dpart, et ne conserver nalement que la meilleure solution rencontre depuis la premire descente. Cette rptition permet alors d'attnuer l'inconvnient majeur de la recherche locale, c'est--dire d'tre locale.

Il est galement possible de concevoir une mthode gloutonne qui complterait une un morceau ralisable d'une solution. Par exemple, dans le cas d'un vecteur

0-1,

on ne conserverait que quelques valeurs des 0-1 et on s'autoriserait remplacer les autres de manire gloutonnes. Ainsi, on peut utiliser le schma suivant appel GRASP (Greedy Random Adaptative Procedure), initi par Feo et Resende en 1989. GRASP est compose de 2 tapes : une tape de construction gloutonne, suivie par

TABLE DES MATIRES

une tape de recherche locale. On ritre ensuite ces 2 tapes en utilisant pour le dpart de l'une la solution courante de la n de l'autre. Cette ide permet de cumuler les avantages de plusieures mthodes.

3.3

La mthode Tabou

3.3.1

Principe de la mthode Tabou

Mme si les premires ides concernant la mthode Tabou datent peut-tre de 1977, on peut plus srement la faire remonter aux alentours de 1986. Elle a t propose indpendamment par F. Glover d'une part, par P. Hansen puis P. Hansen et B. Jaumard d'autre part (sous un nom dirent). L'ide de dpart est simple. Elle consiste se dplacer de solution en solution en s'interdisant de revenir en une conguration dj rencontre. Plus prcisment, supposons qu'on a dni un voisinage

V (X )

pour chaque solution

X.

Supposons en outre qu'on

dispose toute itration de la liste

de toutes les congurations rencontres depuis le

dbut de l'excution de la mthode. Alors, partir de la conguration courante choisit dans la liste

X,

on

V (X ) \ T

la solution

qui minimise la fonction

H,

puis on ajoutant

T.

Autrement dit, on choisit parmi les congurations voisines de

mais non

encore rencontres celle qui descend le plus fortement si

n'est pas un minimum

local (par rapport la transformation lmentaire qui dnit le voisinage), ou celle qui remonte le moins sinon, et on ajoute

pour s'interdire d'y revenir.

3.3.2

La liste Tabou

En fait, il est rarement possible de pouvoir mettre en oeuvre ce principe : conserver toutes les congurations rencontres consomme en gnral trop de place mmoire et trop de temps de calcul pour savoir quelle conguration choisir dans le voisinage de la solution courante, puisqu'il faut comparer chaque voisin chaque lment de la liste

T.
D'un autre ct, supposons qu'on passe de il alors existe en redescend en

avec

Y V (X ) et H (Y ) > H (X ),

au moins une direction de descente dans son voisinage, celle qui

X!

Et on risque ainsi de boucler si on ne s'interdit pas, au moins provi-

soirement, un retour en

X.

Pour viter ces inconvnients sans tre oblige de conserver en mmoire toutes les congurations rencontres depuis le dbut, la mthode Tabou prconise la tactique suivante. Au lieu d'ajouter la solution courante

la liste

des congurations interdites

(taboues), on se contente, quand on remonte, de conserver en mmoire la transformation lmentaire qui a permis de passer de la conguration courante la suivante et

3.3

La mthode Tabou

on s'interdit d'appliquer son inverse : ce sont donc dsormais des mouvements qui sont tabous et non plus des congurations. Cette modication prsente son tour certains inconvnients. En interdisant des mouvements, on s'interdit aussi d'aller vers certaines solutions qui pourraient tre intressante. Pour ne pas trop appauvrir le voisinge de la onguration courante, on limite la taille de la liste

que l'on gre comme une le (premier entr, premier sorti). En

pratique, on choisit souvent une taille assez petite, qu'il faut dcider en la paramtrant. Suivant les cas, on prconise autour de la 10aine, de la centaine, rarement plus. Une taille plus petite risque de ne pas pouvoir empcher le bouclage, et une taille plus grande semble en gnral trop appauvrir les voisinages.

Il est ncessaire de prvoir un critre d'arrt : par exemple un nombre d'itrations que l'on s'autorise eectuer, o la stagnation de la meilleure valeur trouve depuis un certain nombre d'itrations...

3.3.3

Amliorations

Il existe peu de paramtres xer sur une mthode tabou ( part la taille de la liste). Mais comme l'on explore systmatiquement tout un voisinage, ce voisinage joue un rle majeur. De nombreuses variantes peuvent tre ajoutes cette mthode : manipuler plusieurs listes Tabou, interdire toute transformation inverse, associer chaque transformation lmentaire un compteur indiquant pendant combien d'itrations elle est taboue,... On peut galement s'autoriser passer outre le caractre tabou d'un mouvement dans certains cas. On appelle ce procd

l'aspiration

: on lui donne un paramtre

qui indique au bout de combien d'itration on s'autorise passer une solution taboue mais qui est intressante par rapport la valeur courante. Il existe d'autres tech-

niques intressantes pour amliorer la puissance de la mthode tabou, en particulier, l'intensication et la diversication. Toutes les deux se basent sur l'utilisation d'une mmoire long terme et se direncient selon la faon d'exploiter les informations de cette mmoire.

L'intensication se fonde sur l'ide d'apprentissage de proprits favorables :

les proprits communes souvent rencontres dans les meilleurs congurations visites sont mmorises au cours de la recherche, puis favorises pendant la priode d'intensication. Une autre manire d'appliquer l'intensication consiste mmoriser une liste de solutions de bonne qualit et retourner vers une des ces solutions. La

tion

diversica-

a un objectif inverse de l'intensication : elle cherche diriger la recherche vers

des zones inexplores. Sa mise en oeuvre consiste souvent modier temporairement la fonction de cot pour favoriser des mouvements n'ayant pas t eectus ou pnaliser les mouvements ayant t souvent rpts. L'intensication et la diversication jouent donc un rle complmentaire.

10

TABLE DES MATIRES

3.4

Les mthodes de descente

L'ide gnrale d'une mthode de descente est de toujours prendre dans un voisinage une solution meilleure que la solution courante. En ce qui concerne l'exploration du voisinage de la solution courante, plusieurs, attitudes peuvent tre adoptes : exploration alatoire, exploration systmatique pour dterminer un voisin meilleur, ou exploration exhaustive pour dterminer le meilleur voisin.

3.4.1

Descente simple et descente stochastique

La mthode de descente simple est inspir de la minimisation de fonctions continues, la descente simple consiste tout simplement choisir systmatiquement un sommet du voisinage qui amliore le plus la solution courante. L'algorithme s'arrte donc quand il n'est plus possible d'amliorer la solution. Cette descente simple n'est intressante que dans le cas o le voisinage est susemment petit, car il faut systmatiquement explorer le voisinage.

L'exploration stochastique (alatoire) consiste choisir alatoirement une solution voisine, puis de tester si elle amliore la solution courante :

Initialiser une valeur ralisable pour Tant que ncessaire faire

X Y
dans

Choisir alatoirement et uniformment si

V (X )

H (Y )

<

H (X )

alors

XY

Cette descente alatoire vite de visiter systmatiquement un voisinage qui serait trop grand.

Le critre d'arrt peut tre un nombre d'itrations sans amlioration jug susant, ou l'obtention d'une solution acceptable. Le dfaut de ces mthodes de descentes pures est de rester dans un minimum local sans trouver le minimum global. Elles sont nanmoins trs utilises pour tre une brique de GRASP (voir 3.2).

3.4.2

Algoritme du recuit simul

Le recuit simul (ou mthode de Monte-Carlo) provient de la physique molculaire o des molcules se positionnent de faon minimiser leur nergie quand la temprature baisse (c'est le principe de frappe des mtaux en ferronerie : chauer, puis refroidir avant de modeler le mtal). L'algorithme de principe est le suivant o fonction qui donne un chantillon uniforme et indpendant dans

RN D

est une

[0, 1]

3.4

Les mthodes de descente

11

T est une temprature X est l'tat initial, RX X (tat record)


Tant que ncessaire faire Choisir alatoirement et uniformment si si

Y V (X )

H (Y ) < H (RX ) alors RX Y H (Y ) < H (X ) alors X Y


si

sinon

Gnrer

H (X ) RN D exp( H (Y ) ) T une nouvelle temprature T

alors

XY

A chaque itration, on prend un voisin au hasard. Si ce voisin est meilleur, il devient le nouvel tat courant. Sinon, il devient le nouvel tat courant avec une certaine probabilit qui dpend la fois de la dirence des cots et de la temprature courante. Pour cette loi de probabilit, on utilise souvent cette fonctoon appele dynamique de Metropolis, mais d'autres fonctions sont possibles. La temprature de dpart doit tre susamment leve pour permettre d'accepter rgulirement des mauvaises transitions au dbut de l'algorithme. Cette temprature dcrot progressivement vers 0 durant le droulement de l'algorithme, diminuant ainsi la probabilit d'accepter des transitions dfavorables. Gnralement, l'algorithme doit s'arrter quand l'tat est "gel". C'est--dire que l'tat courant n'est plus modi (la temprature est trop basse pour accepter de mauvaises transitions). En pratique, on peut dcider d'une baisse de la temprature par pallier rguliers o la temprature s'abaisse ds qu'un objectif est atteint (nombre d'itrations, valeurs, stagnation,...).

Si la temprature baisse susamment lentement, et si le systme de voisinage vrie certaines proprits, le recuit converge en probabilit vers l'optimum. En eet, Hajek (1988) a nonc le thorme suivant : Thorme de convergence (Hajek 1988) : Si le systme de voisinage vrie les proprits D d'accessibilit et de rversibilit, et si partir d'un certain rang n, T o D ln(n+1) reprsente la profondeur maximale d'un minimum local, alors le recuit simul converge en probabilit vers l'ensemble des solutions optimales. Malheureusement, il est dicile (voire impossible) en pratique de vrier ces hypothses.

12

TABLE DES MATIRES

Les mthodes volutives


Le terme "algorithmes volutifs" englobe une autre classe assez large de mtaheuris-

tiques. Ces algorithmes sont bass sur le principe du processus d'volution naturelle. Les algorithmes volutifs doivent leur nom l'analogie entre leur droulement et le mcanisme de slection naturelle et de croisement des individus d'une population vivante sexue.

Un algorithme volutif typique est compos de trois lments essentiels : 1) une population constitue de plusieurs individus reprsentant des solutions potentielles (congurations) du problme donn. 2) un mcanisme d'valuation de l'adaptation de chaque individu de la population l'gard de son environnement extrieur 3) un mcanisme d'volution compos d'oprateurs permettant d'liminer certains individus et de produire de nouveaux individus partir des individus slectionns.

Du point de vue oprationnel, un algorithme volutif dbute avec une population initiale souvent gnre alatoirement et rpte ensuite un cycle d'volution suivant les principes en 3 tapes squentielles : - Evaluation : mesurer l'adaptation (la qualit) de chaque individu de la population - Slection : slectionner une partie des individus - Reproduction : produire de nouveaux individus par des recombinaisons d'individus slectionns Ce processus se termine quand la condition d'arrt est vrie, par exemple, quand un nombre de cycles (gnrations) ou quand un nombre d'valuations est atteint ou quand des solutions susamment bonnes sont trouves. Si l'on s'imagine que le processus suit le principe d'volution naturelle, la qualit des individus de la population doit s'amliorer au fur et mesure du processus.

Parmi les composantes d'un algorithme volutif, la population et la fonction d'adaptation correspondent respectivement la notion de conguration et la fonction d'valuation dans la recherche locale. La notion de mcanisme d'volution est proche de celle du mcanisme de parcours du voisinage de la recherche locale mais les oprateurs sont sensiblement dirents. En eet, un algorithme volutif comporte un ensemble d'oprateurs tels que la slection, la mutation et ventuellement le croisement. La

slection a pour objectif de choisir les individus qui vont pouvoir survivre ou/et se

reproduire pour transmettre leurs caractristiques la gnration suivante. La slection se base gnralement sur le principe de conservation des individus les mieux adapts et d'limination des moins adapts.

4.1

Cadre des algorithmes gntiques

13

Le

croisement

ou recombinaison cherche combiner les caractristiques des individus

parents pour crer des individus enfants avec de nouvelles potentialits dans la gnration future. La

mutation eectue de lgres modications de certains individus.


Suivant l'imagination des ses utilisateurs, on appelle ces mthodes algorithmes

gntiques, programmation volutive, stratgies d'volution, essaim de particules, colonie de fourmis,... Nous prendrons ici comme exemple, largement susant, des algorithmes dits gntiques. Notons qu'il s'agit ici d'une prsentation combinatoire de ces algorithmes qui ont aussi une version en optimisation continue.

4.1

Cadre des algorithmes gntiques

Les algorithmes gntiques peuvent se dnir partir d'un codage sous forme de chanes 0/1 de longueur xe et un ensemble d'oprateurs "gntiques" : la mutation, l'inversion et le croisement Un individu sous ce codage est un chromosome, un gne la composante de base du chromosome et un allle la valeur eective d'un gne (0 ou 1 ici). En d'autres termes, un chromosome, un gne et un allle reprsentent respectivement une solution (conguration), un attribut de la solution et la valeur de l'attribut. Les oprateurs gntiques sont dnis de manire oprer stochastiquement sur le codage sans aucune connaissance sur le problme. Par exemple, le croisement "bipoints" consiste choisir alatoirement deux points de croisement et changer les segments des deux parents dtermins par ces deux points. La mutation consiste simplement changer alatoirement la valeur de certains gnes. Le rle de la mutation dans les algorithmes gntiques est essentiellement de rintroduire de nouvelles valeurs pour des gnes alors que le croisement ralise uniquement des recombinaisons de valeurs existantes. Un cycle d'volution complet d'un algorithme gntique est form par l'application des oprateurs de slection, croisement et mutation sur une population de chromosomes.

L'universalit d'un tel algorithme pose des problmes d'ecacit en pratique. En eet, en tant que mthode d'optimisation, un algorithme gntique bas sur des oprateurs gntiques "aveugles" est rarement en mesure de produire des rsultats comparables ceux de la recherche locale. Une technique pour remdier ce problme consiste spcialiser l'algorithme gntique au problme donne. Plus prcisment, la place des oprateurs alatoires, la mutation et le croisement sont adapts en se basant sur des connaissances spciques du problme. De cette manire, la recherche est mieux guide et donc plus ecace.

14

TABLE DES MATIRES

4.2

Mise en oeuvre

Le choix du codage est important et souvent dlicat. L'objectif est bien sr d'abord de pouvoir coder n'importe quelle solution. Mais il est souhaitable, au-del de cette exigence, d'imaginer soit un codage tel que toute chane de caractres reprsente bien une solution ralisable du problme, soit un codage qui facilite ensuite la conception du croisement de telle sorte que les  enfants  obtenus partir de la recombinaison de leurs  parents  puissent tre associs des solutions ralisables, au moins pour un grand nombre d'entre eux. L'ide majeure conserver dans un algorithme gntique, en opposition aux mthodes de descentes, est de travailler plus sur la structure des solutions que sur leurs valeurs (on parle parfois de schma). C'est--dire qu'il faudrait pouvoir conserver une bonne structure au travers des individus : typiquement un morceau de solutions donnant une bonne valeur. D'autre part, le codage devrait tre tel qu'une petite variation dans le chromosome n'entrane pas une trop grande variation dans la conguration associe ce chromosome. Ainsi, une reprsentation en binaire des entiers ne s'accorde pas bien ce principe. En gnral, il n'est pas facile de construire un codage essayant de tenir compte de tous ces critres, si bien qu'on est parfois amen ne pas prendre en. considration certaines de ces indications.

4.2.1

La slection

La slection des individus sur lesquels on va appliquer le croisement fait intervenir la fonction minimiser : la probabilit de choisir l'individu que

sera d'autant plus grande

H (X )

sera faible. Une faon habituelle de faire intervenir sont de rpartir les indi-

selon des catgories et des tirages au sort. p H (Xi ) La probabilit de slectionner X , est proportionnelle 1 , avec F = i=1 H (Xi ) F F H (Xi ) et vaut donc . Ce qui donne chaque individu sa chance d'tre slectionn. AtF (p1) tention il faut des valeurs de des fonctions

vidus/solutions

X1 , X2 , ..., Xp

positives. Il faut souvent adapter cette ide en fonction

H.

Le but de la slection est de savoir quels individus sont conservs et lesquels serviront la reproduction.

4.2.2

Le croisement

L'objectif du croisement est de recombiner d'une certaine faon les chromosomes de deux (rarement plus) parents procrateurs an de former les chromosomes d'un ou de deux (rarement plus) enfants. Le croisement s'inspire du mcanisme observ dans le crossing-over de la gntique (et est d'ailleurs aussi appel ainsi) : on extrait une partie

4.2

Mise en oeuvre

15

du code associ chacun des parents, et on rorganise ces parties entre elles de faon former de nouveaux individus qui jouent le rle des enfants. Un croisement que l'on rencontre souvent est le  croisement un point . An de dcrire celui-ci, imaginons que l'on dcide de croiser deux individus reprsents chacun par un chromosome, respectivement

A et B

(les parents)

CA

et

CB .

Le croisement un

point consiste dterminer alatoirement une position (un gne) aprs laquelle on 1 2 coupe CA et CB : on obtient donc quatre morceaux de chromosomes CA et CA issus de 1 2 CA , et CB et CB issus de CB . On peut alors facilement former deux nouveaux individus (les enfants), obtenus par un change des morceaux de chromosomes : D aura 1 2 pour chromosome la concatnation de CA et de CB , et E aura pour chromosome celle 1 2 de CB et de CA . et Ce type de croisement fait que les couples d gnes n'ont pas tous la mme probabilit de rester ensemble (ainsi les extrmits d'un chromosome seront-elles systmatiquement spares), ce qui n'est pas toujours souhaitable. On peut alors, modier ce croisement en un  croisement deux points  (et plus gnralement

points)...

4.2.3

La mutation

Le dernier oprateur, la mutation, est conu pour apporter une certaine diversit dans la population et empcher que celle-ci ne converge trop vite vers un mme individu, ou vers un petit groupe d'individus, ce qui rendrait inoprant le croisement (si du moins celui-ci conserve les caractristiques des procrateurs). Il agit alatoirement sur le codage d'un individu, en remplaant un ou plusieurs des symboles du codage par autant d'autres symboles de l'alphabet. Par exemple dans le cas d'un entier cod en binaire, la mutation peut tre de changer un 1 en 0 ou un 0 en 1. Pour des problmes de position, la mutation consistera modier localement la solution associe l'individu muter par une opration approprie. Par exemple, pour le voyageur de commerce, on pourra considrer comme mutation une transformation du type 2-opt (c'est--dire un change en croix). Plus gnralement, on pourra s'inspirer des transformations lmentaires que sont les voisinages d'une solution ralisable. Attention, pour ne pas trop perturber la composition de la population et ne pas transformer les algorithmes gntiques en une errance alatoire, la mutation doit avoir une faible probabilit

p,d'tre

applique. On pourra, selon les cas, envisager

au plus une mutation par chromosome ou au contraire envisager ventuellement une mutation par gne. La valeur de probabilit devra tre choisie en consquence (plus faible dans le second cas que dans le premier).

16

TABLE DES MATIRES

4.2.4

Autres oprateurs

D'autres oprateurs sont possibles. Par exemple, celui qui consiste amliorer sparment les individus de la population, souvent l'aide d'une mthode d'amlioration itrative (mais on pourrait videmment envisager de lui substituer une mthode plus sophistique, comme le recuit simul ou la mthode Tabou). Dans leur conception originelle, les algorithmes gntiques n'intgrent pas cette ide qui modie sensiblement la philosophie de la mthode : le croisement peut alors paratre rduit un moyen d'chapper un minimum local que risquerait d'atteindre la mthode d'amlioration itrative sans pouvoir en sortir. On peut ventuellement interprter cette phase d'amlioration individuelle comme une sorte d'apprentissage permettant l'individu de mieux s'adapter l'environnement (que traduit la fonction optimiser).

La simulation
On appelle

moteur de simulation un algorithme reproduisant un systme complexe.

Par exemple, les simulateurs permettent de reprsenter un rseau de les d'attente entre machines d'usine an d'optimiser l'ordre dans lequel les pices circulent entre les machines. Un autre exemple est de reprsenter le plus dlement possible la circulation des voitures (par l'utilisation de la programmation object) an d'tudier virtuellement les embouteillages. Un systme sur lequel on essaye de rsoudre un problme d'optimisation combinatoire demande alors de faire fonctionner le moteur de simulation an d'observer pour quelle valeur (ordonnancement, solution,...) on obtient les meilleures valuation. Cette mthode est en quelque sorte celle qu'on utilise quand on ne sait rien faire face la dicult d'une structure combinatoire.