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 ineress´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 orienee 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
Une simple interface graphique vous permette : d’initialiser l’algorithme (reset), le-faire avancer d’un
pas (one), de dix pas (some) ou de fa¸con continue (all) ; d’imprimer sur le terminal la valeur du
fitness du meilleur individu (score), les param`etres utilis´es (params) et certains statistiques (stats).
Comment se d´eroule l’evolution de la population ?
Quel mod`ele d’´evolution pr´eserve moins de diff´erence entre les individus ?
Qu’est que vous pouvez observer, apparemment, sur la vitesse de convergence et la qualit´e de la
solution trouv´ee ?
Algorithme G´en´etique - d´emo graphique TSP
Nous allons maintenant voir une solution au probl`eme du voyageur de commerce par AG. Dans
cet exemple on a 20 villes qui sont distribu´ees sur une grille 4x5 : comme ¸ca pour nous est plus facile
`a imaginer quel est le tour le plus court (mais l’ordinateur ne le sait pas ! en plus, il a y a plusieurs
chemins avec la mˆeme longueur !). Cette fois l’espace de recherche est celui des tours et notre AG
evolue donc une population de chemins possibles, chacun codifi´e par un individu.
Dans le mˆeme r´epertoire que avant, lancez la d´emo :
./tspview.
Encore une fois vous pouvez tester diff´erents mod`eles ;
./tspview ga 3 pour le cas o`u chaque g´en´eration toute la population va ˆetre remplac´ee (Simple
GA ou Generational GA)
./tspview ga 2 pour le cas o`u chaque g´en´eration les parents, deux par deux, vont ˆetre remplac´ee
par leurs enfants, deux par deux, mais seulement si ceux ont une meilleure fitness (Deterministic
Crowding)
./tspview ga 1 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
(Steady-State GA).
Comment se d´eroule l’evolution de la population ?
Quel mod`ele d’´evolution pr´eserve moins de diff´erence entre les individus ?
Qu’est que vous pouvez observer ?
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !