Heuristiques et Intelligence Collective
S´erie 4 - Algorithmes G´en´etiques
Introduction
La derni`ere fois on a exp´erimenter quelle est la diff´erence entre un algorithme (tri par s´election) qui
a une complexit´e de l’ordre de grandeur O(N2) et un autre (tri par fusion) qu’en a une de l’ordre de
O(N(log(N))). On a aussi vu qu’est qui se passe si on veut trouver la solution d’un probl`eme NP-dur
(voyageur de commerce) par recherche exhaustif, mˆeme si on utilise l’ordinateur : c’est pour ¸ca (et
pour tous les cas o`u l’incertitude fait partie du notre probl`eme du d´ebut) qu’on est int´eress´e `a des
m´ethode des recherche heuristique. Dans la famille des algorithmes qui sont bas´e sur une population
des solutions, comme premier exemple on a vu le code pour un algorithme g´en´etique adress´e au
probl`eme du MaxOne.
Pour ce qui a envie de le voir en fa¸con plus ”agr´eable”, dans la biblioth`eque des mod`eles de
NetLogo, il y a aussi le mˆeme exemple...mais aujourd’hui on continue par des autres petits lo-
giciels : comme ¸ca, ce qui aura besoin d’´ecrire quelque programme, aura quand mˆeme un point
de d´epart. Le tinyGA faisait partie d’une comp´etition pour l’algorithme g´en´etique le plus pe-
tit http://cswww.essex.ac.uk/staff/rpoli/GECCO2006/tinyga.htm ; les exemples suivants sont
pris de la biblioth`eque ”GAlib” qui se trouve `a l’adresse http://lancet.mit.edu/ga/. Vous pouvez
trouver une autre biblioth`eque tr`es bien faite, encore plus g´en´erale et plus orient´ee objets `a l’adresse
http://paradiseo.gforge.inria.fr/.
Algorithme G´en´etique - d´emo graphique 2D
Allez sur le site du cours et enregistrez sur votre compte le ficher galib.zip. Ouvrez-le et y-allez
par terminal : si par exemple votre fiche se trouve dans le r´epertoire Download, tapez
cd Downloads/galib247
Il faut ensuite re-compiler la biblioth`eque sur votre ordinateur, par la commande
make clean && make
Attendez la fin de la compilation, puis entrez dans le r´epertoire examples/graphic.
cd examples/graphic
Ici, compilez les exemples et lancez la premi`ere d´emo par les commandes
make clean && make
./gaview
Il s’agit d’un AG dessin´e `a la recherche de l’optimum d’une fonction 2D ; vous pouvez voir comme
la population se distribue pendant l’´evolution (dans le cas default les optima locaux sont sur des
cercles concentriques avec l’optimum global, soit le maximum, au milieu). Il est aussi possible choisir
diff´erents param`etres et diff´erentes types d’AG :
./gaview ga 1 pour le cas o`u chaque g´en´eration toute la population va ˆetre remplac´ee
./gaview ga 0 pour le cas o`u chaque g´en´eration seulement un individu va ˆetre remplac´ee
./gaview ga 2 pour le cas (default) o`u la nouvelle population est superpos´ee `a l’ancienne et les
individus les moins bons sont remplac´es, dans le but d’avoir une taille constante de population.
1