Viel comme vie electronique, a ne pas confondre avec vièle, instrument de musique aux cordes frottées par un archet ou par une roue, indépendamment de sa forme et du nombre de cordes.
Ce programme m'a été inspiré par deux lectures: d'une part le numéro spécial "Les nouveaux robots" de La Recherche (février 2002, n°350), tout particulièrement l'article "Darwin revisité par la selection artificielle" de Dario Floreano, et d'autre part la lecture du livre "Les systèmes multi-agents" de Jacques Ferber.
Ce programme est sans grande prétention, il est surtout là pour me permettre de voir à quoi peut ressembler un processus de selection naturelle dans un monde artificiel. Il a été programmé durant mes heures de loisir.
Dans mon monde artificiel, il y a un sol où pousse de l'herbe lentement et des mangeurs d'herbe qui peuvent se déplacer, manger, se reproduire et mourire.
Les animats (autre nom des mangeurs d'herbe) ont des noms générés automatiquement. A chaque génération, il y a une lettre qui est ajoutée. Je commence par le A, puis le B, et ainsi de suite par ordre alphabétique. Ainsi, les deux animats FredA et FredB sont deux frères issus d'un même père Fred. FredBA est le premier fils de FredB, le neveux de FredA et le petit-fils de Fred.
Les plus curieux regarderont mon premier programme elive, très ambitieux sur le principe, en faite trop ambitieux. Le principe est de générer des animats de manière aléatoire et je comptais qu'un jour j'ai un animat qui arrive tout de suite à un bon comportement. Cela n'est jamais arriver après plusieurs de calcul. J'ai été trop ambitieux.
Donc je suis revenu à quelques choses de plus modeste. Je prend un groupe d'animat, j'évalue leurs performences, je sélectionne la moitié la plus performente.
Actuellement les seules versions disponibles sont très brutes de fonderie, et elles se trouvent ici :
viel-0.1.0 | Changement de nom, ébauche d'un IHM |
+ anciennes | supprimées, car vraiment trop inintéressantes. |
Il est chaudement recommander de ne s'interesser qu'à la dernière version, le autre ne sont là que pour faire beau.
Une fois l'archive chargée, voici les opérations pour avoir l'executable :
tar zxvf viel-R.M.n.tgz cd viel-R.M.n make ./eval_animat
Depuis peu, on peut installer l'executable avec la commande :
make installCependant, avant installation, il est vivement recommander d'editer le makefile pour preciser l'endroit ou sera installé le binaire.
C'est très basique pour l'instant. Peut-être qu'un jour j'améliorais tout cela.
NB regarder le script non_stop et dans src/gui.
Le programme évolue, il a maintenant des options sur la ligne de commande.
La première option est -n, elle s'utilise comme cela :
eval_animat -n100Cette option signifie qu'on évalue 100 animats d'un coup
La deuxième option consiste à préciser le nom du fichier sur lequel on travail :
eval_animat exemple.animatPar defaut les animats sont sauver dans le fichier sans_nom.animat.
Voici un exemple d'animat relativement évoluer :
20_animats.gz | 3250 ko |
Pour rendre ce programme vraiment attractif, il faudrait vraiment que j'y mette un interface graphique. Un jour ou j'aurais le temps, je le ferais.