DIMA

Zahia Guessoum et Jean-Pierre Briot

Objets et Agents pour Systèmes d'Information et

de Simulation(OASIS)

Laboratoire d'Informatique de Paris 6 (LIP6) , Université de Paris 6

  Contact : Zahia.Guessoum@lip6.fr

http://www-poleia.lip6.fr/~guessoum/dima.html

Caractéristiques générales


DIMA (Développement et Implémentation de Systèmes Multi-Agents) est un environnement de développement de systèmes multi-agents dont le développement a débuté en 1993, dans le cadre de la thèse de Z. Guessoum, et qui continue dans le cadre d'autres thèses (par exemple celle de H. Ramdani). DIMA a été utilisé pour développer plusieurs applications réelles (Ventilation artificielle, simulation de modèles économiques, etc.) par les auteurs mais également par d'autres personnes n'ayant pas participé à son développement (voir par exemple la thèse de N. Boukhatem).Ces applications peuvent être des simulations, des résolutions de problèmes ou des systèmes de contrôles ayant éventuellement des contraintes temps réelles. La première version de DIMA a été implémentée en Smalltalk-80 et a été
ensuite portée en JAVA.

Modèles multi-agents

L'architecture d'agents DIMApropose de décomposer chaque agent en différents modules dont le but d'intégrer des paradigmes existants notamment des paradigmes d'intelligence artificielle. Ces modules représentent les différents comportements d'un agent tels que la perception (interaction agent-environnement), la communication (interaction agent-agent) et la délibération. Un agent peut ainsi avoir un ou plusieurs modules qui peuvent être réactifs ou cognitifs. Un comportement réactif est décrit par un ensemble de méthodes (au sens objets) alors qu'un comportement cognitif peut avoir des méthodes qui activent des mécanismes de raisonnement (Par exemple, un moteur d'inférence ). Pour gérer les interactions entre ces différents comportements, DIMA propose un module de supervision représentant le méta-comportement de l'agent. Ce méta-comportement réifie le mécanisme de contrôle de l'agent, il gère les interactions entre les différents modules et permet à l'agent d'observer ces comportements. Un agent est ainsi une entité pro-active et autonome. Cette architecture permet de dépasser la dichotomie classique en offrant la possibilité de développer des applications multi-agents dont la granularité des agents est variable.Elle offre ainsi la possibilité de
concevoir et réaliser différents types d'agents:
   -des agents réactifs, décrits par des comportements réactifs,
   -des agents cognitifs, décrits par des comportements cognitifs,
   -des agents hybrides, conçus pour allier des capacités réactives à des capacités cognitives, ce qui leur permet d'adapter leur comportement en temps réel à l'évolution de leur univers.
Un système multi-agents peut comporter un nombre quelconque d'agents hétérogènes (tailles différentes, mécanismes de décision/raisonnement différents, etc.). Des agents peuvent être créés dynamiquement et des agents peuvent également mourir parce qu'ils ont atteint leur but ou ils n'ont plus de ressources.  Ces agents sont également dotés de mécanismes pour adapter leurs comportements aux changements de leur univers. Un agent peut ainsi avoir une base de règles figée mais il peut également l'acquérir automatiquement en se basant sur sa mémoire en utilisant un raisonnement à base de cas par exemple. D'autre part, pour optimiser le contrôle un méta-comportement utilisant les algorithmes génétiques a été introduit.  Ces agents peuvent être organisés en utilisant la notion de groupes et de rôles. Par ailleurs, des structures organisationnelles auto-adaptatives sont en cours de développement.
 
 

Caractéristiques physiques

Pour faciliter l'utilisation d'un système multi-agents, la représentation des agents est fondée sur des mécanismes déclaratifs. Par exemple, le mécanisme de contrôle d'un agent est décrit par un automate et son interpréteur. Cette interpréteur est indépendant du domaine d'application. Cette représentation déclarative d'un agent facilite en effet sa migration. La description de l'agent peut être réutilisée pour créer un autre agent sur une autre machine. Le moteur d'interaction est distribué, chaque agent a son propre module d'interaction.
 

Environnement de développement

La principale caractéristique de DIMA est son architecture modulaire et des librairies offrant les briques de base pour construire des modèles d'agents divers. Ces différentes briques ont pour but d'offrir à l'utilisateur une grande variété de paradigmes (par exemple automate, règle, etc.) d'une part, et d'autre
part, une implémentation des différentes propositions conceptuelles introduites par la communauté multi-agents (BDI, KQML, ACL, etc.). Les librairies de DIMA regroupent des classes qui peuvent être réutilisées et/ou adaptées pour construire facilement des agents. Ces classes peuvent être instanciées ou sous-classées pour implémenter un comportement. Par exemple, pour la communication, DIMA offre deux classes ActalkBasedCommunication (basé sur les envoies de messages asynchrones) et ACLBasedCommunication (basé sur les standards KQML etACL de la FIPA).
DIMA intègre un simulateur multi-agents (fondé sur un noyau de simulation à événements discrets)qui facilite le développement des simulations asynchrones, chaque agent peut avoir une échelle temporelle qui lui est propre et qui est indépendante de celles des autres agents. Chaque agent se voit ainsi associer une horloge virtuelle locale. L'horloge de la simulation définit un temps global commun à tous les agents permettant de synchroniser ces horloges les unes par rapport aux autres.
Ce simulateur est également utilisé pour simuler l'environnement d'un système multi-agents, notamment les systèmes opérant en temps réel. On peut utiliser un modèle de simulation à événements discrets qui génère des signaux correspondant exactement à l'environnement opérationnel
prévu.
 

Environnement d'exécution

Une version de DIMA fondée sur la méta-modélisation est en cours de développement. L'objectif est d'offrir à un utilisateur, pas très familiarisé avec les systèmes multi-agents et les langages de programmation tel que JAVA, un outil pour décrire son système. Cette description est ensuite transformer en un système   multi-agents. Ce travail est fondée sur l'outil MétaGen (http://www-poleia.lip6.fr/~fortame).  D'autre part, Une version répartie de DIMA, appelée DARX (Dima Agent Replication Extension), vient d'être réalisée par Jacob Zimmerman dans le cadre de son DEA.

Publications

[1]    Z. Guessoum. A Multi-Agent Simulation Framework. Transactions ofComputer Simulation, à paraître,     1999.
[2]    Z. Guessoum and J.-P. Briot. From Active Objects to Autonomous Agents. IEEE Concurrency, vol. 7, n°  3, pp. 68-76, 1999.
[3]    Z. Guessoum. DIMA: Une plate-forme multi-agents en Smalltalk. Revue Objet, Volume 3 No 4, pp.     393-410, 1998.
[4]    M. Dojat, F. Pachet, Z. Guessoum. Touchard, A. Harf, L. Brochard. NéoGanesh: a Working System for the Automated Control of Assisted Ventilation in ICUs. Artificial Intelligence in Medicine, Volume 11   No 2, September/October 1997.
[5]    Z. Guessoum. environnement de développement et de conception de systèmes multi-agents. Thèse,  Université Paris 6, 1996.
[6]    Z. Guessoum et M. Dojat. A Real-Time Agent Model in an Asynchronous Object-Oriented Environment. in Lecture Notes in Artificial Intelligence, Agents Breaking Away, Walter Van de Velde  and John Perram (eds.), Netherlands, pp. 190-203, January 1996.
[7]    N. Boukhatem.. L'approche multi-agents pour un contrôle de congestion adaptatif de réseaux ATM. Thèse, Université de Versailles, 1997.