TP 3 - Programmation orientée agent

Diffusion de signaux

 

proposé par Jacques Ferber - 2015 - 2019

 

 

1. La chasse aux lapins, ou comment il est difficile de suivre une trace d'odeur..

On reprend le modèle des poursuites réalisé dans le cadre du TP1 (les abeilles et les reines), que l'on appellera ici les lapins et les loups. On suppose que les lapins (initialement les reines) avancent en laissant une trace d'odeur dans l'environnement.

a) Ecrire le comportement de lapins qui laissent des traces d'odeur dans l'environnement en faisant attention de bien visualiser les traces des odeurs des lapins. On s'inspirera du modèle de diffusion vu en cours. Chaque patch aura un attribut odeur. Quelques valeurs de paramètres:

En ce qui concerne la diffusion, on diffusera le paramètre 'odeur' des patches à chaque tick. D'autre part, on coloriera l'environnement avec la procédure suivante:

       ask patches [set pcolor scale-color yellow odeur 1 (max-odeur / 1.3) ] 

Attention: Nous avons constaté que vous aviez beaucoup de difficulté pour bien placer les bons éléments au bon endroit. Dans cet exemple, le placement des odeurs est fait par les lapins, donc cela doit se trouver dans une procédure associée aux lapins. La diffusion des patches est globale sur l'ensemble du monde et se trouve définie pour les 'observers', donc gérée dans la procédure go la plupart du temps. La coloration des patches est assurée par les patches eux-mêmes. En d'autres termes, lorsqu'un lapin dépose une odeur, il ne met pas à jour la couleur des patches. La couleur des patches est mise à jour directement dans la procédure go ou bien dans une procédure appelée par go

b) Ecrire le comportement des loups, en considérant qu'ils ont une vitesse de 0.8 à chaque tour. Les loups suivent le gradient des odeurs laissés par les lapins.

  1. Ecrire le comportement à l'aide de la primitive uphill et regardez les conséquences.
  2. Essayer d'écrire un autre comportement, plus fluide, en reprenant la définition de uphill (voir la doc de NetLogo et le cours), mais sans faire intervenir la primitive move-to (on utilisera la primitive fd pour avancer).

Essayez de comprendre le problème des loups qui sont souvent bloqués dans leur avancement..

c) Vous constatez que la diffusion réparti les odeurs, mais ne les supprime pas.. Au bout d'un certain temps, tout l'environnement devient rempli d'odeurs, et les loups n'arrivent plus à s'y retrouver. Ecrire un modèle d'évaporation des odeurs.. Il suffit que les patches aient leur attribut d'odeur modifié à chaque tour, juste avant la visualisation:

odeur = odeur - taux-evaporationtaux-evaporation varie de 0% à 5% environ (utiliser un slider).

2. Regroupement des lapins et fuite devant les prédateurs

On suppose maintenant qu'il y a des lapins femelles et des lapins mâles.. Chaque espèce produit une odeur différente.. Modifiez votre programme pour prendre en compte cette différence sexuelle.

On suppose maintenant que les mâles sont attirés par les femelles et que les femelles sont attirées par les mâles. Développez ainsi un phénomène de regroupement. On fera toutefois attention que les lapins se repoussent s'il sont inférieur à une certaine distance (distance très faible de 2 à 10 max), afin de créer des "troupeaux" de lapins (phénomène très rare dans la nature!! :-)

On suppose que les loups sont attirés aussi bien par les mâles que par les femelles.

Mais les lapins fuient devant le loup. Dès qu'ils détectent le loup à une certaine distance de détection, ils fuient et ne déposent plus d'odeur..

Implémenter ce comportement de regroupement d'abord et de fuite ensuite..