Outils logiciels des Systèmes Multi-Agents

Transcription

Outils logiciels des Systèmes Multi-Agents
Outils logiciels des Systèmes
Multi-Agents
Joël Quinqueton
LIRMM
Montpellier, France
Rappels des cours précédents
1.
2.
Motivations: distribution
Origines
1.
2.
3.
4.
Problématique: agent + organisation
Agents
1.
2.
5.
Tableaux Noirs
Acteur
Situés ou communicants
Cognitifs ou réactifs
Sociétés & Organisations
1.
2.
3.
4.
5.
Modes d'Organisation
Communication
Interaction et coopération
Allocation de Tâches
Coordination
Joël Quinqueton
2
Développement centré agent
• Accélérer le développement et diminuer l’effort de
programmation
• Abstraire les mécanismes
– de communication
– d’interaction
– de coordination
• Implémenter des systèmes complexes
• Bonne extensibilité du code
• Support pour le déploiement
Joël Quinqueton
3
Programmation orientée-agent
Tony Garneau & Sylvain Delisle
Département de mathématiques et
d’informatique
Université du Québec à Trois-Rivières
évaluation comparative d’outils
et environnements
• Présenté à JFIADSMA’2002, Lille
• Introduction
• Évaluation
– Objectifs et choix des outils
– Critères d’évaluation
• Résultats
– Résultats par outil
– Classement global
• Conclusion
Joël Quinqueton
5
Introduction
• La programmation orientée-agent
– Nouveau paradigme de programmation,
– Évolution de la programmation orientée-objet,
– Façon plus naturelle de concevoir les systèmes.
• Méthodologies et architectures
– Patrons théoriques pour la modélisation,
– Les systèmes spécifiés à partir de ces méthodologies sont difficiles
à implémenter par des langages de programmation standards (C++,
Java ou autres…).
Joël Quinqueton
6
Introduction
• Méthodologies et architectures développées
– MaSE, Aalaadin ou AGR, RETSINA, dMARS, OAA,
DESIRE, Gaia, Tropos, Kaos et bien d’autres…
• Outils POA
– JADE, Zeus, MadKit, AgentBuilder, Jack, JAFMAS,
AgentTool, DECAF, RMIT, Brainstorm / J, ADK,
ABEL et autres…
• Créés pour supporter une méthodologie.
• Créés pour démontrer une idée ou un concept en particulier.
Joël Quinqueton
7
Évaluation
• Objectifs à atteindre pour qu’un outil soit
considéré comme un environnement de
développement de SMA :
– Accélérer le développement et diminuer l’effort de
programmation,
– Abstraire les mécanismes de communication,
d’interaction et de coordination,
– Permettre l’implémentation de systèmes relativement
complexes,
– Permettre une bonne extensibilité du code,
– Fournir un support pour le déploiement (et l’exécution)
des systèmes.
Joël Quinqueton
8
Critères d’évaluation
• 15 critères d’évaluation
• Pondération pour chaque critère :
–
–
–
–
–
4 si l’outil répond très bien au critère,
3 si l’outil répond bien au critère,
2 si l’outil répond moyennement au critère,
1 si l’outil répond peu au critère,
0 si l’outil ne répond pas du tout au critère.
Joël Quinqueton
9
Critères d’évaluation
• 1. Méthodologie
– La méthodologie couvre les différentes étapes du
processus de développement de SMA :
• Analyse, développement, implémentation, déploiement.
• 2. Facilité d’apprentissage de l’outil
–
–
–
–
Qualité de la documentation,
La complexité des composants,
Les concepts utilisés,
Et autres…
Joël Quinqueton
10
Critères d’évaluation
• 3. Transition entre les étapes
– Facilité de transition entre le développement et
l’implémentation.
• 4. Souplesse de l’outil
– Flexibilité de l’outil par rapport à l’utilisation de ses
composants et de sa méthodologie.
Joël Quinqueton
11
Critères d’évaluation
• 5. Communication inter-agents
– Fournir l’implémentation des différents services de
communication entre les agents :
• Connections entre les machines, protocoles de
communication, sécurité, synchronisation, services de
messagerie.
• 6. Outil de “débuggage”
– Entre autre, il faut être capable de :
• Retracer les agents des différentes machines, les messages
transmis, les erreurs survenues.
Joël Quinqueton
12
Critères d’évaluation
• 7 et 8. Support graphique
développement et implémentation
pour
le
– L’environnement propose des interfaces aidant :
• La création du modèle et des agents, l’élaboration des
conversations, le transport des messages, le déploiement sur
différentes machines.
• 9. Support pour la gestion du système
– L’outil permet l’interaction avec le système:
• Ajouter, modifier, supprimer (agents ou
dynamiquement dans le système.
Joël Quinqueton
sous-systèmes)
13
Critères d’évaluation
• 10. Diminution de l’effort demandé et
simplicité d’implémentation
– Composants facilement identifiables:
• Noms, packages, documentation, paramètres, etc…
– Langage de programmation:
• Orienté-objet, “multi-threads”, programmation réseau
simple.
– Classes et services disponibles faciles à utiliser.
– Diminution de la quantité de code à écrire.
Joël Quinqueton
14
Critères d’évaluation
• 11. Support pour les bases de données
– Abstraction du
informations.
processus
de
sauvegarde
des
• 12. Génération de code
– Génération automatique du code source des différents
composants du système.
• 13. Extensibilité du code
– Facilité d’ajout de code à celui déjà existant (ou
généré).
– Simple de modifier les classes et services déjà
implémentés.
Joël Quinqueton
15
Critères d’évaluation
• 14. Le déploiement
– Permettre le déploiement sur plusieurs machines,
– Exécution simple du système,
– Exécution indépendante de l’environnement.
• 15. La documentation
– Documentation de qualité:
• Elle couvre l’ensemble des composants de l’outil.
• Elle est claire, concise et non-ambiguë.
Joël Quinqueton
16
Outils évalués
• AgentTool
Outil et méthodologie qui mettent l’accent sur les
premières phases du développement (analyse et
développement).
– Méthodologie MaSE : extension au modèle OO (7
phases)
• Trouver les buts, appliquer les cas d’utilisation, raffiner les
rôles, créer les classes d’agents, construire les conversations,
assembler les classes d’agents et l’implémentation.
– L’outil permet la validation des conversations.
– Génération du code des conversations (en Java).
Joël Quinqueton
17
AgentTool
Joël Quinqueton
18
Outils évalués
• AgentBuilder
Environnement de développement complet
– Méthodologie OMT à laquelle on ajoute une partie ontologie,
– Agents construits à partir d’un modèle BDI et de AGENT-0,
– Langage de communication entre les agents : KQML,
– Exécution à partir de l’engin d’AgentBuilder,
– Possibilité de générer les fichiers « .class » et d’exécuter les
systèmes sur une JVM standard.
Joël Quinqueton
19
AgentBuilder
Joël Quinqueton
20
Outils évalués
• DECAF
– Environnement de développement de plans,
– L’outil fourni des utilitaires pour l’élaboration
de plans et pour la coordination des tâches,
– Un planificateur applique des heuristiques pour
trouver un ordonnancement aux tâches,
– Éditeur d’agent utile pour le « débuggage ».
Joël Quinqueton
21
Decaf
Joël Quinqueton
22
Outils évalués
• Jack
– Gestionnaire de projet
• Éditeur de textes où se fait l’implémentation du système,
• La compilation (passage de JAL à Java),
• L’exécution du système.
– Le langage JAL est une extension au langage Java.
– Compilateur qui transforme le code JAL en java pur.
– Les agents sont basés sur un modèle BDI (une
évolution du modèle BDI de dMars).
Joël Quinqueton
23
Jack
Joël Quinqueton
24
Outils évalués
• Jade
– Outil qui répond aux normes FIPA.
– Trois modules principaux (nécessaires aux normes FIPA):
• Le DF « directory facilitator » fourni un service de pages jaunes à la
plate-forme.
• Le ACC « agent communication chanel » 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.
– Langage de communication entre les agents : FIPA ACL.
– Éditeur pour l’enregistrement et la gestion des agents.
Joël Quinqueton
25
Jade
Joël Quinqueton
26
Outils évalués
• JAFMAS et JiVE
– JAFMAS met l’accent sur les protocoles de
communication, l’interaction entre les agents, la
coordination et la cohérence à l’intérieur du système.
– Méthodologie en cinq phases :
• Identifier les agents, les conversations, les règles de
conversation, analyser le modèle des conversations et
l’implémentation.
– Utilisation des réseaux de Pétri.
– JiVE : support graphique pour le développement avec
JAFMAS.
Joël Quinqueton
27
Jafmas/Jive
Joël Quinqueton
28
Outils évalués
• Madkit
– Environnement basé sur la méthodologie Aalaadin ou AGR (agent
/ groupe / rôle).
• Un agent joue des rôles à l’intérieur de groupes.
– L’outil fourni un éditeur permettant le déploiement et la gestion
des SMA (G-box).
– L’outil offre aussi un utilitaire pour effectuer des simulations à
grande échelle.
Joël Quinqueton
29
MadKit
Joël Quinqueton
30
Outils évalués
• Zeus
Environnement de développement complet
– Méthodologie « role modeling ».
– Les agents possèdent trois couches :
• La définition : l’agent est vu comme une entité autonome capable de
raisonner grâce à ses croyances, ressources et préférences.
• L’organisation : relations entre les agents.
• La coordination : modes de communication entre les agents,
protocoles, coordination et autres mécanismes d’interaction.
Joël Quinqueton
31
Zeus
Joël Quinqueton
32
Évaluation globale
• Jack et JADE
– Ils peuvent être considérés comme étant des
«frameworks»,
– Aucune méthodologie n’est spécifiée,
– Lacunes au niveau des utilitaires graphiques,
– Bonne documentation,
– Grandes possibilités au niveau de l’implémentation.
– Différence majeure :
• le développement avec JADE se fait en Java contrairement à
JAL pour le développement avec Jack.
Joël Quinqueton
33
Évaluation globale
• AgentTool, DECAF, Jade, Madkit
Quatre environnements aidant à différents niveaux du processus
de développement de SMA.
• DECAF et JAFMAS
• Ces deux outils mettent l’accent sur les interactions, la coordination et
la planification.
• Ils délaissent le côté implémentation et déploiement.
• Comparativement aux trois autres, DECAF n’offre aucune
méthodologie.
Joël Quinqueton
34
Évaluation globale
• AgentTool, DECAF, Jade, Madkit (suite)
– AgentTool
• Cet outil met l’accent sur les premières phases du
développement.
• L’implémentation n’est pas prise en compte (sauf la génération
des conversations).
– MadKit
• Il met plus l’emphase au niveau du déploiement qu’aux autres
étapes du développement (même s’il se base sur la
méthodologie Aalaadin et offre un ensemble de classes).
• Il offre une bonne documentation comparativement aux trois
autres.
Joël Quinqueton
35
Évaluation globale
• AgentBuilder et Zeus
Les deux environnements les plus complets :
– Documentation abondante,
– Ces outils offrent plusieurs interfaces
graphiques aidant lors des différentes étapes du
développement,
– Les deux outils offrent un utilitaire de
« débuggage »,
– Ils proposent chacun une méthodologie pour le
développement,
Joël Quinqueton
36
– Les deux outils sont très complexes et leurs
apprentissages nécessitent beaucoup d’efforts.
Évalutation globale
• AgentBuilder et Zeus (suite)
– AgentBuilder :
• Il faut connaître RADL « Reticular Agent Definition
Language ».
• Comprendre la gestion des ontologies, l’engin d’exécution, les
protocoles utilisés et maîtriser les différents interfaces de
l’environnement.
– Zeus :
• Maîtriser la technique de modélisation « Role modeling » qu’il
faut obligatoirement utiliser, comprendre les différents éditeurs
qui fournissent plusieurs services plus ou moins sophistiqués.
Les deux outils ont des lacunes aux niveaux de
l’extensibilité et de la souplesse.
Joël Quinqueton
37
Conclusion
• Quelques résultats
– Les outils fournissant des utilitaires graphiques pour le
développement et l’implémentation ont un manque aux
niveaux de l’extensibilité et de la souplesse.
– Ceux qui
fournissent
des
interfaces
pour
l’implémentation diminuent l’effort de programmation.
– Les outils les plus complets proposent une
méthodologie.
– La plupart des outils ne supportent aucun mécanisme
pour la sauvegarde des données.
Joël Quinqueton
38
Conclusion
• Constats
– La majorité des outils ont été développés pour
exploiter un concept en particulier.
– Ces outils négligent, volontairement ou non,
plusieurs aspects essentiels à l’implémentation
d’un SMA.
– Ceci rend leur utilisation souvent impossible
pour le développement de systèmes réels.
Joël Quinqueton
39