Système Multi-Agent

johnny1

Ressources :

Rapport du projet : SMA.pdf

Fichier .jar exécutable : SMA3.jar

Sources : SMA3.7z

Description :

Ce simulateur est un projet développé en troisième année. Il illustre le fonctionnement des systèmes multi-agents, notamment comment un comportement collectif peut émerger d'un ensemble d'agents très simples. Dans ce simulateur, trois types de ressources (rouges, vertes et bleues) sont réparties aléatoirement sur la grille. Les agents se déplacent aléatoirement sur cette grille en observant quelques règles simples :

-un agent peut prendre une ressource avec une probabilité inversement proportionnelle au nombre de ressource de même type autours de l'agent.
-Un agent portant une ressource peut la déposer sur une case vide avec une probabilité proportionnelle au nombre de ressources de même type autours de l’agent.

Ces deux règles ont pour conséquence le regroupement progressif de chaque type de ressource. En effet, les éléments isolés ont de fortes chances d'être déplacés, et une forte probabilité d'être déposé à proximité d'un groupe de ressources.

sma1a sma1b
Avant/Après : les ressources sont rassemblées par 50 agents
Le sujet du projet prévoyait l'utilisation de “phéromones” pour améliorer le système. Inspiré des colonies de fourmis, la première version de ce mécanisme permettait aux agents de déposer des marques dans l'environnement. Ces marques modifient les déplacements des agents qui s'en approche, leur permettant de suivre la piste. Malheureusement, les performances n'étaient pas au rendez-vous, les ressources mettaient souvent plus de temps à se regrouper. L'explication est que contrairement aux fourmis, les agents n'ont pas de point de départ et de point d'arrivé. Ainsi, des chemins peuvent se créer entre deux groupes de ressources, mais les échanges étant bidirectionnel, ces groupes ne verront pas leur nombre de ressources varier. Un autre problème peut survenir si un agent effectue une boucle : il peut alors rester prisonnier de sa propre piste, qui devient un piège pour les agents qui s'en approche.

sma2a sma2b
A gauche, l'environnement. A droite, les traces laissées par les "phéromones". Des agents sont pris au piège par la piste qu'ils tracent (rectangle rouge)
J'ai alors développé une seconde version doté d'un nouveau mécanisme basé sur ce principe : lorsqu’un agent dépose une ressource, il marque l'environnement sur les n pas qui suivent la pose. Seuls les agents qui cherchent une ressource seront attirés par cette trace. La longueur des pistes étant constante quelle que soit la taille du groupe, les petits tas attirerons les agents sur une surface bien supérieure, tandis qu’ils resteront faiblement attractif pour ceux qui cherchent à déposer une ressource. Ce mécanisme permet de réduire environ par 4 le nombre de pas nécessaire pour que les ressources soient regroupées.

johnny1
principe de la trace de longueur constante : un petit tas sera attractif sur une surface presque aussi grande que celle d'un grand.
sma3a sma3b
Le nouveau mécanisme en action : le petit tas rouge en bas est très attractif par rapport à sa taille. Il sera absorbé quelques centaines de pas plus tard.
Une dernière fonctionnalité a été ajouté : un point d'attraction. Ce point attire les agents qui passent dans son champ d'attraction. Il en résulte un regroupement des tas à proximité de ce point. Dans la version finale du projet, il est possible de régler la position du point, sa force d'attraction et son rayon d'action.
sma4a sma4c
Rassemblement des tas autour du point d'attraction (disque jaune à droite).

Description logicielle :

SMA
La version finale du système comprend une interface graphique qui permet de contrôler la simulation et modifier certains paramètres en cours d'exécution. Cette interface comprend quatre parties :

-Le panel supérieur : il permet de modifier les paramètres initiaux de la simulation.
Il est constitué du panel d'initialisation, qui permet de définir la taille de l'environnement, le nombre d'agent et de ressources.
sma_pa1
Le panel des probabilités permet de modifier à tout moment la probabilité pour un agent de prendre ou de poser une ressource. Il faut cependant s'assurer, pour la pose de ressource, que la grille comporte au moins un tas d'au minimum deux éléments pour chaque ressources, sans quoi aucun tas ne se formera.
sma_pa2
Le panel de lancement permet d'initialiser la simulation. Le bouton turbo permet de lancer le nombre de cycles spécifié à grande vitesse (il n'y a cependant pas de mise à jour de l'écran ni la possibilité d'utiliser l'interface pendant l'exécution).
sma_pa3

-Le panel central affiche, dans sa partie gauche, l'environnement avec les agents et les ressources, et dans sa partie gauche, les phéromones, le point d'attraction et les derniers déplacements des agents.

-Le panel inférieur permet de contrôler le déroulement de la simulation et de modifier certains paramètres.
Il est composé du panel de gestion, qui affiche le nombre d'agents et de ressources sur la grille, et permet l'ajout ou la suppression des agents et ressources. (attention, si on supprime un agent transportant une ressource, on supprime également la ressource).
sma_pc1
Le panel de contrôle permet de contrôler le déroulement des événements , avance, pause, pas à pas et réglage de la vitesse (temporisation entre deux itérations).
sma_pc2
Le panel du LightPoint permet de gérer les paramètres du point lumineux : position, rayon d'action et force d'attraction.
sma_pc3

-L'histogramme, dans une fenêtre à part, affiche le temps entre deux prises de ressources, de deux poses, le temps en charge et à vide du dernier agent de la liste. L'affichage montre sous forme de barre ces quatre durées. L'échelle est un trait pour 100 itérations.
sma_p4