| Précédent AgentBuilder et Zeus | Haut Introduction | Suivant Jade |
DIMA
(Développement et Implémentation de systèmes Multi-Agents)
Systèmes Multi-Agents
Professeur : J-P.Sansonnet
Etudiant : FEGAS Mounir
Table des Matières
Introduction
1 - Architecture d'agents
a
- Les Composants proactifs
b
- Agents interactifs
c
- Agent Adaptatifs
2
- Caractéristiques physiques
3
- Environnement de développement
4
- Développement d'un SMA dans DIMA
a
- Analyse
b
- Conception et Implémentation
c
- Déploiement
Conclusion
Références
DIMA 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 dans le thème Objets et Agents pour Systèmes d'Information et de Simulation (OASIS) du LIP. DIMA a été utilisé pour développer plusieurs applications réelles (Ventilation artificielle, simulation de modèles économiques,...). 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éel. La première version de DIMA a été implémentée en Smalltalk-80 et a été ensuite portée en JAVA.
L'architecture d'agent DIMA propose de décomposer chaque agent en différents modules ou composants 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 plusieurs composants 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).

Figure 1 : L'architecture d'agents de DIMA
Pour gérer les interactions entre ces différents composants, 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é proactive 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:
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.
Un composant proactif présente une entité
autonome et proactive. Le noyau de base de DIMA est un framework de composants
proactifs. Un composant proactif a différentes compétences (une suite d'actions
qui permettent de changer l'état interne de l'agent ou envoyer des messages aux
autres agents) et son activité n'est pas restreinte à l'envoi et à la réception
de messages. Ainsi, un composant proactif est décrit par un but, une compétence
de base (ou comportement) et un méta-comportement qui définit la manière dont
les compétences sont sélectionnées, séquencées et activées en fonction du but.
Différents paradigmes (automate, règle de
production, etc.) sont réutilisés pour définir de nouvelles classes de
composants proactifs. Par exemple, le comportement d'un composant proactif peut
être modélisé par un ATN (Augmented Transition Network).
Le composant proactif peut être considéré
comme une brique de base pour construire des agents.
Pour définir des agents interactifs, les composants
proactifs ont été enrichis d'un module de communication. Ce dernier gère les
interactions avec les autres agents. Les comportements de ces agents
interactifs intègrent notamment deux
types d'actions : les actions liées aux concepts d'agents tels que l'envoi et
la réception de messages et des actions liées au domaine.
Chaque agent interactif a deux composants
: une boite aux lettres pour stocker ses messages et un module de communication
pour gérer les messages envoyés et reçus.

Figure 2 : Architecture d'agents adaptatifs
Un méta-comportement est introduit dans
l'architecture d'agents de DIMA. Ce méta-comportement donne à chaque agent la
capacité de prendre des décisions appropriées au sujet de contrôle ou d'adapter
son comportement avec le temps à des nouvelles circonstances. Il fournit à
l'agent un mécanisme d'auto-contrôle pour adapter dynamiquement ses
comportements selon son état interne et celui de son environnement.
Le méta-comportement se base sur les données
de l'agent lui-même, son environnement, et le système de décision utilisé. Il
est basé sur deux types d'éléments : conditions et actions.
2 - 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. Cet 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.
3 - 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érents 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.).
La modularité offre plusieurs avantages :
Les librairies de DIMA regroupent des
classes qui peuvent être instanciées ou sous-classées pour implémenter un agent
ou un composant de l'agent. Par exemple, pour la communication, DIMA offre deux
classes ActalkBasedCommunication (basé sur les envoies de messages asynchrones)
et ACLBasedCommunication (basé sur les standards KQML et ACL de la FIPA).
Le modèle d'architecture d'agents DIMA
est fondé sur la conclusion suivante : une bonne plate-forme intègre les
différentes architectures d'agents existantes ainsi que d'éventuelles nouvelles
architectures. Ainsi, Le modèle d'architecture d'agents proposé par DIMA peut
être vu comme un modèle 'ouvert'. La force de DIMA réside à la fois dans sa
proposition de modèle d'architecture d'agents modulaire et également dans les
différentes bibliothèques disponibles.
En plus, 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.
4 - Développement d'un SMA dans DIMA
Dans DIMA, le développement d'un système multi-agents nécessite les principales étapes de développement : Analyse, Conception, Implémentation et déploiement.
Dans DIMA, l'analyse commence par la modélisation du domaine. Cette modélisation du domaine est similaire aux processus d'élaboration de modèles conceptuels dans les méthodes objets.
b - Conception et Implémentation
Les principales étapes pour la conception et l'implémentation d'un agent sont les suivantes :
Après avoir modélisé le domaine et l'ensemble des agents, DIMA offre deux possibilités :
L'exécution des agents sur une seule
machine nécessite l'initialisation du réseau de communication avant
l'activation des agents.
La répartition des agents DIMA sur
plusieurs machines s'appuie sur le middleware DarX. La répartition des agents
nécessite :
DIMA est un environnement de
développement multi-agents écrit en JAVA et Smalltalk. 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. Les librairies de DIMA
regroupent des classes qui peuvent être instanciées ou sous-classées pour
implémenter un agent ou un composant d'agent.
La réutilisabilté offre les avantages
suivants : réduire le temps d'implémentation, faciliter le développement pour
des non-spécialistes des SMA, etc.
Plusieurs extensions de la version JAVA
de DIMA sont en cours de réalisation : introduction de modèles organisationnels
(statiques et dynamiques), tolérance aux pannes, etc. 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 SMA et les langages de
programmation tel que JAVA, un outil pour décrire son système. Cette
description est en ensuite transformée en un SMA. Ce travail est fondé sur
l'outil MetaGen. D'autre part, Une version répartie de DIMA, appelée DARX (Dima
Agent Replication eXtension), vient d'être réalisée.
[1] Z. Guessoum. « Environnement de développement et de conception de systèmes multi-agents ». Thèse, Université Paris 6, 1996.
[2] Z. Guessoum et J-P. Briot « DIMA », OASIS, Laboratoire LIP6, Univ. Paris 6 http://www-poleia.lip6.fr/~guessoum/dima.html.
[3] P. Mathieu. « Le problème de la Vente aux Enchère », Rapport ASA, Groupe ASA, PRC IA. 2001-2002. http://www.lifl.fr/~mathieu/rapport_encheres.pdf
[4] P. Mathieu. « Le problème de l'Emploi du Temps », Rapport ASA, Groupe ASA, PRC IA. 2002. http://www.lifl.fr/~mathieu/rapport_edt.pdf
[5] P-M. Ricordel. « Programmation Orientée Multi-Agents », Thèse, Laboratoire LEIBNIZ, INPG. 2001. http://rangiroa.essi.fr/rapports/2001/01-these-ricordel.pdf