Nous allons maintenant voir comment se déroule, dans Netlogo, l'algorythme génétique de Robby le Robot.
Cette interface est un peu compliquée, je vais donc l'expliquer.
Cette interface est faite de deux parties :
La partie concernant l'algorythme génétique et l'autre qui simule Robby dans son environnement
Démarrons l'algorythme génétique.
Nous réglons la taille de la population ici. Je vais la régler à 60
Un défaut de cette version de NetLogo est qu'elle est lente
Je ne peux donc pas l'activer avec la même population que la version en langage C
mais je vais l'accélérer au maximum.
Le taux de mutation. Rappelez vous qu'après le croisement des parents pour créer une descendance, celle ci est mutée,
Ceci est la probabilité de mutation à chaque valeur de la chaine numérique
Elle indique une probabilité de 0,05 que chaque chiffre soit muté
Cela représente une moyenne de 12 mutations par chaine. Assez élevé mais commencons avec.
Maintenant je clique sur "Régler", celà prend un peu de temps à cause de la lenteur.
Vous pouvez voir que chaque individu de la population est représenté ici
J'ai 60 individus, c'est la 1re population, avec une stratégie totalement choisie au hasard
L'axe vertical représente la pertinence. Vous pouvez voir que l'on démarre une une pertinence faible
Celui ci a la plus grande pertinence de cette population
L'axe horizontal montre la similarité entre les individus par rapport aux autres
en terme de chaine qui représente la stratégie, comment les chaines se ressemblent.
Nous pouvons lancer le logiciel sans fin ou pour un nombre défini de générations.
J'ai ici réglé le nombre de générations à 50
C'est parti !
Ici est inscrite la meilleure pertinence pour chaque génération,
est représenté aussi la stratégie en termes d'actions réalisées, mais ce n'est pas utile pour maintenant
car nous ne pouvons pas vraiment interpréter la qualité d'une stratégie en regardant juste cette chaine de valeurs.
Nous pouvons voir que la populations change avec le temps
Ici vous pouvez voir un graphique de la pertinence des meilleurs individus de chaque génération
C'est assez lent comme vous le voyez.
Ok, nous voici à la génération 50 et nous sommes parti de -74 comme meilleure pertinence
jusqu'à 7,5 comme meilleure pertinence.
Nous allons maintenant regarder ce que font les individus les plus pertinents dans un environnement donné
Je déclenche un environnement et maintenant ce graphe montre le meilleur individu
dans un environnement ou chaque boite est représentée par un point orange
Je clique sur "montre la meilleure stratégie"
Ici on voit qu'à chaque étape cet individu ne bouge pas il obtient donc une pertinence de 0.
Essayons un autre environnement. Il reste encore sans bouger
Un autre configuration de boites car il en existe ou il fait quelque chose et obtient plus que 0.
Ha, la il a pris une boite et obtenu un score de 10 sur ce coup la.
Bon, changeons le décor et revenons à notre algorythme génétique
en repartant pour 50 autres générations à partir de cette population la.
Oups ! j'ai cliquez sur "régler" sans le vouloir et détruit cette population
Recommencons donc.
Voici un autre tour avec une population de départ différente et sa chaine aléatoire.
Et maintenant sautons jusqu'à la 50eme génération
OK, nous y voila. La meilleur pertinence est 18,5 ; meilleur que tout a l'heure
Regardons maintenant le meilleur individu
Nous le voyons bouger mais sans ramasser de boites.
Essayons un autre environnement..La il a pris une boite, et puis d'autres
mais il revient et reste coincé.
De toutes facons c'était juste pour vous montrer ce modèle NetLogo, RobbyGA.netlogo,
que vous pouvez télécharger de notre page de matériel de cours
pour faire les exercices de ce cours.