Professional Documents
Culture Documents
Prsent par
Souquet Amde
Radet Francois-Grard
TE de fin danne
Tutorat de Mr Philippe Audebaud
Avant propos
Les algorithmes gntiques, initis dans les annes 1970 par John Holland, sont des algorithmes
doptimisation sappuyant sur des techniques drives de la gntique et des mcanismes
dvolution de la nature : croisement, mutation, slection.
Nos travaux consisteront dfinir ces algorithmes volutionnaires, et les comparer aux mthodes
dterministes afin de pouvoir cerner leur utilit en fonction du problme pos. Le devoir
sarticulera sur deux axes principaux
qui serviront de fils conducteurs au passage de la thorie la pratique.
Dans un premier temps, nous nous attacherons lorigine des algorithmes gntiques, leur
appartenance dans le monde de la vie artificielle, et la thorie de lvolution des espces formule
par le naturaliste Charles Darwin, sur laquelle ces premiers sont bass.
Nous montrerons quels en sont les principes, de telle manire ce que nous puissions poursuivre
vers notre premier axe, qui se penchera sur les diffrentes mthodes de slection et introduira les
diffrents operateurs, qui soulignent la ncessit de diversit.
Sur ces bases, nous proposerons, dans notre dernire partie, de souligner laspect pragmatique de
ces algorithmes en illustrant leur utilisation et leur domaine dapplication dans les sciences
contemporaines.
Introduction
C'est en 1860 que Charles Darwin publie son livre intitul L'origine des espces au moyen de
la slection naturelle ou la lutte pour l'existence dans la nature. Dans ce livre, Darwin rejete
l'existence de systmes naturels figs, dj adapts pour toujours toutes les conditions
extrieures, et expose sa thorie de l'volution des espces : sous l'influence des contraintes
extrieurs, les tres vivants se sont graduellement adapts leur milieu naturel au travers de
processus de reproductions.
Darwin proposa une thorie qui clarifie lvolution des espces en mettant en avant quatre lois :
- La loi de croissance et de reproduction.
- La loi dhrdit quimplique quasiment la loi de reproduction
- La loi de variabilit , rsultant des condition dexistence.
- La loi de multiplication des espces qui amne la lutte pour lexistence et qui a pour
consquence la slection naturelle.
Presque simultanment, en 1866, Mendel ( le moine des poix ) publie larticle retraant dix
annes dexpriences dhybridation chez les vgtaux (recombinaison des gnes) et ladresse aux
socits scientifiques des quatre coins du monde. Les ractions sont mitiges, voire inexistantes. Le
monde scientifique nest pas prt reconnatre la qualit de ses rsultat. Ce n'est seulement en
1900, que la publication de trois nouveaux articles signs Hugo de Vries, Carl Correns et Erich von
Tschermark rvle des rsultats similaires ceux de Mendel,et feront que ces premiers seront
reconnus.
C'est alors partir du 20 me sicle que la mutation gntique a t mise en vidence.
Les problmes de traitement de l'information sont rsolus de manires figs : lors de sa phase de
conception, le systme reoit toutes les caractristiques ncessaires pour les conditions
d'exploitations connues au moment de sa conception, ce qui empche une adaptation des
conditions d'environnement inconnues, variables ou volutives. Les chercheurs en informatique
tudient donc des mthodes pour permettrent aux systmes d'voluer spontanment en fonction de
nouvelles conditions : c'est l'mergence de la programmation volutionnaire (cf. Figure 1).
Dans les annes 1960, John Holland tudie les systmes volutifs et, en 1975, il introduit le premier
modle formel des algorithmes gntiques (the canonical genetic algorithm AGC) dans son livre
Adaptation in Natural and Artificial Systems. Il expliqua comment ajouter de l'intelligence dans un
programme informatique avec les croisements (changeant le matriel gntique) et la mutation
(source de la diversit gntique). Ce modle servira de base aux recherches ultrieures et sera plus
particulirement repris par Goldberg qui publiera en 1989, un ouvrage de vulgarisation des
algorithmes gntiques, et ajouta la thorie des algorithmes gntiques les ides suivantes :
3) Une fonction optimiser. Celle-ci retourne une valeur appele fitness ou fonction d'valuation
de l'individu.
4) Des oprateurs permettant de diversifier la population au cours des gnrations et d'explorer
l'espace d'tat. L'oprateur de croisement recompose les gnes d'individus existant dans la
population, l'oprateur de mutation a pour but de garantir l'exploration de l'espace d'tats.
5) Des paramtres de dimensionnement : taille de la population, nombre total de gnrations ou
critre d'arrt, probabilits d'application des oprateurs de croisement et de mutation.
Les algorithmes gntiques fournissent des solutions aux problmes n'ayant pas de solutions
calculables en temps raisonnable de faon analytique ou algorithmique.
Selon cette mthode, des milliers de solutions (gnotypes) plus ou moins bonnes sont cres
au hasard puis sont soumises un procd d'valuation de la pertinence de la solution mimant
l'volution des espces : les plus "adapts", c'est--dire les solutions au problme qui sont les plus
optimales survivent davantage que celles qui le sont moins et la population volue par gnrations
successives en croisant les meilleures solutions entre elles et en les faisant muter, puis en relanant
ce procd un certain nombre de fois afin d'essayer de tendre vers la solution optimale.
Le mcanisme d'volution et de slection est indpendant du problme rsoudre : seules changent
trois fonctions :
la fonction inverse qui partir d'un chromosome permet d'obtenir une solution par dcodage du
gnme.
Les principales diffrences des algorithmes gntiques par rapport aux autres paradigmes sont les
suivantes :
On utilise un codage des informations : on reprsente toutes les caractristiques d'une solution
par un ensemble de gnes, c'est--dire un chromosome, sous un certain codage (binaire, rl,
code de Gray, etc ...), valeurs qu'on concatne pour obtenir une chane de
caractres qui est spcifique une solution bien particulire (il y a une bijection entre la
solution et sa reprsentation code
Les diffrents points introduits ci-avant vont maintenant tre tudis en dtail dans la section 3.
Section 1
Le codage
Chaque paramtre d'une solution est assimil un gne, toutes les valeurs qu'il peut prendre sont les
allles de ce gne, on doit trouver une manire de coder chaque allle diffrent de faon unique
(tablir une bijection entre l'allle "rl" et sa reprsentation code).
Un chromosome est une suite de gne, on peut par exemple choisir de regrouper les paramtres
similaires dans un mme chromosome (chromosome un seul brin) et chaque gne sera reprable
par sa position : son locus sur le chromosome en question.
Chaque individu est reprsent par un ensemble de chromosomes, et une population est un
ensemble d'individus.
Il y a trois principaux types de codage utilisables, et on peut passer de l'un l'autre relativement
facilement :
le codage rl : cela peut-tre utile notamment dans le cas o l'on recherche le maximum d'une
fonction relle.
le codage de Gray : dans le cas d'un codage binaire on utilise souvent la "distance de Hamming"
comme mesure de la dissimilarit entre deux lments de population, cette mesure compte les
diffrences de bits de mme rang de ces deux sequences.
Et c'est la que le codage binaire commence montrer ses limites. En effet, deux lments voisins
en terme de distance de Hamming ne codent pas ncessairement deux lments proches dans
l'espace de recherche. Cet inconvnient peut tre vit en utilisant un "codage de Gray" : le
codage de Gray est un codage qui a comme proprit que entre un lment n et un lment n + 1,
donc voisin dans l'espace de recherche, un seul bit diffre.
Section 2
L'oprateur de slection
Cet oprateur est charg de dfinir quels seront les individus de P qui vont tre dupliqus dans la
nouvelle population P' et vont servir de parents (application de l'oprateur de croisement).
Soit n le nombre d'individus de P, on doit en slctionner n/2 (l'oprateur de croisement nous
permet de repasser n individus).
Cet oprateur est peut-tre le plus important puisquil permet aux individus dune population de
survivre, de se reproduire ou de mourir. En rgle gnral, la probabilit de survie dun individu sera
directement relie son efficacit relative au sein de la population.
On trouve essentiellement quatre types de mthodes de slection diffrentes :
En effet, elle a une forte variance. Il n'est pas impossible que sur n slections successives
destines dsigner les parents de la nouvelle gnration P', la quasi-totalit, voire pire la
totalit des n individus slectionns soient des individus ayant une fitness vraiment
mauvaise et donc que pratiquement aucun individu voire aucun individu a forte fitness ne
fasse partie des parents de la nouvelle gnration. Ce phnomne est bien sr trs
dommageable car cela va compltement l'encontre du principe des algorithmes
gntiques qui veut que les meilleurs individus soient slctionns de manire converger
vers une solution la plus optimale possible.
A l'inverse, on peut arriver une domination crasante d'un individu "localement suprieur".
Ceci entrainant une grave perte de diversit. Imaginons par exemple qu'on ait un individu
ayant une fitness trs lve par rapport au reste de la population, disons dix fois suprieure,
il n'est pas impossible qu'aprs quelques gnrations successives on se retrouve avec une
population ne contenant que des copies de cet individu. Le problme est que cet individu
avait une fitness trs lve, mais que cette fitness tait toute relative, elle tait trs lve
mais seulement en comparaison des autres individus. On se retrouve donc face problme
connu sous le nom de "convergence prmature; l'volution se met donc stagner et on
atteindra alors jamais l'optimum, on restera bloqu sur un optimum local.
Il existe certaines techniques pour essayer de limiter ce phnomne, comme par exemple le
"scaling", qui consiste effectuer un changement d'chelle de manire augmenter ou
diminuer lde manire force a fitness d'un individu par rapport un autre selon leur cart de
fitness.
Malgr tout, il est conseill d'opter plutt pour une autre mthode de slction.
b) La mthode litiste .
Cette mthode consiste slctionner les n individus dont on a besoin pour la nouvelle
gnration P' en prenant les n meilleurs individus de la population P aprs l'avoir trie de
manire dcroissante selon la fitness de ses individus.
Il est inutile de prciser que cette mthode est encore pire que celle de la loterie biaise dans le
sens o elle amnera une convergence prmature encore plus rapidement et surtout de
manire encore plus sre que la mthode de slection de la loterie biaise ; en effet, la pression
de la slction est trop forte, la variance nulle et la diversit inexistante, du moins le peu de
diversit qu'il pourrait y avoir ne rsultera pas de la slection mais plutt du croisement et des
mutations.
L aussi il faut opter pour une autre mthode de slction.
Section 3
Le crossover utilis par les algorithmes gntiques est la transposition informatique du mcanisme
qui permet, dans la nature, la production de chromosomes qui hritent partiellement des
caractristiques des parents.
Son rle fondamental est de permettre la recombinaison des informations prsentes dans le
patrimoine gntique de la population.
Cet oprateur est appliqu aprs avoir appliqu l'oprateur de slction sur la population P; on
se retrouve donc avec une population P' de n/2 individus et on doit doubler ce nombre pour que
notre nouvelle gnration soit complte.
On va donc crer de manire alatoire n/4 couples et on les fait se "reproduire".
Les chromosomes (ensembles de paramtres) des parents sont alors copis et recombins de faon
former deux descendants possdant des caractristiques issues des deux parents.
Dtaillons ce qui se passe pour chaque couple au niveau de chacun de leurs chromosomes :
Un, deux, voire jusqu' lg - 1 (o lg est la longueur du chromosome) points de croisements (loci)
sont tirs au hasard, chaque chromosome se retrouve donc spar en "segments". Puis chaque
segment du parent 1 est chang avec son "homologue" du parent 2 selon une probabilit de
croisement pc . De ce processus rsulte 2 fils pour chaque couple et notre population P' contient
donc bien maintenant n individus.
On peut noter que le nombre de points de croisements ainsi que la probabilit de croisement p c
permettent d'introduire plus ou moins de diversit.
En effet, plus le nombre de points de croisements sera grand et plus la probabilit de croisement
sera lve plus il y aura d'change de segments, donc d'change de paramtres, d'information, et
plus le nombre de points de croisements sera petit et plus la probabilit de croisement sera faible,
moins le croisement aportera de diversit.
Ci-dessous, un schma illustrant un croisement en un point, un autre pour un croisement en deux
points, et enfin un schma reprsentant un croisement avec lg - 1 points de croisements (on notera
d'ailleurs sur ce schma que l'change d'un segement avec son homologue ne se fait pas toujours) :
On peut citer aussi une autre mthode trs utilise dans le cas des problmes modliss par un
codage binaire, il s'agit du croisement uniforme. La mise en oeuvre de ce procd est fort simple,
elle consiste dfinir de manire alatoire un "masque", c'est--dire une chane de bits de mme
longueur que les chromosomes des parents sur lesquels il sera appliqu. Ce masque est destin
savoir, pour chaque locus, de quel parent le premier fils devra hriter du gne s'y trouvant; si face
un locus le masque prsente un 0, le fils hritera le gne s'y trouvant du parent n 1, si il prsente un
1 il en hritera du parent n 2. La cration du fils n 2 se fait de manire symtrique : si pour un
gne donn le masque indique que le fils n 1 devra recevoir celui-ci du parent n 1 alors le fils n 2
le recevra du parent n2, et si le fils n 1 le reoit du parent n 2 alors le fils 2 le recevra du parent
n 1.
Loprateur de croisement favorise lexploration de lespace de recherche. En effet, considrons
deux gnes A et B pouvant tre amliors par mutation. Il est peu probable que les deux gnes
amliors A et B apparaissent par mutation dans un mme individu. Mais si un parent porte le
gne mutant A' et l'autre le gne mutant B', loprateur de croisement permettra de combiner
rapidement A et B et donc de crer un nouvel individu possdant cette combianaison,
combinaison grce laquelle il est possible qu'il soitt encore plus adapt que ses parents.
Loprateur de croisement assure donc le brassage du matriel gntique et laccumulation des
mutations favorables. En termes plus concrets, cet oprateur permet de crer de nouvelles
combinaisons des paramtres des composants.
Malgr tout, il est possible que l'action conjointe de la slection et du croisement ne permette pas
de converger vers la solution optimale du problme.
En effet, imaginons que nous avons une population d'individus possdant un seul chromosome.
Considrons un gne particulier de ce chromosome, on l'appelera G, gne ayant 2 allles possibles :
Section 4
L'oprateur de mutation
Cet oprateur consiste changer la valeur alllique d'un gne avec une probabilit p m trs faible,
gnralement comprise entre 0.01 et 0.001.
On peut aussi prendre p m = 1 / lg o lg est la longueur de la chane de bits codant notre
chromosome.
Une mutation consiste simplement en l'inversion d'un bit (ou de plusieurs bits, mais vu la
probabilit de mutation c'est extrmement rare) se trouvant en un locus bien particulier et lui aussi
dtermin de manire alatoire; on peut donc rsumer la mutation de la faon suivante :
On utilise une fonction cense nous retourner true avec une probabilit p m .
L'oprateur de mutation modifie donc de manire compltement alatoire les caractristiques d'une
solution, ce qui permet d'introduire et de maintenir la diversit au sein de notre population de
solutions. Cet oprateur joue le rle d'un "lment perurbateur", il introduit du "bruit" au sein de la
population.
Cet oprateur dispose de 4 grands avantages :
Il garantit la diversit de la population, ce qui est primordial pour les algorithmes gntiques.
Il permet d'viter un phnomne connu sous le nom de drive gntique. On parle de drive
gntique quand certains gnes favoriss par le hasard se rpandent au dtriment des autres et
sont ainsi prsents au mme endroit sur tout les chromosomes. Le fait que l'oprateur de
mutation puisse entraner de manire alatoire des changements au niveau de n'importe quel
locus permet d'viter l'installation de cette situation dfavorable.
Il permet de limiter les risques d'une convergence prmature cause par exemple par une
mthode de slection litiste imposant la population une pression slective trop forte. En effet,
dans le cas d'une convergence prmature on se retrouve avec une population dont tous les
individus sont identiques mais ne sont que des optimums locaux. Tous les individus tant
identiques, le croisement ne changera rien la situation. En effet, l'change d'informations par
crossover entre des individus strictement identiques est bien sr totalement sans consquences;
on aura beau choisir la mthode de croisement qu'on veut on se retrouvera toujours changer
des portions de chromosomes identiques et la population n'voluera pas. L'volution se
retrouvant bloque on n'attendra jamais l'optimum global.
La mutation entrainant des inversions de bits de manire alatoire permet de rintroduire des
diffrences entre les individus et donc de nous extirper de cette situation.
Il est quand mme utile de garder l'esprit que ceci n'est pas une solution "miracle" et qu'il est
bien entendu plus intelligent de ne pas utiliser de mthodes de slection connues pour entrainer
ce type de problme.
locus, on a la certitude mathmatique que n'importe quel permutation de notre chane de bits
peut apparatre au sein de la population et donc que tout point de l'espace de recherche peut tre
atteint.
Grce cette proprit on est donc sr de pouvoir atteindre l'optimum global.
On notera que la mutation rgle donc le problme expos la fin du Section sur le croisement.
Section 5
L'oprateur de remplacement
Cet oprateur est le plus simple, son travail consiste rintroduire les descendants obtenus par
application successive des oprateurs de slection, de croisement et de mutation (la population P')
dans la population de leurs parents (la population P).
Ce faisant il vont remplacer une certaine proportion de ceux-ci, proportion pouvant bien sr tre
choisie. Le rapport entre le nombre d'individus nouveaux allant tre introduits dans la population P
et le nombre d'individus de cette population est connu sous le nom de generation gap.
On trouve essentiellemnt 2 mthodes de remplacement diffrentes :
La deuxime mthode consiste choisir une certaine proportion d'individus de P' qui
remplaceront leurs parents dans P (proportion gale 100 % dans le cas du remplacement
gnrationnel.
Ce type de remplacement engendre une population ayant une grande variation et de se fait
favorise la drive gntique qui se manifeste d'autant plus que la population est de petite taille.
De plus dans bien des cas, tant donn que mme un enfant ayant une faible performance
remplace forcement un parent, on natteint pas la meilleure solution mais on sen approche
seulement.
Le remplacement litiste : dans ce cas, on garde au moins l'individu possdant les meilleures
performances d'une gnration la suivante. En gnral, on peut partir du principe quun nouvel
individu (enfant) prend place au sein de la population que sil remplit le critre dtre plus
performant que le moins performant des individus de la population prcdente. Donc les enfants
d'une gnration ne remplaceront pas ncessairement leurs parents comme dans le remplacement
stationnaire et par la mme la taille de la population n'est pas fige au cours du temps.
Ce type de stratgie amliore les performances des algorithmes volutionnaire dans certains
cas. Mais prsente aussi un dsavantage en augmentant le taux de convergence prmatur.
Nanmoins, des implmentations plus fines procdent de manire diffrente. Dans ce cas l, le taux
de remplacement n'est pas de 100 %, la taille de la population augmente donc au cours des
gnrations successives, on dit qu'il y a overcrowding. Il faut donc trouver un moyen pour
slectionner les parents qui seront supprims, qui vont mourir. De Jong a propos la solution
suivante : imaginons qu'on veuille remplacer 30 % des parents, soit np le nombre de parents
correspondants ce pourcentage, on remplacera les np parents les plus proches de leurs
descendants de P'. Cette mthode permet donc premirement de maintenir la diversit et
deuximement d'amliorer la fitness globale de la population.
Section 6
l'intervalle [0, 31] plus la valeur de x sera leve plus on se rapprochera du maximum de la fonction
identit et donc plus la fitness sera grande. Soit la population initiale suivante :
On fait tourner la roue 4 fois de suite, en gnral on fait tourner n / 2 fois, soit 2 fois dans ce cas,
mais le nombre 2 tant trop petit on dcide de la faire tourner 4 fois. On obtient la nouvelle
population :
Figure 12: rsultat de l'application de l'oprateur de croisement avec un point de crossover sur les
individus slectionns par la loterie biaise
On applique l'oprateur de mutation qui choisit de manire alatoire si on doit faire une mutation et
sur quel locus la faire :
Figure 13: rsultat de l'application de l'oprateur de mutation sur les individus engendrs par croisement
En une seule gnration le maximum est pass de 24 27, et la fitness globale de la population a
relativement augmente pour passer de 59 71. On s'arrte ici pour cet exemple mais dans la ralit
on continuera engendrer des gnrations successives jusqu' obtenir le maximum global : 31.
Le seul intrt de cet exemple tait de montrer une trace simple, sur une gnration, de l'application
successive des diffrents oprateurs. Il est bien sr vident qu'un tel "problme" ne ncessitait pas
l'utilisation d'algorithmes gntiques.
Dans la partie suivante nous allons exposer diffrents problmes, problmes considrs comme
difficiles, ncessitant un temps de calcul important avec une approche algorithmique classique, et
exposer des mises en oeuvre possibles l'aide d'algorithmes gntiques. On montrera en quoi les
algorithmes gntiques amliorent la rapidit de rsolution, ou carrment permettent une rsolution
qui n'aurait pas t possible autrement vu la taille des entres du problme et sa complexit en
temps.
II
Section 7
Nous allons maintenant nous interesser une application plus concrte : le problme du voyageur
de commerce. Cet exemple est un classique appartenant la classe des problmes NP-complets.
Il consiste visiter un nombre N de villes en un minimum de distance sans passer deux fois par la
mme ville. Il s'agit donc d'optimiser le cot d'un parcours dans un graphe complet possdant un
certain nombre de sommets, en passant une et une seule fois par chacun. Des mthodes
dterministes existent dj pour rsoudre le problme, mais le temps de calcul est trs long : elles
reviennent parcourir toutes les solutions possibles et dterminer la moins coteuse.
Le but sera ici de montrer comment modliser le problme partir d'algorithmes gntiques et des
divers oprateurs que nous avons disposition, qui ont t dfinis antrieurement.
Ceci nous conduira ensuite montrer les avantages de cet outil par rapport une rsolution de type
dterministe.
Reprsentation du problme :
Le problme du voyageur de commerce peut se modliser l'aide d'un graphe complet de n
sommets dont les arrtes sont pondres par un cot strictement ngatif. Pour l'implantation de
notre algorithme, l'instance sera modlise comme distance euclidienne sur n points du plan, pour
construire la matrice de cot.
L'espace de recherche :
L'espace de recherche est l'ensemble des permutations de {1, 2, ..., n }.
Un point de cet espace de recherche est reprsent par une de ces permutations.
Codage des points de l'espace de recherche :
Une premire ide serait de coder chaque permutation (i.e : chaque point de l'espace de recherche)
par une chane de bits.
Par exemple, pour n = 10 :
0011 0111 0000 0100 0001 0010 0101 0110
reprsente la permutation :
3 7 0 4 1 2 5 6
On s'aperoit bien que chaque lment de l'ensemble de permutation est cod sur :
i = E ( ln ( n ) / ln ( 2 ) ) bits , E tant la fonction de partie entire.
Sachant qu'une permutation est de taille n, la chaine de bits sera alors de taille n * i.
Reprsentation d'une solution :
Comme nous l'avons dja dit le voyageur de commerce doit revenir son point de dpart et passer
par toutes les villes une fois et une seule. Nous avons donc cod une solution par une structure de
donnes comptant autant d'lments qu'il y a de villes, c'est dire une permutation. Chaque ville y
apparait une et une seule fois. Il est alors vident que selon la ville de dpart que l'on choisit on
Slection :
Nous utilisons ici la mthode de slection par roulette. On calcule d'abord la valeur moyenne de la
fonction d'valuation dans la population :
individus pour la
reproduction. Il y a aussi la possibilit d'avoir une politique d'litisme. C'est dire qu' chaque
tape de slection le meilleur chromosome est automatiquement slectionn (cf. partie 2).
Croisement :
Etant donn deux parcours il faut combiner ces deux parcours pour en construire deux autres.
Nous pouvons suivre la mthode suivante :
1. On choisi alatoirement deux points de dcoupe.
2. On interverti, entre les deux parcours, les parties qui se trouvent entre ces deux points.
3. On supprime, l'extrieur des points de coupe, les villes qui sont dja places entre les
points de coupe.
4. On recense les villes qui n'apparaissent pas dans chacun des deux parcours.
5. On remplit alatoirement les trous dans chaque parcours.
Mutation :
Il s'agit ici de modifier un des lments d'un point de l'espace de recherche, soit d'une permutation.
Dans notre cas, cela correspond donc une ville. Quand une ville doit tre mute, on choisit
alatoirement une autre ville dans ce problme et on intervertit les deux villes.
savoir : plus notre chemin sera court, plus la fitness qui lui est associe sera forte.
On en dduit alors rapidement qu'il faut que la valeur d'adaptation varie dans le sens inverse de la
distance correpondante au parcours. Par souci de simplicit, on pourra ventuellement choisir
comme valeur d'adaptation, l'inverse de la longueur du parcours.
On s'aperoit bien alors que cette algorithme est alatoire (ou dit approximatif) dans le sens ou elle
se base sur des mthodes de calculs non dterministes. L'exprience (i.e la programmation) montre
que les rsultats obtenus sont convaincants, nous parvenons obtenir un ensemble de bonnes
solutions en un temps raisonnable.
ALGORITHME ABSTRAIT :
Il s'agit dans un premier temps d'tablir un ensemble de gnes G. Ceci tant fait, il faut alors dfinir
deux fonctions, qui respectivement permettront de croiser deux ensembles de gnes et de raliser
une mutation sur deux ensembles de gnes.
Muter(G g){
Pour chaque variable v de g
Si un nombre alatoire de 0 99 est infrieur un certain nombre entre 0 et 99
// On echange deux variables car on ne peut avoir 2 villes semblables
dans le meme parcours.
Echanger v et vAutre;
Fin Pour
}
Ds lors, il nous faut une procdure qui puisse noter les gnomes ou permutations dnotant un
parcours ( dans le cas de notre exemple du voyageur de commerce ).
Voici donc une procdure slection qui renvoie les lments les plus interessants d'un gnomes ( ce
sera dans le cas du voyageur de commerce, les lments de fitness la plus grande ). Le choix est
sinon laiss au programmeur.
SelectionNaturelle(G g[],N){
// On trie les lments la fitness la plus grande vers ceux elle est la plus
petite.
Trier g par les g[i] dans l'ordre dcroissant.
Retourner les N premiers lments de g
}
A prsent que nous avons tous les lments dont nous avons besoin, nous pouvons construire
l'algorithme final :
AlgoGene(G g[N]){
// Tant qu'il y a des parcours .
Tant que (g[i] != NULL)
// N pour gi, N-1 pour gj .
G r[N*(N-1)];
k=0;
Pour chaque gi dans g[N]
Pour chaque gj dans g[N]
Si gi!=gj alors
r[k]=Croiser(gi,gj);
Muter(r[k++]);
Fin Si
Fin Pour
Fin Pour
g=SelectionNaturelle(r,N);
Fin Tant Que
}
Comparaison de complexit :
Un calcul rapide de la complexit montre qu'elle est en O(n!) o n est le nombre de villes.
En supposant que le temps pour effectuer un trajet est d' 1 s, le tableau 1 tmoigne de l'explosion
combinatoire.
NB VILLES
NB POSSIBILITES
TEMPS DE
CALCUL
120
120s
10
181440
0.18 ms
15 43 MILLIARDS
20
60 E +15
12 h
1928 ans
25 310 E + 21
9,8 Milliards A.
complexit via une mthode de rsolution avec algorithmes gntiques (mthode approximative) :
NB VILLES
NB POSSIBILITES
TEMPS DE
CALCUL
25
25 s
10
100
100 s
15
225
225 s
20
400
400 s
Les rsultats entre la mthode deterministe et approximative ne sont pas comparables en soi, elles
utilisent des mthodes diffrentes pour arriver des rsultats diffrents. Comme dis prcdemment,
dans un cas, on cherche la solution optimale , dans le second (cf. tableau 2), une solution presque
optimale.
On s'aperoit bien l'aide de ces calculs que pour parvenir ces solutions on consomme
respectivement un temps exponentiel (explosion combinatoire) et un temps polynomial
(quadratique) par rapport au nombre de villes.
Maintenant que nous avons vu comment rsoudre le problme du voyageur de commerce l'aide
des algorithmes gntiques, et que nous en avons fait les comparaisons avec une mthode de
rsolution classique, nous allons aborder le domaine d'application au data mining .
Section 8
Application au data-mining
Le data-mining consiste extraire des informations intressantes partir d'une masse
importante de donnes. L'exemple qu'on prsentera ici est issu du travail de recherche de Wesley
Romo, Alex A. Freitas et Itana M. de S. Gimenes. Dans cet exemple, la dcouverte d'informations
intressantes, de connaissances utiles, sera aborde sous l'angle de la recherche de rgles de
prdiction IF-THEN, forme de reprsentation trs populaire dans le domaine du data-mining.
Une rgle IF-THEN peut tre dcrite de la manire suivante : si un ensemble de conditions sont
prsentes, sont vrifies, alors on peut en dduire une information, une connaissance.
Dans cet exemple on s'attachera tudier un algorithme gntique conu pour dcouvrir des rgles
de prdiction floues, c'est--dire reprsentes en logique floue. Cet algorithme cherchera
dcouvrir des rgles de prdiction qui sont intressantes car nouvelles et surprenantes pour
l'utilisateur. Ceci est mis en oeuvre en utilisant une technique se basant sur les gots, les
impressions de l'utilisateur. Plus prcisment, une rgle de prdiction sera considre comme
intressante ou surprenante dans la mesure o elle apporte de l'information, de la connaissance qui
non seulement n'tait pas connue pralablement de l'utilisateur, mais qui plus est contredit ses
impressions, ses gots initiaux.
De plus, l'utilisation de la logique floue nous aide amliorer la comprhensibilit des rgles
dcouvertes par l'algorithme gntique. Ceci est d l'utilisation de termes linguistiques qui sont,
d'appartenance des conditions aux diffrents ensembles flous sur lesquels on travaille; ce point sera
dvelopp plus bas. On prend aussi en compte les impressions gnrales de l'utilisateur par rapport
au domaine d'application, de manire favoriser la dcouverte de rgles surprenantes. On est donc
dans une approche subjective de la dcouverte de rgles de prdiction, car l'utilisateur intervient
dans le processus de dcision, l'utilisateur devant avoir alors une certaine connaissance du domaine
d'application.Au contraire, l'approche objective utilise des mthodes de dcouverte de rgles de
prdiction et de mesure de leurs qualit indpendante de l'utilisateur.
L'approche objective est donc plus gnrale et autonome que l'approche subjective, alors que
l'approche subjective a le grand avantage d'utiliser les connaissances de l'utilisateur pour guider la
recherche des rgles de prdiction. Par consquent, si le domaine d'application est bien dfini et
qu'un utilisateur expert excute cette application, il est intressant d'utiliser cette approche.
Le problme tant maintenant pos et l'intrt de cette approche ayant t expos, on va tcher d'en
expliquer la mise en oeuvre de l'algorithme gntique sur lequel elle est base.
Le codage :
Chaque individu reprsente une rgle de prdiction. Plus prcisment, chasue individu reprsente
l'antcdent (partie IF) d'une rgle de prdiction. La consquence de la rgle (la partie THEN) n'est
pas encode dans le gnome. Elle est fixe tout au long de l'excution de l'algorithme gntique, de
sorte qu' chaque excution de l'algorithme, la totalit de la population est forme d' individus
reprsentant des rgles ayant la mme consquence, c'est--dire la mme valeur prdite pour un
attribut du but fix par l'utilisateur.
De plus, les rgles de prdiction reprsentes par les individus sont floues. On insiste sur le fait que
seulement les antcdents de la rgle sont "floutts", c'est--dire voient les valeurs de leurs
ventuels attributs continus tre remplaces par un trs petit nombre de termes linguistiques dits
flous; cela ne concerne pas bien sr les attributs dits catgoriels comme par exemple le sexe, la
nationalit, etc... qui ne doivent bien sr pas tre floutts. Les consquences des rgles, quant
elles, sont toujours prcises.
Le gnome d'un individu reprsente une conjonction de conditions spcifiant un antcdent de rgle
de dduction. Chaque condition est reprsente par un gne qui consiste en un doublet attributvaleur de la forme Ai = V i , j o Ai est le i-me attribut et V i , j est la j-me valeur
appartenant au domaine de Ai .
De manire simplifier l'encodage des conditions dans le gnome, on utilise un encodage
positionnel o la i-me condition est encode dans le i-me gne. Par consquent, il est seulement
ncessairede reprsenter la valeur V i , j de la i-me condition dans le gnome puisque l'attribut de
la i-me condition est implicitement dtermine par la position du gne dans le gnome.
De plus, chaque antcdent contient un flag boolen qui indique si la i-me condition est prsente
ou pas dans l'antcdent de la rgle. Par consquent, bien que tous les individus aient la mme
longueur pour leur gnome, des individus diffrents reprsentent des rgles de longueurs diffrentes
selon la valeur des flags boolens.
Cette reprsentation flexible est bien-sr souhaitable dans des rgles de prdiction. Comme
personne ne connait, a priori, combien de conditions seront ncessaires pour crer une bonne rgle
de prdiction, ce nombre doit tre ajust automatiquement par l'algorithme gntique en se basant
sur l'ensemble de donnes qu'on est en train d'tudier.
La structure du gnome d'un individu est illustre ci-dessous avec m le nombre d'attributs qu'on
analyse.
Le schma ci-dessus illustre le cas o un attribut continu peut tre floutt en 3 valeurs linguistiques
diffrentes. On remarque que les fonctions d'appartenance aux 3 valeurs linguistiques diffrentes,
aux 3 ensembles, sont spcifies par 4 paramtres nots p1 , p 2 , p3 et p 4 avec
p1 p 2 p 3 p 4 . Chaque paramtre reprsente une valeur continue, qui est utilise pour
spcifier les coordonnes de 2 sommets de trapze appartenant un doublet de fonctions
d'appartenance "adjacentes". Cette reprsentation impose de nombreuses contraintes souhaitables
sur les ensembles flous. Premirement, chaque valeur de dpart (continue) d'un attribut appartient
au moins un des ensembles flous. Deuximement, chaque ensemble flou est unimodal et normal, la
condition de normalit veut dire que le degr d'appartenance maximum de tout lment est 1.
Troisimement, il contient un petit nombre un petit nombre de valeurs linguistiques. En gnral,
ces contraintes aident ce que les ensembles flous aient une bonne comprhensibilit pour
l'utilisateur.
La fonction de fitness :
On rappelle que dans la grande majorit des applications de data-mining, le critre principal
d'valuation de la qualit d'une rgle est la prcision de sa prdiction. Dans le cas de notre exemple,
ce critre est important mais ce n'est pas le seul, en effet une rgle peut tre prcise mais totalement
inutile. Pour viter cela, la fonction de fitness de notre exemple prend en compte la fois le critre
de prcision de la rgle qu'on notera Acc et le critre d'intrt, de surprise qu'on notera Surp. Ces
deux critres sont combins en une seule et unique formule de la faon suivante :
Fitness(i) = Acc(i) * Surp(i)
Nous allons mettant nous attacher exposer comment calculer le degr de prcision et le degr de
surprise d'une rgle de prdiction.
Mesure de la prcision :
La premire tape pour mesurer la prcison prdictive d'une rgle floue est de calculer la
mesure dans laquelle un individu appartient un antcdent de rgle, c'est--dire une
conjonction de conditions. On utilise l'operateur flou ET o le degr d'appartenance d'un
individu un antcdent de rgle est donn par :
z
min i
i=1
CorrPred
Acc i=
TotPred
Dans cette formule, CorrPred (le nombre de prcisions correctes) est la somme des degrs
d'appartenance A de tous les individus qui ont la valeur V i , j prdite par la rgle. TotPred
(nombre total de prdictions) est la somme des degrs d'appartenance A de tous les individus.
1
de CorrPred est de pnaliser les rgles trop
2
spcifiques, qui s'adaptent trop aux donnes. Par exemple, supposons qu'on ait un CorrPred
1
valant 1 et un TotPred valant lui aussi 1. Si on ne soustrait pas
de CorrPred, la formule
2
renverra une prcision de prdiction de 100 % pour la rgle, ce qui est intuitivement une
1
estimation sur-optimiste de sa prcision. Cependant, si on soustrait
CorrPred, la
2
formule renverra une prcision de 50 %, ce qui semble tre une estimation plus plausible de la
prcision, tant donn que la rgle est trop spcifique. EN clair, pour de grandes valeurs de
1
CorrPred et de TotPred, la soustraction de
n'aura pas une influence significative sur la
2
valeur retourne par la formule, de sorte que la soustraction ne pnalise quer les rgles trs
spcifiques, qui ne couvrent qu'un nombre trs limit d'individus.
La raison pour laquelle on soustrait
Une rgle est considre comme surprenante, contredisant les impressions gnrales de
l'utilisateur, dans la mesure o Ri et GI j ont des antcdents similaires mais des
consquences contradictoires. En d'autres termes, plus la similarit entre les antcdents de
Ri et de GI j est importante et plus le degr contradictoire des consquences de Ri et de
GI j est important, plus le degr de surprise de Ri par rapport GI j est lev.
Pour chaque paire de rgles Ri et GI j , avec i variant de 1 R et j variant de 1
GI , l'algorithme gntique calcule le degr de surprise de Ri par rapport GI j en
trois tapes :
1re tape : trouver les impressions gnrales dont les consquences contredisent la
consquence de Ri .
La consquence de Ri contredit la consquence d'une impression gnrale GI j si et
seulement si Ri et GI j ont le mme attribut de but mais une valeur diffrente pour cet
attribut. Par exemple, cela se produirait dans l'exemple suivant : si Ri prdit que "salaire =
bas" et que GI j prdit quant lui que "salaire = lev".
Si Ri et GI j prdisent des attributs de but diffrents ou si ils prdisent la mme valeur
pour le mme attribut de but, alors elles ne sont pas considrs comme contradictoires. Dans
ce cas, le degr de surprise de Ri par rapport GI j est considr comme nul (il vaut 0), et
l'tapes 2 et 3 sont ignores.
AS i , j=
Ai , j
max Ri ,GI j
valeur de l'ensemble {bas, lev} soit une valeur de l'ensemble {bas, moyen, lev}, cela
dpend de l'attribut de but (le choix entre ces 2 domaines pour un attribut est fait par
l'utilisateur pour chaque attribut).
Si la diffrence entre les consquences de Ri et GI j est que l'une vaut bas et l'autre vaut
lev, caractrisant la plus grande diffrence possible entre ces consquences, alors Surp(i,j) sa
voit assigne la valeur de AS i , j . Si la diffrence entre les consquences de R i et GI j est
que l'une vaut moyen et l'autre vaut bas ou lev, caractrisant une diffrence plus limite entre
ces consquences, alors Surp(i,j) se voit assigne la moiti de la valeur de AS i , j , c'est-dire que Surpi , j =0.5AS i , j .
Une fois que ces 3 tapes ont t faites pour toutes les impressions gnrales, par rapport une
rgle donne Ri , ont t calcul tous les degrs de surprise de Ri par rapport chaque
impression gnrale de l'utilisateur. On est donc en mesure de calculer le degr de surprise de
Ri par la formule suivante :
GI
Surpi =max [ AS i , j ]
j=1
Algorithme abstrait :
Spcifier, avec l'aide de l'utilisateur, les fonctions d'appartenance des attributs devant tre floutts.
Obtenir les impressions gnrales de l'utilisateur.
PourChaque consquence de rgle (doublet attribut de but - valeur) faire
Calculer la frquence relative de la valeur de cet attribut de but dans l'ensemble qu'on tudie
au travers du data-mining.
Gnrer aatoirement la population.
Appeler la fonction Calcule_Fitness.
Pour g de 1 nombre de gnrations engendrer faire
Gnrer une nouvelle population.
Appliquer l'oprateur de slection.
Appliquer l'oprateur de croisement.
Appliquer l'oprateur de mutation.
Appliquer l'oprateur d'insertion de conditions dans une rgle.
Appliquer l'oprateur de suppression de conditions d'une rgle.
Appeler la fonction Calcule_Fitness.
FinPour
Renvoyer l'utilisateur la rgle ayant la fitness maximale avec les contraintes suivantes :
(Surp > 0) ET (Acc > max(0.5, FreqRel))
FinPourChaque
Procdure Calcule_Fitness
Calculer la prcision (Acc) de chaque rgle (individu) en ralisant une mise en correspondance
floue entre chaque rgle et les donnes de l'ensemble tudi au travers du data-mining.
Calculer le degr de surprise (Surp) de chaque rgle en mettant en correspondance la rgle avec
chaque impression gnrale de l'utilisateur.
Calculer la fitness de chaque rgle.
FinProcdure
Chaque itration de la boucle principale (la boucle PourChaque) cherche dcouvrir la meilleure
rgle possible (au niveau de la prcision et de la surprise) prdisant une consquence donne.
L'algorithme renvoie une rgle pour chaque consquence devant tre prdite. La rgle renvoye doit
satisfaire 2 conditions : Surp > 0 et ACC > max(0.5, FreqRel). La premire condition requiert
simplement que le degr de surprise de la rgle soit suprieur 0, de sorte ce que cette rgle
puisse tre au moins considre comme potentiellement intressante dfaut de l'tre rellement.
L'intrt de la deuxime condition peut tre expos en tudiant 2 cas bien prcis.
Premier cas :
supposons que la frquence relative (dans l'ensemble de donnes sur lequel on travaille) de la
valeur
de l'attribut de but prdit par cette rgle soit suprieure 0.5. Il est alors logique de demander ce
qu'une rgle prdite par l'algorithme gntique ait une prcision suprieure sa frquence relative
d'apparition dans l'ensemble de donnes sur lequel on travaille.
Deuxime cas :
suppossons maintenant que la frquence relative de la valeur de l'attribut du but prdit par cette
rgle soit infrieure 0.5. Il est toujours logique de demander ce que la prcision de la rgle
prdite par l'algorithme gntique soit suprieure sa frquence relative d'apparition dans
l'ensemble de donns qu'on tudie, mais maintenant cette condition est beaucoup plus facile
satisfaire. Par exemple si la frquence relative vaut 0.2 et que la prcision de la rgle produite par
l'algorithme gntique vaut 0.3 alors la condition (prcision > frquence relative) serait satisfaite,
mais la rgle resterait quand mme une mauvaise rgle car ayant une prcision faible. C'est pour
cela qu'on force la prcision de la rgle devant tre prdite tre suprieure 0.5, pour imposer que
les rgles prdiction dcouvertes par l'algorithme gntique aiant toujours une prcision acceptable,
raisonnable. La condition Acc > max(0.5, FreqRel) nous permet donc d'imposer ces deux
contraintes en une formule simple et concise.
Rsultats :
Les 3 chercheurs ont effectu des tests de leur algorithme gntique sur une base de donnes de
5690 enregistrements. Chaque enregistrement contenait des attributs dcrivant un chercheur et sa
production scientifique. De cette base de donnes ils ont dgags 24 attributs et toutes les
enregistrements de la base de donnes ne contenant pas une valeur pour chacun de ces 24 attributs
ont t limins.
Parmi ces 24 attributs, 6 ont t utiliss comme des attributs dont on devait prdire la valeur l'aide
d'une rgle de prdiction que l'algorithme gntique devait se charger de dcouvrir, et les 18 autres
ont t utiliss comme des attributs servant dduire les valeurs des 6 autres.
Parmi les 18 attributs servant prdire les valeurs des 6 autres, 8 taient catgoriel et donc stricts :
la nationalit du chercheur,
son sexe,
Les 10 autres taient continus et ont donc t floutts en 2 termes linguistiques {low, high} ou en 3
termes linguistiques {low, medium, high}, grce aux informations donnes par l'utilisateur
(fonctions d'appartenance); voici la liste de ces 10 attibuts continus :
le niveau d'instruction,
l'ge,
Les 6 attributs de but dont on doit prdire les valeurs pour un chercheur donn en se basant sur les
informations dont on dispose dans la base de donnes, nots G 1 , ... , G 6 ,sont les suivants :
G 1 est le nombre d'articles publis dans des journaux nationaux, il peut prendre trois valeurs
floues diffrentes : low, medium, ou high.
G 2 est le nombre d'articles publis dans des journaux internationaux, il peut prendre trois
valeurs floues diffrentes : low, medium, ou high.
G 3 est le nombre de chapitres crits dans des livres dits au niveau national, il peut prendre
trois valeurs floues diffrentes : low, medium, ou high.
G 4 est le nombre de chapitres crits dans des livres dits un niveau international, il peut
prendre 2 valeurs floues diffrentes : low ou hogh,
G 5 est le nombre de livres crits qui sont dits au niveau national, il peut prendre 2 valeurs
floues diffrentes : low ou high.
G 6 est le nombre de livres crits qui sont dits un niveau international, il peut prendre 2
valeurs floues : low ou high.
Tous les rsultats obtenus ont t compars avec ceux obtenus par un algorithme de construction
d'arbres de dcision trs connu du data-mining, mais qui n'est pas un algorithme gntique,
l'algorithme J4.8, voivi les rsultats qu'ils ont obtenus :
Figure 24 : Taux de prcison des prdictions ralises par l'algorithme gntique et l'algorithme J4.8
La premire colonne identifie l'attribut de but prdit par la rgle de prdiction dcouverte, la
deuxime identifie la valeur prdite pour cet attribut, la troisime donne la valeur de la frquence
relative de cet attribut de but dans la base de donnes qu'on tudie, enfin la quatrime et la
cinquime colonne donne le taux de prcision de la prdiction effectue respectivement par
l'algorithme J4.8 et par l'algorithme gntique.On voit que sur ce point l les rsultats fournit par les
2 algorithmes se valent.
Figure 25: Mesure de l'intrt des rgles dcouvertes par l'algorithme J4.8 et de celles
dcouvertes par l'algorithme gntique.
La premire colonne identifie l'attribut de but prdit par la rgle de prdiction dcouverte, la
seconde et la troisime donne le degr d'intrt (surprise et contradiction des impressions gnrales,
des connaissances initiales de l'utilisateur) des rgles dcouvertes respectivement par l'algorithme
gntique J4.8 et par l'algorithme gntique.
Sur ce point la supriorit de l'algorithme gntique sur l'algorithme J4.8 apparait nettement.
Au travers de ces rsultats les chercheurs ont observs que plus une rgle est simple (c'est--dire
qu'elle a un petit nombre de conditions dans son antcdent), plus elle est intressante pour
l'utilisateur. Les chercheurs ont alors compar l'intrt d'une rgle en fonction de son nombre du
nombre de conditions qu'elle contient dans son antcdent et l l'avantage de l'algorithme gntique
sur l'algorithme J4.8 est vraiment flagrant.
Figure 26: Analyse de la simplicit d'une rgle dcouverte par l'algorithme J4.8 en fonction du nombre de
conditions qu'elle contient dans son antcdent.
Figure 27: Analyse de la simplicit d'une rgle dcouverte par l'algorithme gntique en fonction du
nombre de conditions qu'elle contient dans son antcdent.
l, et mme lui proposer des articles par lesquels il n'aurait jamais cru pouvoir tre intress mais
qu'il va finalement apprcier et se dcider acheter !
Conclusion
On sait que les applications des algorithmes gntiques sont multiples : optimisation de fonctions
numriques difficiles , traitement dimage , optimisation demplois du temps, contrle de systmes
industriels [Beasley, 1993a], cryptographie, apprentissage des rseaux de neurones [Renders, 1995],
etc.
Nos exemples d'application nous ont permis de nous rendre compte que le codage des donnes pour
modliser un problme est comlexe. D'autre part, nous nous sommes aussi aperus des difficults
pour choisir pertinemment de bons paramtre pour les divers oprateurs ( mutation , croisement ,
slction , remplacement ). Des choix par rapport aux oprateurs eux mmes sont aussi grer,
sachant que certains sont plus appropris au problme et qu'il permettent d'optimiser.
Les algorithmes gntiques seuls ne sont pas trs efficaces dans la rsolution d'un problme. Ils
apportent cependant assez rapidement une solution acceptable. Nanmoins, il est possible de
l'amliorer assez efficacement en le combinant avec un algorithme dterministe.
Bibliographie :