Sunteți pe pagina 1din 9

Algorithmes Gntiques

Marc-Olivier LaBarre

Mai-Aot 2002

Les algorithmes gntiques sont une mthode doptimisation utile dans les cas non
linaires (videmment, cette mthode fonctionne galement pour les cas linaires, mais
dans ce cas, est inutilement lourde en temps et en calcul). Cette technique part du
principe volutif de la slection naturelle de Darwin. Celle-ci nonait que les individus
les plus aptes survivre (les meilleurs ) se reproduiront plus souvent et auront plus de
descendants. Ainsi, la qualit du pool gntique de la population sera augmente, les
gnes plus efficaces deviendront plus frquent; la population samliore. Selon le mme
principe, un algorithme gntique part dune population de solutions initiales, les fait se
reproduire (les meilleures solutions ont plus de chances de se reproduire), crant ainsi la
nouvelle gnration de solutions. En rptant ce cycle plusieurs fois, on obtient une
population compose de solutions meilleures. On utilise gnralement les algorithmes
gntiques pour trouver une solution, la meilleure solution aprs un certain nombre de
gnrations.
Voici le corps principal dune itration dun algorithme gntique :
1- valuer la qualit (fitness) des individus et leurs chances de survie
2- Slectionner les individus pour la reproduction
3- Effectuer la reproduction
4- Remplacer lancienne population par la nouvelle
Cette itration est rpte autant de fois que demand. Lvaluation de la qualit (fitness)
dun individu permet dillustrer avec une valeur numrique (et donc plus facile
manipuler) la qualit des gnes qui forment lindividu. Plus la qualit dun individu est
grande, plus ses chances dtre slectionn pour la reproduction sont grandes. En
gnral, on calcule les chances de reproduction dun individu en regard de sa qualit en
relation avec la qualit totale des individus de la population. La reproduction se fait en
croisant deux individus. On applique sur les deux individus choisis des oprateurs
gnriques, habituellement lenjambement (cross-over) et la mutation. La reproduction
donne deux enfants (offspring), qui sont placs dans la nouvelle population. On rpte la
reproduction jusqu ce quon ait rempli la nouvelle population (la taille de la population
devrait rester constante). On remplace alors lancienne population par la nouvelle, et on
recommence le processus le nombre de gnrations voulu.
Voici un algorithme plus dtaill dun algorithme gntique :
Algorithme gntique gnrique
1- Gnrer une population de individus de taille N : x1, x2, x3,, xN.
2- Calculer les chances de survie (qualit ou encore fitness) de chaque individu. f(x1),
f(x2), f(x3), , f(xN).
3- Vrifier si le critre de terminaison est atteint. Si oui, terminer.
4- Choisir une paire dindividus pour la reproduction (selon les chances de survie de
chaque individu).
5- Selon les probabilits associes chaque oprateur gntique, appliquer ces
oprateurs.

6789-

Placer les individus produits dans la nouvelle population.


Vrifier si la taille de la nouvelle population est correcte. Si non, retourner ltape
4.
Remplacer lancienne population dindividus par la nouvelle.
Retourner ltape 2.

Notez que cet algorithme gntique gnrique est plutt vide . Il sagit dun modle
trs gnral. Nous verrons un exemple plus concret plus tard.
EXPLICATIONS DES LMENTS DUN ALGORITHME GNTIQUE
Individu :
Les individus correspondent aux solutions du problme optimiser. Ces solutions
doivent tre codes pour que le traitement puisse tre effectu par lalgorithme
gntique. Cette reprsentation code dune solution est appele chromosome, et est
compose de gnes. Chaque gne peut reprsenter une variable, un lment de la
solution, ou encore une partie plus abstraite. La manire la plus utilise de codage par
algorithme gntique est le codage en vecteurs. Chaque solution est reprsente par un
vecteur. Ce vecteur peut tre binaire ou encore de nimporte quel type discret
dnombrable (entier, caractres, etc.). On pourrait galement utiliser un type continu
(ex : nombres rels), mais dans ce cas, il faut galement revoir les oprations qui
modifient le contenu des chromosomes (la fonction qui cre alatoirement les
chromosomes et les oprateurs gntiques). La simplicit veut que les chromosomes
soient uniformes, cest--dire que tous les gnes sont du mme type. Cependant, si on
tient compte encore une fois des oprations qui modifient le contenu des chromosomes,
on peut assez aisment construire des vecteurs dlments de type diffrents. On
demande habituellement que les chromosomes soient tous de mme longueur, bass sur la
mme architecture, les gnes homologues tant au mme endroit sur leur chromosome
respectif. De fait, le codage par vecteur est si utilis (trs grande simplicit compare aux
autres mthodes de codage de chromosome) que les algorithmes sont souvent identifis
comme tant des mthodes de traitement vectoriel. Cette affirmation nest pas tout a fait
vraie car dautres types de codage existent, bien que ntant pas trs frquents. Par
exemple, lutilisation des algorithmes gntiques pour faire de la programmation
gntique utilise un codage en arbre (ce qui permet entre autres davoir des chromosomes
de longueurs diffrentes).
Population :
Cest lensemble des individus, ou encore lensemble des chromosomes dune mme
gnration. Habituellement, la taille de la population reste constante tout au long de
lalgorithme gntique.
Gnrer :
Habituellement, au dpart dun algorithme gntique, il faut crer une population
dindividus. Ces individus sont gnrs par une fonction simple. Cette fonction affecte
chaque individu quelle cre une valeur alatoire pour chacun de ses gnes. Lalgorithme

gntique peut galement utiliser comme population de dpart une population dj cre
a priori.
Qualit, fitness, dun individu :
Le calcul de la qualit dun individu est essentiel aux algorithmes gntiques. Cette
fonction donne, en valeur numrique (habituellement relle), la qualit dun individu.
Cest selon cette valeur numrique quest calcule les chances de slection de cet
individu. La fonction de fitness doit avoir 0 comme plancher, pour ne pas fausser le
calcul des pourcentages. Les algorithmes gntiques tant une technique doptimisation,
ils cherchent la qualit maximale, donc loptimisation de la fonction de qualit. Si on
cherche plutt minimiser une fonction, il faudra la modifier de sorte que la fonction de
qualit se maximise. Il serait bien entendu possible de conserver un fonction de qualit
qui fonctionne lenvers et de modifie la place le calcul des probabilits, mais ceci
rendrait lalgorithme beaucoup plus difficile dcoder pour les utilisateurs externes.
Slection :
Selon la qualit des individus, chacun se voit attribuer un pourcentage de chances dtre
choisi pour la reproduction, qui correspond limportance relative de la qualit de
lindividu par rapport la qualit totale de la population.
Reproduction :
La reproduction seffectue gnralement en croisant deux individus, ce qui produit deux
nouveaux individus placer dans la nouvelle population. De la manire classique, la
reproduction consiste appliquer les oprateurs gntiques sur les deux chromosomes
slectionns et mettre les deux chromosomes rsultant dans la nouvelle population. Les
deux oprateurs gntiques courants sont lenjambement (cross-over) et la mutation. Le
premier est la vritable reproduction. Chaque chromosome enfant reoit environ la
moiti des gnes de chacun de ses parents. La probabilit denjambement est presque
toujours de 50% (effectue de cette manire un mlange plus efficace). Selon cette
probabilit, on change les gnes homologues des deux chromosomes. De cette faon,
aprs lenjambement, on obtient deux enfants qui sont complmentaires par rapport
leurs parents (si un enfant a un gne dun tel parent, lautre enfant tiendra ce mme gne
de lautre parent). Loprateur de mutation, bien quayant une probabilit bien moindre
(habituellement entre 0,5% et 5%) joue un rle trs important. Une reproduction utilisant
uniquement lenjambement est une mthode de hill-climbing, mthode qui est limite par
latteinte de maxima locaux. En effet, les gnes des enfants sont limits par les gnes des
parents, et si un gne nest pas prsent dans la population initiale (ou sil disparat cause
des reproductions), il ne pourra jamais se dvelopper chez les descendants. Loprateur
de mutation est l pour contourner ce problme. Chaque gne possde une faible
probabilit de muter, cest--dire dtre alatoirement remplac par une autre incarnation
de ce gne. Cette prcaution permet de conserver ce quon appelle la diversit gntique.
Habituellement, la mutation cre des individus faibles, peu aptes survivre. Cependant,
un certaine mutation pourrait se rvler gniale et permet daugmenter grandement
lvolution de la population. Ces oprateurs gntiques peuvent habituellement
saccommoder de la plupart des situations sans trop de modifications. Toutefois, afin de
conserver la cohrence des individus, on doit parfois modifier grandement, voire changer

totalement les oprateurs gntiques. Il ny a pas de limite quant au nombre doprateurs


gntiques. Dune manire gnrale, on considre comme oprateur gntique,
nimporte quelle fonction qui modifie le contenu gntique dun ou de plusieurs
chromosomes. Il parle aussi quelques fois de loprateur gntique de clonage. Celui-ci
existe (un individu est pass directement, sans modifications, la gnration suivante) et
peut tre incorpor dans un algorithme gntique. Cependant, le potentiel volutif de cet
oprateur est secondaire. On assiste galement un clonage lorsque les autres oprateurs
gntiques nont pas deffet (cas trs rare).
Validit et cohrence :
Selon la mthode de codage et sa signification, on doit tre toujours certain que les
individus de notre population soient valides. En effet, que ferait-on dune solution
donnant une bonne note de qualit, mais nayant aucun sens pratique une fois interprt.
Il faut donc sassurer que la fonction de cration des individus cre toujours des individus
valides, et que les oprateurs gntiques conservent la validit des individus traits. Ceci
vise conserver la cohrence gnrale de lalgorithme.
Critre de terminaison :
Gnralement, un algorithme gntique se termine aprs un certain nombre de
gnrations, mais on peut galement terminer lexcution de lalgorithme lorsquun
certaine condition soit atteinte, par exemple lorsque la qualit dun individu dpasse un
certain seuil.
EXEMPLE SIMPLE1 DALGORITHME GNTIQUE
Problmatique : On veut trouver lentier (de 0 16) qui maximise la fonction2
f x 1 4 15 x 2 x3 4 .
Population : 6 chromosomes de 4 bits (codage), reprsentant sous forme binaire les
entiers (individus) quils reprsentent.
2
3
Fonction de qualit : f x 1 4 15 x x 4
Oprateurs gntiques : enjambement : Il y a 50% de chance quun bit soit chang avec
son homologue sur lautre chromosome.
mutation : Chaque bit a 3% de chance de muter (passer de 1 0
ou de 0 1).
Population initiale :
tiquette du
Chane du
Chromosome
chromosome
X1
X2
1

0100
0000

Entier dcod

Qualit
(fitness)

4
0

48
4

Chances de
reproduction
(%)
13,58
1,13

Ce cas est trop simple, mais il ne sert qu illustrer les processus de lalgorithme gntique.
Rsoudre ce problme peut videmment se faire sans le trouble et le labeur que ncessite un algorithme
gntique. Aussi, on ne note pas la prsence de maxima locaux dans ce problme, ce qui fait que
loprateur de mutation est plus un boulet quune aide.
2

X3
1110
14
X4
0001
1
X5
1000
8
X6
1011
11
Moyennes de la qualit (average fitness): 58,917.

53
7,5
116
125

14,99
2,12
32,81
35,36

Slection et oprateurs gntiques:


Chromosome enjambement mutation chromosomes finaux
Couple 1 : X5
X3

1000
1110

1000
1110

1010
1100

1010
1100

Couple 2 : X5
X6

1000
1011

1000
1011

1011
1000

1011
1000

Couple 3 : X6
X1

1011
0100

1011
0100

1000
0111

1001
0111

Population pour la gnration 2 :


tiquette du
Chane du
Chromosome
chromosome

Entier dcod

X1
1010
10
X2
1100
12
X3
1011
11
X4
1000
8
X5
1001
9
X6
0111
7
Moyennes de la qualit (average fitness): 118,25.

Qualit
(fitness)
129
112
125
116
125,5
102

Chances de
reproduction
(%)
18,18
15,79
17,62
16,35
17,69
14,38

La population de la deuxime gnration peut maintenant servir pour engendrer une


troisime gnration. Bien quici, on ait trouv la solution optimale (10) en une seule
gnration, on remarque quand mme que les la moyenne des chances de survie a
augment considrablement. De cette faon, on peut conclure que lalgorithme gntique
encourage le perfectionnement de la race .
STRATGIES DVOLUTION
Les stratgies dvolution sont une variante des algorithmes gntiques. La stratgie
dvolution la plus simple se nomme stratgie dvolution-(1+1) ( (1+1)-evolution
strategy). Au lieu de faire se reproduire des individus dune population, on nutilise
quun seul individu, auquel on applique de mutations normales . En effet, chaque
paramtre du problme est une expression numrique continue 3 (nombres rels) et on
applique sur chacun dentre eux une mutation normale base sur des carts-types
3

Il nest pas vraiment ncessaire que ces expressions numriques soient continues, quoique cela donne une
meilleure ralisation de la stratgie dvolution.

choisis lavance. De cette faons, les petites mutations sont plus frquentes que les
grandes, ce qui reflte encore une proprit de lvolution darwinienne. Ensuite, si
lindividu ainsi cr est meilleur que sont parent, on remplace celui-ci par sont enfant,
puis on recommence le processus.
Voici un algorithme gnrique dun stratgie dvolution :
Algorithme dune stratgie dvolution-(1+1)
1- Choisir un nombre de paramtre N pour reprsenter le problme, et dterminer
lintervalle de possibilit (feasible range) pour chaque paramtre :
x1min , x1max , x2 min , x2max ,..., xN min , xN max ,
2-

34-

56-

7-

Dfinir une variance pour chaque paramtre et la fonction tre optimise.


Mettre une valeur initiale chaque paramtre dans leur intervalle de possibilit
respectif. Cet ensemble de valeurs constitue la population initiale de paramtres
parents .
x1 , x2 ,..., xN
Calculer la solution associe avec les paramtres parents .
X f x1 , x2 ,..., xN
Crer un descendant en additionnant une variable normalement distribue a de
moyenne zro et de variance choisie ( ltape 1) , pour chaque paramtre
parent .
xi xi a 0, , i 1, 2,..., N
Les mutations distribues normalement de moyenne zro refltent le processus
naturel de lvolution o les changements plus petits arrivent plus frquemment que
les grands changements.
Calculer la solution associe avec les paramtres du descendant .
X f x1, x2 ,..., xN
Comparer la solution descendant avec la solution parent . Si la solution du
descendant est meilleure que celle du parent , remplacer la population de
paramtres parents par la population de paramtres descendant . Sinon,
garder la population de paramtres parent .
Retourne ltape 4 et rpter le processus jusqu ce quune solution satisfaisante
soit obtenue, ou quun certain nombre de gnrations soit atteint.

Cette stratgie dvolution nutilise quun seul individu. Il serait possible den utiliser
plus quun, mais des expriences ont montr que le modle avec un seul individu
fonctionnait mieux.
La technique de modifier tous les gnes dun individu en mme temps est encore un fois
pour se librer des maxima locaux. Les stratgies dvolution diffrent des algorithmes
gntiques par le fait quelles ne ncessitent aucun codage, mais dun autre ct,
nutilisent que des paramtres numriques.
PROGRAMMATION GNTIQUE

La programmation gntique est un usage spcifique des algorithmes gntiques.


Premirement, la programmation gntique utilise un codage en arbre. Aussi, les
solutions que cherche la programmation gntique sont en fait des programmes. Ces
programmes sont reprsents par des arbres o les nuds sont des oprateurs simples
(par exemple, +, -, *, /,
) et o les feuilles terminales sont les variables du programme
(a, b, c, etc.) ou encore des constantes. La fonction qui calcule la qualit dun
programme utilise, tout comme les rseaux de neurones, une fonction qui cherche
minimiser la somme des erreurs carres obtenues avec des exemples de test. Les
oprateurs gntiques sont les mmes que les oprateurs de base, cest--dire
lenjambement et la mutation. Lenjambement seffectue en intervertissant des nuds (et
tout ce qui en dcoule, les nuds et feuilles qui leurs sont rattaches par le bas) entre
deux arbres-programmes. La mutation seffectue en mutant un lment de larbre avec
un lment du mme type (variable avec variable, oprateur avec oprateur). Attention
cependant, si on prend les oprateurs vus prcdemment, on pourra muter un + en un /,
mais on ne pourra muter
, car il ne prend quun seul paramtre. On peut galement
dfinir une mutation comme la mutation, non seulement dun nud, mais galement du
sous-arbre que ce nud soutient.
Par exemple, si on veut dcouvrir un programme qui donne les rponses suivantes :
Variable a Variable b Rponse
Variable a Variable b Rponse
3
5
5.830952
12
10
15.620499
8
14
16.214515
21
6
21.840330
18
2
18.110770
7
4
8.062258
32
11
33.937849
16
24
28.844410
4
3
5.0000000
2
9
9.219545
avec les oprations +, *, / et
, ainsi que les paramtres a et b.
Dabord, on compose une gnration de programmes, on les fait excuter avec les
paramtres a et b des exemples. On compare les rponses obtenues avec les rponses
voulues et on calcule la somme des erreurs carres. On effectue ensuite une slection des
parents pour la reproduction, puis on applique les oprateurs gntiques tels que dcrit cihaut. Dans le cas prsent, la solution est la thorme de Pythagore et lalgorithme devrait
tre capable de trouver la formule X a 2 b2 , ou, sous forme darbre :

*
a

*
a

La mthode illustre ici nest videmment quun exemple trs simple de la


programmation gntique. Des techniques beaucoup plus labores sont habituellement
utilises. Par exemple, une modification courante est de spcifier une certaine taille
maximum, ou encore exiger la prsence dun certain nud.
AUTRES CHAMPS DES ALGORITHMES VOLUTIFS
Les algorithmes volutifs, tout comme la programmation gntique et les stratgies
dvolutions ont partie du domaine des algorithmes volutifs. Deux autres champs
importants peuvent galement tre cits ici : la programmation volutive et les systmes
de classificateurs. Ces deux mthodes partagent avec les autres prsentes ci-haut les
caractristiques principales des algorithmes volutifs, cest--dire lvolution de
solutions pour fin doptimisation.
Dautres domaines connexes sont les automates cellulaires et la vie artificielle. Ces deux
domaines utilisent des processus similaires aux algorithmes gntiques, mais sont
toutefois plus complexes.

BIBLIOGRAPHIE
1.

2.

Livres
LUGER, George F., Atrificial Intelligence : Structures & Strategies for complex
problem solving, 4me dition, Addison-Wesley, 2002, 856p.
NEGNEVITSKY, Michael, Artificial Intelligence : A guide to Intelligent Systems.
Addison-Wesley, 2002, 394p.
Sites Internet
FRASER, Adam et Adil QURESHI (Salford University). Genetic Programming
http://www-dept.cs.ucl.ac.uk/research/genprog/index.html
GECCO, Genetic and Evolutionary Computation Conference 2001 http://wwwilligal.ge.uiuc.edu:8080/GECCO-2001/
Genetic-Programming.org http://www.genetic-programming.org/
ISGEC, International Society for Genetic and Evolutionary Computation
http://www-illigal.ge.uiuc.edu:8080/
KANTROVITZ, Mark, Hitch-Hiker's Guide to Evolutionary Computation.
http://www-2.cs.cmu.edu/Groups/AI/html/faqs/ai/genetic/top.html
OBITKO, Marek, Introduction to Genetic Algorithms with Java Applets,
http://cs.felk.cvut.cz/~xobitko/ga/
OPTIWATER GA-Search - The Genetic Algorithms Search Engine
http://www.optiwater.com/GAsearch/
POHLHEIM, Hartmut, Genetic and Evolutionary Algorithms: Principles,
Methods and Algorithms. http://www.geatbx.com/docu/algindex.html
RENNARD, Jean-Philippe, Introduction aux algorithmes gntiques.
http://www.rennard.org/alife/french/gavintr.html
SIPPER, Moshe.
A Brief Introduction To Genetic Algorithms.
http://lslwww.epfl.ch/~moshes/ga_main.html
WALL,
Matthew,
MIT,
Matthews
Genetic
Algorithm
Library
http://lancet.mit.edu/ga/

S-ar putea să vă placă și