Previously, on this blog :
Fourmis incapables de contourner un obstacle pour atteindre la fourmilière
Pour tenter de faire évoluer la simulation, j’ai commençé par ajouter la gestion des phéromones de danger. J’ai eu un peu de mal à trouver une bonne manière de gérer le comportement des fourmis face à cette phéromone, en particulier en ce qui concerne la "propagation" du message par les différentes fourmis. Le taux d’évaporation de la phéromone en question a aussi été très dur à trouver (il est dépendant de pleins d’autres critères, comme le nombre de fourmis et leur vitesse de déplacement). Il m’est arrivé assez souvent de tomber sur ce genre de résultat (phéromone de danger en rouge):
Crise de panique ! la fourmilière elle même est indiquée comme zone de danger)
Une fois la gestion de cette phéromone supposée correcte, j’ai tenté de suivre (en gros) l’idée de Bidule donnée dans les commentaires du dernier article : les obstacles doivent être considérés comme un danger. La première fourmi qui rencontre l’obstacle marque la zone comme dangereuse, et les fourmis qui arrivent ensuite propagent ce message pour former une sorte de "bulle" d’alerte autour de l’obstacle. L’objectif était que les fourmis qui convoient de la nourriture soient forcées de trouver des chemins alternatifs pour retrouver la base. Le résultat sur lequel je suis tombé m’a réellement étonné :
Fourmis bretonnes ?
Elles se sont toutes concentrées à l’intérieur de la zone de danger !
Incapable de trouver un chemin de retour correct (on voit quelques tentatives en bas de la capture), elles se retrouvent très vite "noyées" dans un espace saturé de phéromones de danger et de nourrriture contradictoires … sans pouvoir en sortir pour la majorité d’entre elles (il y a quelque chose comme 30 fourmis dans la zone rouge de cette capture !). Un échec. Impossible de les guider par la peur, donc 🙂
J’ai donc tenté une autre piste, qui me fait revenir au principe de base de la simulation qui nous intéresse : jouer sur l’intelligence du groupe, et pas de l’individu. Plutôt que d’ajouter des capacités aux fourmis (détection et propagation du danger), j’en ai retiré : les déplacements au départ de la source de nourriture sont beaucoup plus aléatoires qu’avant (en ce qui concerne le cap) et surtout … la production de phéromone de nourriture (bleue, donc) est limitée ! Impossible pour les fourmis de tracer des pistes trop longues, et il leur faut retrouver la fourmilière pour "refaire le plein" de cette phéromone. Cette nouvelle méthode stimule de fait la recherche de nouvelle pistes.
Pour la première fois, j’ai vu un chemin se créer entre la source de nourriture "cachée" et la fourmillière ! (visible au centre, ici)
Cette piste se trouve ensuite automatiquement privilégiée, puisque efficace. Les fourmis qui empruntent ce chemin (qui a été trouvé par une seule fourmi à la base) depuis la source de nourriture arrivent à destination en renforcant la piste existante, puisqu’elles disposent d’assez de phéromones. Sur la capture précédente, on voit qu’une autre piste ("mauvaise", elle) existe. Elle mène directement à l’obstacle … et elle s’évapore donc petit à petit. On voit clairement sur la capture un groupe conséquent de fourmis qui est arrivé au bout de la piste, et qui se retrouve à avancer au hasard vers la gauche… (longtemps après, elles vont finir par trouver la bonne piste, voire directement la fourmilière). Et ça au lieu de buter bêtement contre l’obstacle comme précédement.
Il faut maintenant que je trouve les bons réglages pour l’ensemble de la simulation, et c’est n’est pas rien … il y a 16 paramètres différents à tester. Je me suis rédigé vite fait un petit outil qui me sort ce genre de graphs :
Ca va beaucoup m’aider pour trouver la meilleur configuration pour la simulation. Si tout se passe bien, je devrais pouvoir ajouter la gestion des naissances et des morts (de vieillesse et de faim) sans que la simulation ne soit particulièrement perturbée. Au vu de la courbe actuelle, il y a encore beaucoup à faire ! Par exemple ici, la collecte de la totalité de la nourriture demande 36 minutes ("réelles", pas "de calcul"), et se fait de manière trop linéaire … les sources de nourriture devrait être exploitées beaucoup plus vite après leur découverte. Le graph devrait donc être composé de paliers (autant que de sources de nourriture).
Je vais tenter d’automatiser la recherche des meilleurs critères (sorte d’algo génétique, toutes proportions gardées). Pour l’heure, au pieu !
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.