Home page de
Michel Casabianca

Actualité
oBlog
oNo Apple
oDebian sur Zotac Nano CI320
oDebian sur Acer C720P
oUn an avec un Raspberry Pi
oLes interfaces du GO
oParseurs YAML pour Go
oIntroduction à YAML
oNotes Formation Perl
oUtiliser le module Ruby MySQL
oUtiliser le module Ruby DBI
oScripts Python avec DB-API

Outils
oBabel
oBee
oTâches Ant
oInstalleur Java
oVisual SQL

MacOSX
oViewCVS sous MacOSX
oEmacs sous Panther

Conférences
oOutils J2EE Open Source
oDév. XML en Java sous Linux
oOutils de dév. Java sous Linux

Articles XML
oIntroduction à XML
oIntroduction à XSLT
oDéveloppement XML en Java
oGénérer des sites web avec Ant
oDTD Ant
oProject X

Articles Java
oTips CodeGuide
oKFM et Jars
oMails en Java
oJava et préprocesseur
oJava et images
oThreads
oÉvénements
oAstuces

Jeux
oAwele
oAtomX
oCore Warrior
oSolitaire
oSpiceWars
oTangram
oTaquin

Simulations
oJeu de la vie
oFourmi de Langton
oTri du couvain
oPiste de chasse

Graphisme
oFractales
oImages 3D
oPowered by ...
oEcce Duke
oTIE

À propos
oDe l'auteur
oDe ce site


Powered by

Powered by Debian
Présentation | Formules | Applet

Le tri du couvain - Présentation

Michel CASABIANCA - casa@sweetohm.net

On constate expérimentalement, en renversant sur une planche le contenu du couvain d'une fourmilière, que les fourmis trient spontanément les oeufs par stades d'évolution : elles font de petits tas d'oeufs, de larves et de nymphes. Elles sont même capables de distinguer plusieurs stades d'évolution pour les oeufs. Comment peut-on expliquer ce comportement complexe alors qu'une fourmi est un être très simple ? Nous allons voir dans cet article que l'on peut modéliser par ordinateur ce comportement observé par les anthomologistes.

Données dont dispose une fourmi sur son environnement

Les fourmis sont capables d'émettre et de capter des molécules appelées phéromones. Un oeuf de fourmi émet des phéromones différentes suivant son stade d'évolution. On peut donc légitimement supposer qu'une fourmi est capable d'estimer la concentration en oeufs du même stade au point où elle se trouve en "reniflant" les phéromones (qu'elles captent avec leurs antennes). Par contre, la myopie des fourmis leur interdit d'avoir une vue d'ensemble du couvain. On peut aussi supposer qu'une fourmi dispose d'une mémoire à court terme des oeufs qu'elle a rencontré durant les denières secondes de son déplacement.

On peut donc réaliser deux modèles de comportement : le premier suppose que la fourmi a une perception spatiale de la concentration en oeufs d'un type donné, le deuxième fait intervenir la mémoire à court terme de la fourmi.

Modélisation du comportement des fourmis

Pour modéliser le comportement de la fourmi, il nous faut simplifier l'environnement de nos fourmis virtuelles. Nous supposerons que nos fourmis se déplacent sur une grille. Sur cette grille seront disposés au début de la simulation des oeufs de 2 types : des Rouges et de Bleus.

La simulation est découpées en tours. A chaque tour, la fourmi se déplace aléatoirement sur une case adjacente (au nord, au sud, à l'est ou à l'ouest mais pas en diagonale). Lorsqu'une fourmi arrive sur une case contenant un oeuf, elle peut décider de l'emporter ou de le laisser.

Quel que soit le modèle de la perception de la concentration des oeufs, on peut établir un ensemble de règles régissant les fourmis lors du tri du couvain :

  1. Si une fourmi ne portant rien rencontre un oeuf et que la concentration locale de ce type d'oeufs est faible, la fourmi aura tendance à l'emporter. Au contraire, si la concentration est forte, elle aura tendance à le laisser sur place et a continuer sa route.
  2. Si une fourmi porte un oeuf et qu'elle arrive sur une case vide, elle aura tendance à déposer cet oeuf si la concentration locale de ce type est forte et à le garder si la concentration est faible.

L'applet Java présentée dans cette page modélise ce comportement et implémente les deux modèles de perception (spatial et temporelle). Vous en savez maintenant assez pour expérimenter avec cette applet. Je vous suggère de le faire par vous même avant d'étudier les résultats présentés ci-dessous.

Résultats de la simulation informatique

Les résultats de la simulation sont assez convaincants :

Perception spatiale (aux temps 0, 1000 et 10 000)


Figure 2: Simulation avec perception spatiale aux temps 0, 1000 et 10000

Perception temporelle (aux temps 0, 1000, 10 000)


Figure 3: Simulation avec perception temporelle aux temps 0, 1000 et 10000

On constate bien que les oeufs sont regroupés par tas d'ouefs semblables. La méthode semble plus efficace avec une perception spatiale qu'avec la temporelle.

Conclusion

Cette simulation permet de valider les modèles du comportement de la fourmi par simulation. Même si cela ne prouve pas que ces modèles sont juste, cela permet de penser qu'ils sont efficaces et conduisent à des résultats semblables à ceux que l'on observe chez les fourmis.

Cette étude est intéressante pour les enthomologistes, mais intéresse aussi les informaticiens. En effet, cette simulation met en oeuvre une intelligence collective : à partir de comportements simples, l'ensemble des fourmis tri les oeufs, alors qu'une fourmi en est incapable seule. Cette situation de travail collectif se présente en informatique lorsqu'on fait travailler ensemble plusieurs processeurs. Chaque processeur est simple mais doit travailler avec ses voisins de manière à ce que la tâche qu'on leur a confié avance. Les avantages d'une architecture parallèle sont multiples : tout d'abord, à puissance égale, plusieurs petits processeurs coutent moins cher qu'un unique processeur plus perfectionné (c'est ce qui est mis en oeuvre dans la BeBox), d'autre part, si un processeur vient à tomber en panne, les autres peuvent continuer à fonctionner, ce qui augmente fortement la tolérance à la panne.

De toute façon, même si c'est totalement inutile, on s'amuse bien quand même ;-)

Pour en savoir plus

Cet article a été rédigé sur la base des travaux de : Guy THERAULAZ, Eric BONABEAU, Simon GOSS et Jean-Louis DENEUBOURG.

  • Pour la science N°198 avril 1994, page 90.

Présentation | Formules | Applet


Dernière mise à jour :  2000-02-07