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.