Plates-formes des systèmes multi-agents

 

Systèmes multi-agents

Professeur : J-P. SANSONNET

 

Master recherche en Informatique – Université Paris Sud – Orsay

Février 2005

Etudiants :  

-         Muhammad SOHAIL

-   Muhammad Afan SHAH

-         Said SAIDNA

-         Abbas SLIMANI


Table des matières

1.     Introduction 

2.     Les plates-formes multi-agents

2.1.         AgentBuilder

2.2.         Madkit

2.3.         Jade

2.4.         Zeus

3.     Références

                  


Introduction.

Une partie importante des travaux actuels dans le domaine des systèmes multi-agents a pour objectif la mise en application des modèles à base d’agents. La méthodologie de conception et les infrastructures d'exécution sont les deux problèmes majeurs auxquels est confrontée la technologie multi-agents.

Les modèles issus de l'approche objet ne sont pas suffisamment expressifs et adaptés au concept d'agent et ne prennent pas en compte les caractéristiques d'autonomie, de pro-activité, de réactivité et de socialité de l'agent ainsi que les caractéristiques de complexité et de dynamicité du système.

·         La communication entre les objets et entre les agents ne se situe pas au même niveau. En programmation objet, la communication consiste uniquement à invoquer une méthode. Dans les systèmes multi-agents, l'interaction entre les agents est beaucoup plus riche (avec une typologie de messages et une ontologie) et complexe (fondée sur de protocoles) à mettre en oeuvre. De plus, l'agent interprète le message et décide de son comportement.

·         Les interactions entre les objets sont définies de manière rigide. Ils ne peuvent évoluer dans le temps, ce qui est indispensable dans certaines applications multi-agents.

·         Les agents ont une composante sociale très importante qui influence leur comportement, mais que ne possèdent pas les objets.

·         Il faut laisser à l'agent la faculté de décider dynamiquement comment et quand agir pour permettre la prise en compte d'évènements imprévus. Même les objets actifs n'ont pas cette possibilité.

·         Les relations sont insuffisantes pour modéliser les relations organisationnelles d'un système complexe.

Actuellement se fait donc sentir le besoin de fournir des modèles, des méthodologies, des plates-formes pour faciliter la prise en compte de la complexité des systèmes à concevoir et aider les concepteurs, qui ne sont pas forcément spécialistes des systèmes multi-agents, à décider si un composant sera un agent ou un simple objet. Les industriels sont aussi fortement intéressés par une approche d'ingénierie basée sur leurs exigences qui prennent en compte tout le cycle de vie du logiciel. Ainsi, les aspects ingénierie des systèmes multi-agents sont en plein essor.

Cependant, si nous faisons un rapide tour d'horizon, nous remarquons que la plupart de plates-formes multi-agents sont conçues par rapport à un modèle d'agent particulier ou un domaine d'application. On peut également noter la disparition de la plupart des plates-formes basées sur des langages spécifiques au profit de bibliothèques associées à des langages objets classiques.

Il existe actuellement de nombreuses plates-formes multi-agents qu'on peut classer en plusieurs catégories.

·         Les plates-formes pour agents mobiles (Voyager, Odissey, Aglet, etc.) qui fournissent la mobilité à des agents.

·         Les plates-formes pour agents cognitifs (AgentBuilder, etc.) dans lesquels on trouve les plates-formes FIPA compliant (Jade, FIPA-OS, etc.) ou KQML compliant (JAT, JAT-Lite, etc.).

·         Les plates-formes pour agents collaboratifs (Zeus, JAFMAS, KAoS, JAFIMA, etc.).

·         Les plates-formes pour la simulation multi-agents (Cormas, Swarm, etc.)

Toutes ces plates-formes sont dédiées soit à un certain type d'agents (agents à base de règles pour AgentBuilder ou agents collaboratifs pour Zeus par exemple) soit à un certain type d'applications (simulation, mobilité). Il n'existe pas à notre connaissance de plate-forme générique qui permette de réaliser des applications dans tous ces domaines.

Dans les sections suivantes, nous allons présenter en détail quatre plates-formes multi-agents qui sont : AgentBuilder, MadKit, Jade et Zeus.


Les plates-formes multi-agents :

·         AgentBuilder : AgentBuilder est un environnement de développement complet. Une modélisation orientée-objets avec OMT constitue la base de la conception des systèmes à laquelle on ajoute une partie «ontologie». L'élaboration des comportements des agents se fait à partir du modèle BDI et du langage AGENT-0. KQML est utilisé comme langage de communication entre les agents. l'exécution du système se fait à partir du moteur d'exécution d'AgentBuilder. Par contre, on peut créer des fichiers « .class » et les exécuter sur une JVM standard. AgentBuilder est un outil complexe qui demande des efforts d'apprentissage importants et de bonnes connaissances dans le domaine des systèmes multi-agents pour utilisé de façon performante. Il est limité au niveau de l'extensibilité, de déploiement et de la réutilisabilité.

(Pour en savoir plus).

·         MadKit: MadKit est un environnement basé sur la méthodologie Aalaadin ou AGR (Agent/Groupe/Rôle). L'outil fournit un éditeur permettant le déploiement et la gestion des SMA (G-box). la gestion faite via cet éditeur offre plusieurs possibilités intéressantes. L'outil offre aussi un utilitaire pour effectuer des simulations.

(Pour en savoir plus).

·         Jade: Jade est un outil qui répond aux normes FIPA97. Aucune méthodologie n'est spécifiée pour le développement. Jade fournit des classes qui implémentent « JESS » pour la définition du comportement des agents. L'outil possède trois modules principaux (nécessaire aux normes FIPA). Le DF « Director Facilitor » fournit un service de pages jaunes à la plate-forme. Le ACC « Agent Communication Channel » gère la communication entre les agents. Le AMS « Agent Management System » supervise l'enregistrement des agents, leur authentification, leur accès et utilisation du système. Les agents communiquent par le langage FIPA ACL. Un éditeur est disponible pour l'enregistrement et la gestion des agents. Aucune autre interface n'est disponible pour le développement ou l'implémentation. A cause de cette lacune, l'implémentation demande beaucoup d'efforts. Il nécessite une bonne connaissance des classes et des différents services offerts.

(Pour en savoir plus).

·         Zeus: Zeus est un environnement complet qui utilise une méthodologie appelée « Role Modeling » pour le développement de systèmes collaboratifs. Les agents possèdent trois couches. la première couche est celle de la définition où l'agent est vu comme une entité autonome capable de raisonner en terme de ses croyances, ses ressources et ses préférences. La seconde couche est celle de l'organisation. Dans celle-ci, on décide des modes de communications entre les agents, protocoles, coordination et autres mécanismes d'interaction. La troisième couche est la couche de coordination, chaque agent est considéré comme une entité sociale c’est-à-dire en terme ses compétences de négociation et de coordination. L'outil est un des plus complets. les différentes étapes de développement se font à l'intérieur de plusieurs éditeurs : Ontologie, description des tâches, organisation, définition des agents, coordination, faits et variables ainsi que les contraintes. le développement de SMA avec Zeus est cependant conditionnel à l'utilisation de l'approche « Role Modeling ». L'outil est assez complexe et sa maîtrise nécessite beaucoup de temps.

(Pour en savoir plus).


Références :

·         Les systèmes multi-agents, Vers une intelligence collective, Jacques FERBER, InterEditions Paris 1995.

·         Les systèmes multi-agents et le temps réel, Ammar ATTOUI, Edition Eyrolles 1997.

·         Systèmes multi-agents Série ARAGO OFTA Février 2004.

·         Jade A White Paper Volume 3, September 2003.

·         Jade – A FIPA-compliant agent Framework, Fabio bellifemine, agostino Poggi, Giovanni Rimassa.

·         Making Software Agent Technology available to Entreprise Applications, Dick Cowan, Martin Griss. 2002.

·         AgentBuilder http://www.agentbuilder.com/

·         Jade http://sharon.cselt.it/projects/jade/

·         MadKit http://www.madkit.org/

·         Zeus http://www.labs.bt.com/projects/agents/zeus/