Système Multi-Agent
Ressources :
Rapport du projet : SMA.pdf
Fichier .jar exécutable : SMA3.jar
Sources : SMA3.7z
Description :
-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.
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.
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.
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.
Description logicielle :
-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.
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. 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).
-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). 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). Le panel du LightPoint permet de gérer les paramètres du point lumineux : position, rayon d'action et force d'attraction.
-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.