|
Vie Artificielle |
|
Genetic Algorithm Viewer 1.0 Le plugin Java étant désormais obsolète vous pouvez :
Ou utiliser Java Web Start
GAV est maintenant présenté dans de très nombreuses Universités à travers le monde en introduction aux algorithmes génétiques.
|
GAV est une applet de démonstration du fonctionnement d'un Algorithme Génétique (AG). Elle a pour objectif de montrer la puissance des AG et les principaux mécanismes utilisés, tout en permettant une certaine forme de visualisation du fonctionnement général. Le problème posé consiste à retrouver le génome d'un Biomorph donné (pour plus d'informations sur les Biomorphs, voir Biomorph Viewer). Un Biomorph est une configuration graphique générée à partir de neufs gènes. Les huit premiers gènes codent chacun une longueur et une direction ; le neuvième code le nombre d'embranchements, leur profondeur. Dans GAV, chacun des gènes est codé sur 5 bits. Les 4 premiers représentent la valeur, le cinquième son signe. Chaque gène peut donc avoir une valeur allant de -15 à +15. En ce qui concerne le gène 9, sa valeur est limitée à l'espace 2-9. Il existe donc : 8 (nombre de profondeurs possibles) x 240 (les 40 bits de codage des gènes de base) = 8.8 x 1012 biomorphs possibles, soit quelque 8 800 milliards de combinaisons. Si nous étions capables de tester 1 000 génomes par seconde, il nous faudrait près de 280 ans pour parcourir l'espace de recherche dans sa totalité. L'utilisation de GAV est très simple. Au lancement un échantillon de 25 biomorphs est présenté. Il suffit de cliquer sur l'un d'entre eux pour qu'il devienne l'individu recherché. Il est naturellement possible, grâce au bouton de tirage aléatoire de générer un nouvel échantillon. 1- Les boutons : De gauche à droite :
2- Les paramètres de base :
3- Les paramètres de fonctionnement : De haut en bas :
4- Les éléments d'information :
Lorsque la recherche est stoppée, il est possible de sélectionner un individu quelconque qui s'affichera en bleu. Son génome s'affichera alors sur les secondes lignes des représentations des gènes et des bits. Il est également possible par un Ctrl-Click de zoomer sur n'importe quel individu (à l'arrêt seulement), son génome et sa valeur d'adaptation s'afficheront alors. Le principe est le suivant : Au départ, l'algorithme de génération d'un individu étant connu, on dispose de l'image d'un Biomorph. Les seules informations directement mesurables sont les positions des points d'embranchement et leur nombre. L'algorithme de base simule le recueil de ces informations. Au lancement de la recherche, GAV calcule la distance entre chacun des biomorphs générés et la cible. Cette distance correspond au degré d'adaptabilité (Fitness). Un tirage de type roue de loterie sélectionne ensuite les candidats à la reproduction en fonction de leur fitness, puis les processus de reproduction, croisement et mutation sont lancés. Par mécanisme de roue de loterie, nous entendons le fait que si un individu représente x % de la fitness totale, il a x % de chance d'être sélectionné à chaque reproduction. Un même individu pouvant être sélectionné deux fois au cours du même cycle, il sera à la fois le père et la mère et, hors mutation, le descendant sera naturellement inchangé. Le paramétrage permet de tester l'AG dans des conditions très variées :
1- La population : Les populations possibles vont de 8 à 1599. De fait, les populations inférieures à 500 ne permettent pas un fonctionnement "correct" de l'algorithme. En effet, si vous exécutez la recherche pas-à-pas, vous constaterez que l'algorithme converge très rapidement. 2- Le taux de mutation : A chaque reproduction, le nouveau-né est soumis à un processus de mutation. En cas de succès, un gène est modifié. Le type de modification dépend du mode de mutation sélectionné. Pour les populations faibles, vous constaterez que le taux de mutation est très élevé. L'objectif est de contourner le processus de convergence. 3- Le mode Elitiste : A chaque cycle de reproduction, la population originelle est entièrement remplacée par la génération suivante. Afin d'améliorer l'efficacité de l'AG, il est possible de conserver le meilleur individu à chaque génération. Ceci permet de maintenir dans le pool génétique la meilleure configuration génétique jamais générée. 4- Le type de mutation : Dans GAV, le génome est constitué d'un ensemble de 45 bits stockés dans un entier long. Le mode de mutation classique consiste à transformer un bit unique. Si la condition de probabilité est remplie, un bit est sélectionné au hasard et change de valeur. Cette méthode remplit pleinement son rôle d'élargissement du pool génétique. Il est toutefois possible de l'améliorer. En effet, l'algorithme de base étant connu, il est possible d'écrire une fonction de mutation agissant au niveau de l'ensemble d'un gène et non plus au niveau du bit. Dans ce cas, la valeur du gène mutant varie de plus ou moins un. En association avec le mode Elitiste, ceci permet à l'algorithme de suivre automatiquement un ensemble d'étapes conduisant à l'objectif. L'utilisation des différentes méthodes de rééchelonnement (cf. partie 1), permet de constater l'efficacité de ces différentes procédures. Il est à noter que vous pouvez en changer en cours de recherche. GAV vous permettra de visualiser le fonctionnement d'un AG et de tester l'incidence de nombreux paramètres. Prenez le temps de faire des essais, voyez à quelle vitesse l'algorithme peut trouver la solution, ou, inversement, son incapacité à sortir d'un optimum local. Ce type d'algorithme est d'application trop générale pour se cantonner à la vie artificielle, nous verrons toutefois avec d'autres applications ou applets, comment les AG peuvent nous permettre de faire évoluer des populations virtuelles très diverses. D'une certaine manière, et pour reprendre le cas de Data, nous ne saurions construire cet androïde ex-nihilo ; en revanche il pourrait être envisageable de le considérer comme le résultat de la longue évolution des androïdes ancestraux. Jean-Philippe Rennard. Avril 2000 |
Copyright ©rennard.org. 2000, 2001, 2002.
|