Le logiciel Warbot, réalisé sous MadKit est une système de simulation de combats entre agents. Ce système est utilisé dans le cadre du module SMA du M2 d'informatique de Montpellier. Une présentation rapide se trouve sur le site www.warbot.fr (on trouvera notamment une présentation PowerPoint de Warbot sur la page documents du site).
Chaque "robot" dans Warbot est divisé en deux: une partie 'corps' qui est prédéfinie et qu'on ne peut pas modifier, et une partie 'tête' qu'il s'agit de modifier pour que son équipe de robots gagne. Le travail porte essentiellement sur les techniques de coopération que l'on peut implémenter sachant que les robots n'ont qu'une vue très partielle et très locale de leur environnement (ils n'ont pas accès à l'état global du jeu, mais seulement à leurs perceptions locales ainsi qu'aux messages des autres agents).
Warbot tourne sur la plate-forme MadKit qui est une plate-forme de développement de systèmes multiagents fonctionnant en Java. Madkit utilise le modèle AGR (Agent/Groupe/Rôle) pour structurer les communications entre agents. Les groupes sont distribués de manière automatique sur les différents noyaux Madkit présents. MadKit est un système OpenSource que vous pouvez télécharger à www.madkit.net.
![]() |
![]() |
| Le logiciel "warbot" et la guerre des robots |
Image du "bureau" de MadKit |
Le sujet porte sur la conception et la réalisation d'un langage graphique permettant de réaliser de définir des comportements sous Warbot. Il s'agira de pouvoir programmer facilement des comportements d'agents à partir d'un éditeur graphique de comportements. Pour cela on s'inspirera du système Massive (http://www.massivesoftware.com/) système multi-agent d'animation de foules dont l'éditeur peut être aperçu ici, et du système eToy réalisé en Squeak (Smalltalk) disponible sur http://www.SqueakLand.org/. D'autres inspirations peuvent venir d'autres environnement de développement, notamment AgentSheets (http://www.agentsheets.com/).
On utilisera le logiciel SEdit, intégré à MadKit qui permet de visualiser et d'animer des diagrammes de type "automates", "portes logiques" ou "réseaux de petri".
L'idée est de créer une représentation graphique d'un comportement dirigé par les perceptions que l'on peut représenter sous la forme d'un ensemble de règles de la forme: "si je vois un ennemi x de type 'explorateur', alors je tire dessus" ou "si je n'ai plus d'énergie je demande de l'aide".
Les tâches à effectuer sont les suivantes:
|
|
||||
| Des formalismes graphiques dans SEdit |
TurtleKit: l'automate de description de comportement (en haut) et une simulation de termites (en bas) |
Prérequis: aimer la programmation de scripts et en particulier la programmation graphique. Avoir une bonne connaissance de Java,