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

Master Recherche Informatique – LRI – Université Paris Sud XI

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


Introduction

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.

1 - Architecture d'agents

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).

img1.gif

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.

a - Les Composants proactifs

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.

b - Agents interactifs

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.

c - Agents adaptatifs

img2.gif

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.

a - Analyse

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 :

c - Déploiement

Après avoir modélisé le domaine et l'ensemble des agents, DIMA offre deux possibilités :

  1. exécution des agents sur une seule machine.
  2. répartition des agents sur plusieurs machines.

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 :

Conclusion

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.

Références :

[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