Les agents réactifs
Les agents réactifs possèdent une représentation très limitée d'eux-mêmes, de leur environnement et des autres agents.
Ils possèdent un fonctionnement simple :
- Stimuli-réponses, actions-réactions
- Réponse aux signaux de l'environnement
Ils possèdent un mode de communication simple :
- Propagation de signaux
- Utilisation de l'environnement
Il n'y a pas de plan global ou de mémoire partagés.
Leur fonctionnement a largement été inspiré par les insectes sociaux comme les fourmis, les éco-systèmes au sens large et la phytosociologie (i.e. comportement des plantes entre elles).
Les agents réactifs peuvent être utilisés pour simuler des organisations ou pour des robots collecteur par exemple. Ils permettent également d'identifier des comportement collectifs.
L'ancêtre de l'agent réactif est l'automate cellulaire, qui fait son apparition dans les années 1940. Il s'agit de simples grilles dont les cases possèdent des états.
Le Jeu de la vie consiste à faire évoluer sur un grille un ensemble de cellules selon les règles suivantes :
- Si une cellule active est entourée de moins de 2 cellules : elle manque de contact et se désactive.
- Si une cellule active est entourée de plus de 3 cellules : elle est en milieu surpeuplé et se désactive.
- Si une cellule inactive est entourée de 3 cellules, alors elle s’active.
- Dans les autres cas, la cellule garde son état.
Agents réactifs en NetLogo
- Agent : turtles
- Environnement : grille et cellules (patches)
- Sondes, moniteurs : indicateurs dédiés aux états des cellules, agents (compteurs, graphiques)
Cas d'étude - Proie - Prédateur
Le modèle proie-prédateur permet d'étudier l'évolution de populations entre group d'agents concurrents.
- Chaque agent possède un niveau d'énergie. Si l'énergie est nulle → mort de l'agent.
- [Chasser / cueillir] Un prédateur se déplace à la recherche d'une proie. Il y a le coût du mouvement → l'énergie est décrémentée.
- [Se nourrir] Si un prédateur rencontre une proie, il la consomme → l'énergie est augmentée en fonction de la proie.
- [Se reproduire] Un agent peut se reproduire s'il a suffisamment d'énergie → l'énergie de l'agent est divisé par deux entre lui et son/ses clones.
- De la nourriture (qui n'est pas représentée sous forme d'agents) peut être consommée et se regénérer.
Exemple :
- Loup -> Mouton -> Herbe
- Bonus calorique mouton > Bonus calorique herbe
- Seuil reproduction loup > Seul reproduction mouton
- Coup déplacement loup = Coup déplacement mouton
- Regénération d'une partie de l'herbe
Toutes les explications de l'implémentation en NetLogo sont disponibles dans le diapo (page 6 à 25).
Le flocking
Le flocking consiste à rechercher des voisins dans un cône de rayon et d'angle donnés ou dans un cercle de rayon défini afin de déterminer des groupes ou actions à réaliser par rapport au voisinage. Les 3 règles de bases sont :
- La séparation : éviter les voisins (répulsion de proximité)
- Alignement : S'orienter vers la direction moyenne des voisins
- Cohésion : S'orienter vers la position moyenne des voisins
Cas d'étude - Oiseaux migrateurs
C'est un exemple classique de modélisation de mouvements de foule :
- Des oiseaux sont répartis et ont une direction propre.
- Les oiseaux se déplacent selon les règles suivantes :
- Si un oiseau est trop proche d'un voisin, il s'en détourne
- Si un oiseau croise un autre, il s'oriente vers celui-ci
- Si un oiseau est dans une bande, il ajuste sa direction
Toutes les explications de l'implémentation en NetLogo sont disponibles dans le diapo (page 31 à 41).
Cas d'étude - Stigmergie
La stigmergie est un mécanisme permettant la coordination entre des agents (notion biologique). Les traces laissées dans un environnement par un agent permettent aux agents suivants d'établir les actions à réaliser. Par exemple, les fourmis déposent des phéromones pour indiquer le chemin aux autres quand nécessaire.
Propriétés :
- Les traces doivent pouvoir s'effacer
- d'elles-mêmes : par évaporation
- par les agents : suppression
- Les traces peuvent être propagées
- d'elles-mêmes : diffusion
- par les agents : propagation
- L'évaporation et la diffusion sont à privilégier.
Cas d'étude - Récolte par fourmis
C'est une simulation classique de comportement émergent.
- Des fourmis se trouvent dans un nid et se déplacent pour récolter de la nourriture auprès de zones attractives.
- Le nid et les sources ont des odeurs qui décroissent avec la distance.
- Les phéromones s'évaporent avec le temps.
- Si une fourmi est sans nourriture :
- Si elle trouve de la nourriture, elle en prend et dépose une dose de phéromones et fait demi-tour
- Sinon, elle avance (par ordre de priorité) :
- Vers la case ayant le plus de phéromone
- Vers la case sentant le plus la nourriture
- au hasard
- Si une fourmi possède de la nourriture
- Si elle est dans le nid, elle la dépose et fait demi-tour
- Sinon, elle se déplace vers la case sentant le plus le nid en déposant une dose de phéromones décroissante avec l'éloignement de la source.
Toutes les explications de l'implémentation en NetLogo sont disponibles dans le diapo (page 45 à 58).
Conclusion
- Les agents présentés dans les cas d'études sont purement réactifs
- Les agents réactifs nécessitent un observateur
- Ils suffisent à la simulation de systèmes "simple"
- Les agents réactifs actuels ont une représentation de l’objectif
des autres et sont souvent coopérants (par nécessité pour éviter l'inter-blocage)
- La programmation est alors plus complexe que cette introduction
- Si les agents doivent posséder des stratégies complexes, et communiquer directement, il faut se tourner vers les agents cognitifs