Projet d’algorithme génétique sur les Abeilles Sommaire Thomas Schmitt 14 février 2014

Projet d’algorithme génétique sur les Abeilles
Thomas Schmitt
14 février 2014
Sommaire
1 Motivation 1
2 Implémentation 2
2.1 Cerveau des abeilles . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Population et Sélection . . . . . . . . . . . . . . . . . . . . . . 3
3 Résultats 3
3.1 Interprétation........................... 4
3.2 Résultats sur les jeux de paramètres . . . . . . . . . . . . . . . 6
4 Suite... 6
5 Annexe 7
1 Motivation
Je voulais simuler des populations, de façon non supervisé, pour obser-
ver une sélection naturelle conduisant à des phénomènes émergents. Ayant
entendu parler des réseaux de neurones, je voulais aussi faire un projet qui
me permettrai de les étudier, afin de m’en imprégner. Finalement, j’ai choi-
sis Matlab, pour ses structures simple Dans ce projet, je me suis efforcé de
laisser tout mes paramètres variables. J’ai développé une interface graphique
à cette fin (cf Figure 2)
1
But du jeu
Dans cette simulation, les abeilles devront parcourir la carte pour chercher
du miel. Elles devront apprendre à éviter le feu et dans une seconde partie
(non aboutie) apprendre à ramener le miel à la ruche. Elle devront apprendre
cela sans supervision. Il n’y aura qu’une sélection entre chaque génération,
qui gardera les mieux adaptés.
2 Implémentation
2.1 Cerveau des abeilles
Le cerveau des abeilles est un réseau de neurones classique. Le nombre de
couches cachées est variable (nb_couches_cachees), ainsi que le nombre
de neurones de chaque couches.
Figure 1 – Réseau de neurones utilisé pour les cerveaux.
Il y a 4 neurones de rétine pour voir le miel (chacun codant une direction),
4 pour le feu, 4 pour la position de la ruche et 1 pour savoir s’il l’on transporte
déjà un miel. Les abeilles ne voient pas plus loin que dist_vision autours
d’elle (sauf la ruche). Il y a 4 neurones de sorties. L’abeille choisit alors le
max pour se diriger. L’apprentissage se fait par sélection naturelle (cf section
suivante).
2
2.2 Population et Sélection
Figure 2 – Interface lors d’un test de simulation.
Sur un damier de X×Y, il y a :
nb_abeilles abeilles qui vont se déplacer chaque tours.
nb_miel miel placé aléatoirement. Qui, une fois pris, réapparaissent
ailleurs.
nb_feu feu placé aléatoirement. Répartit en plusieurs ilôt, qui seront
généré à chaque nouvelle génération d’abeilles(cf Remarque).
La ruche, au centre de la carte. (Qui permet aux abeilles de ramener
leur miel).
A la première génération, les abeilles ont chacune un cerveau indépendant
et tiré au hasard (i.e. chaque coefficients synaptique est tiré au hasard). A la
première généraion, certaines sont attiré par le feu, d’autre continue toujours
en ligne droite etc.
A la fin d’une génération, (de nb_tours), on sélectionne les abeilles avec
le meilleur score (on en choisit exactement nb_selection %. On garde une
3
copie de chacune d’elles inchangés, puis on en créé de nouvelles copies, en
modifiant leurs génomes (avec un taux moyen de taux_mutation % et une
amplitude moyenne de amplitude).
Remarque Après observations, j’ai remarqué qu’il faut générer une nou-
velle map à chaque génération, sinon c’est plus la connaissance de la carte,
que la capacité à chercher du miel, qui s’inscrit dans les neurones.
Score d’une abeille Le calcul du score se fait par trois paramètres :
score_miel,score_feu (négatif) et score_ruche (rapporté un miel à
la ruche). Il est intéressant de chercher à optimiser ses valeurs, qui servent à
la sélection naturelle et à l’évaluation de la fitness d’une population.
3 Résultats
Figure 3 – Fonction de score. En abscisse le nombre de génération, en
ordonnée le score (en rouge : pour la meilleur abeille, en vert : la moyenne
pour les meilleurs venant de l’ancienne génération et en bleu la moyenne sur
toutes les abeilles) Dans la suite, on ne s’intéressera qu’à la courbe verte
(moins bruité et plus significative - car ne tient pas compte des mutations
délétères créé).
4
Le résultat qui nous intéresse est la courbe qui représente la fitness d’une
population au cours des générations. Soit : le score moyen, (cumulé sur
nb_tours) de chaque génération.
On observe alors plusieurs phénomènes :
La vitesse de convergence vers un palier (τ) : traduit le temps caracté-
ristique d’apprentissage.
La hauteur du palier (a) : fitness maximal.
Un éventuel deuxième palier, traduisant l’apparition d’un nouveau saut
dans l’évolution.
3.1 Interprétation
Figure 4 – La courbe bleu présente deux palier
Deuxième palier L’existence de plusieurs palier dans le graphe du score
traduit un saut dans l’évolution, une mutation qui va se répandre dans la
population. (cf Figure 6, ligne 4, colonne 2 et 4) En observant des simulations
j’ai remarqué que dans une première phase, les abeilles ne se déplacent que
dans un direction privilégié (à droite par exemple) et éventuellement dans une
autre (en haut). Puis, elle apprennent (en équilibrant les poids synaptiques je
suppose) à aller aussi en bas. Une évolution notable arrive lorsqu’elle savent
faire demi tour.
Décroissance du score On observe parfois des décroissances dans la courbe
des score. Car nous n’analysons toujours qu’un pourcentage des meilleures
abeilles (celles qui existaient à la génération précédente). Lorsqu’une muta-
tion favorable est trouvé, elle se répand et profite à toutes les abeilles. Les
5
1 / 12 100%

Projet d’algorithme génétique sur les Abeilles Sommaire Thomas Schmitt 14 février 2014

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 !