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
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.
·
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é.
·
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.
·
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.
·
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.
·
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/