Sujet TER - Master 1 - 362 S2 - Année 2008-2009

Réalisation d'un langage graphique de scripts pour Warbot

Présenté par Jacques Ferber

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
(cliquer sur l'image pour l'élargir)

 

Travail à fairedans le cadre du TER

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:

  1. Implémenter un formalisme de langage de développement graphique sous SEdit permettant la définition d'agents.
  2. Développer un compilateur Langage graphique -> Python et/ou Java qui transforme les expressions du langage graphique en code directement exploitable par Warbot.

 

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,