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 - Formules

Michel CASABIANCA - casa@sweetohm.net

Pour modéliser le comportement des fourmis sur ordinateur, on doit passer par un modèle mathématique (l'ordinateur ne comprend pas "la fourmi aura tendance à ramasser l'oeuf"). Pour le modèle du couvain, on doit définir 3 formules :

Concentration en oeufs d'un type

La fourmi ramasse ou dépose un oeuf en fonction de la concentration locale en oeufs du même type (Rouge ou Bleu dans le modèle). On doit donc fournir un moyen mathématique pour estimer cette concentration. Nous avons distinguer deux méthodes possibles :

Perception spatiale

Dans ce modèle, on estime la concentration en oeufs en déterminant le nombre d'oeufs du type à évaluer par rapport au nombre de cases autour de la fourmi. Dans un premier temps, il nous faut donc compter le nombre d'oeufs du type désiré dans le périmètre de recherche (on peut prendre les 8 cases entourant la fourmi plus la case sur laquelle elle se trouve), on appelle ce nombre N. M sera le nombre total de cases dans le périmètre. La concentration, notée f, sera alors le rapport :

    f = N / M

Il est possible d'étendre le périmètre à un plus grand nombre de cases (par exemple les 25 cases autour de la fourmi, soit un périmètre de rayon 2).

Perception temporelle

Dans ce cas, la concentration d'oeufs est fonction du nombre d'oeufs du type recherché sur lesquels la fourmi est passé au cours de ses derniers déplacements. Pour ce faire, on rempli un tableau avec le contenu des dernières cases sur lesquelles est passée la fourmi : si elle passe sur une case vide, on note 0, si elle passe sur une case contenant un oeuf rouge, on note 1, si elle passe sur un bleu, on note 2. A chaque nouvelle case rencontrée, la nouvelle valeur chasse la plus ancienne. La taille du tableau est fonction de la mémoire de la fourmi. Une valeur de 15 est raisonnable.

On appelle alors N le nombre d'oeufs du type dont on veut estimer la concentration et M le nombre de cases dont la fourmi peut se rappeler le contenu (soit la taille du tableau). Alors, la concentration f sera :

    f = N / M

Probabilité pour que la fourmi ramasse un oeuf

Lorsqu'une fourmi arrive sur une case comportant un oeuf et qu'elle a les "mains libres", elle peut ramasser l'oeuf avec une probabilité P+. Cette probabilité est fonction de la concentration en oeufs du même type, calculée ci-dessus, f. La formule est :

    P+ = (K+ / (K+ + f))²

K+ est une constante que l'on peut prendre égale à 0,1.

Cette fonction est faite de telle manière à ce que plus la concentration des oeufs (soit f) est faible, et plus la probabilité que la fourmi ramasse l'oeuf (soit P+) est voisine de 1.

Probabilité pour que la fourmi dépose un oeuf

Lorsqu'une fourmi portant un oeuf arrive sur une case vide, elle peut le déposer avec une probabilité P-. Cette probabilité est fonction de la concentration en oeufs du même type, calculée ci-dessus, f. La formule est :

    P- = (f / (K- + f))²

K- est une constante que l'on peut prendre égale à 0,1.

Cette fonction est faite de telle manière à ce que plus la concentration des oeufs (soit f) est grande, et plus la probabilité que la fourmi dépose l'oeuf (soit P-) est voisine de 1.

Lorsque la fourmi arrive sur une nouvelle case, on estime la probabilité qu'elle ramasse un oeuf ou le dépose, puis on tire un nombre aléatoire réel compris entre 0 et 1, noté x. Si x est inférieur à P+ ou P-, alors la fourmi ramassera ou déposera son oeuf.


Présentation | Formules | Applet


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