Documente Academic
Documente Profesional
Documente Cultură
2
2 2 3
Mta-heuristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 3
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
. . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4
12
13 14 14 14 15 16
La slection
La simulation
16
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-
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
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-
u ui
u2 ;
ui
le sommet
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
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.
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 )
Xi ).
Le choix de la solution
Xi+1
se fait
Xi
Xi+1
3.1
On dnit gnralement le voisinage d'une solution l'aide d'une transformation lmentaire (ou locale). On appelle une solution
de
comme lmentaire (ou locale) si elle ne modie que "faiblement la structure de la solution laquelle on l'applique.
3.1
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
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-
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
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
chanes de
n1
X.
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...
3.1.1
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 : -
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. -
j,
insrer en position
i (inclus) et j
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
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
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
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
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
artes
3.2
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
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
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 )
X.
dbut de l'excution de la mthode. Alors, partir de la conguration courante choisit dans la liste
X,
on
V (X ) \ T
la solution
H,
puis on ajoutant
T.
mais non
local (par rapport la transformation lmentaire qui dnit le voisinage), ou celle qui remonte le moins sinon, et on ajoute
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 ),
X!
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
(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
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.
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-
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
3.4
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
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 :
X Y
dans
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
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
11
Y V (X )
sinon
Gnrer
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
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
13
Le
croisement
parents pour crer des individus enfants avec de nouvelles potentialits dans la gnration future. La
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
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
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
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
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
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
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
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.