Plan Les systèmes multi-agents De la conception à la programmation Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Définitions du terme «agent» Conception et implémentation de sma Des acteurs aux agents Programmation orientée agents (AOP) Plate-formes de développement de systèmes multi-agents (S.M.A) IAD Raisonnement distribué Intégration de connaissances hétérogènes Notion d ontologies Intelligence Artificielle Distribuée (I.A.D) Comment gérer les distribution? Les problèmes sont physiquement distribués Les problèmes sont fonctionnellement distribués multi savoir faire /multi expertises Hétérogénéïté des savoirs Les réseaux de communication imposent une vision distribuée Internet, Bases de données mondiales, Web Sémantique Penser global agir local La complexité impose une vision locale Nécessité dʼadaptation (locale) Changer un central téléphonique ne met pas en péril le réseau mondial 1. Les tableau noirs (blackboards) Contrôle centralisé Partage d information 2. Les acteurs Contrôle décentralisé Envoi de messages 1
Définitions du terme agent «un ensemble d agents qui interagissent dans un environnement commun et qui participent à une dynamique d organisation» ([Demazeau Ferber 98]) Définitions du terme agent (suite) Un agent établit un ensemble de conditions sur les relations entre des objets et des processus. (1) Un processus (ou un processeur) est associé à chaque objet pour le rendre actif (et/ou proactif). Exemples : Dans les systèmes basés sur les acteurs([hewitt 77], [Briot 89]), ce processus exécute le comportement de l'objet. Dans les règles de production, les processus correspondent aux diverses règles que l objet doit activer [Barthelemy & al. 88]. (2) Tout objet est doté d'une architecture lui permettant de modéliser des connaissances dans son domaine de compétence ainsi que des connaissances lui permettant d interagir avec d autres objets et son environnement. (3) Chaque objet doit prendre ses décisions localement, c est-à-dire, sans l intervention d un objet centralisateur (proacivité). Définition de système Multi-Agents Programmation concurrente basée sur les acteurs (1) Systèmes dans lesquels des agents artificiels opèrent collectivement et de façon décentralisée pour accomplir une tâche Agent = entité autonome, proactive, réactive, sociale SMA = système hétérogène, ouvert, dynamique, (auto)- organisé Notions importantes = concurrence, coopération, communication, coordination, collaboration, interaction Emergence de fonctionnalités Organisation Systèmes d interaction Agents Contraintes et objectifs sociaux Un objet (passif) envoie un message et attend la réponse pour entamer une autre tâche, alors qu un acteur envoi un message et continue son activité, qui peut être, par exemple, envoyer un autre message. Un acteur est un objet actif qui communique avec les autres acteurs (ses accointances) par envoi de message asynchrone. 2
Programmation concurrente basée sur les acteurs (2) Destinés aux machines parallèles. Il existe plusieurs modèles (comportements) d acteurs : ABCL, Agha De nombreux langages : Plasma (Hewitt 77) Act1(Lieberman 81) Act2 (Theriault 81) Pract/Acore (Manning 87) Modèle d acteurs Comportement de base d un acteur : 1. Lire un message 2. Exécuter le comportement associé au message 3. Aller en 1. Le système Actalk (Briot 89) Actalk (suite) Les acteurs sont des instances de la classe Actor qui permet l encapsulation d objets standards smalltalk 80. Un acteur est caractérisé par un comportement et une boîte à lettres. Le comportement est exécuté par l objet standard qui est encapsulé. MinimalObject Actor {mailbox, behavior} ABCLActor ExtendedActor Object ActorBehavior {aself} ExtendedActorBehavior ABCLActorBehavior 3
Actalk (suite) Concept de comportement de remplacement Exemple : un compteur acteur MinimalObject Object mailbox Actor {mailbox, behavior} ActorBehavior {aself} ABCLActor ExtendedActor ABCLActorBehavior ExtendedActorBehavior behavior replacementbehavior Counter {contents} A counter Behavior Instance de Sous classe de Plate formes basées sur les acteurs Agents dérivés d acteurs Exemple : le système Mocah Extension d acteurs pour implémenter des agents Un agent=un acteur Spécification du comportement de l acteur pour l adapter au comportement souhaité pour un agent Actor ActorBehaviour Classes de Actalk Hérite de Hérite de ActeurAgent AgentBehaviour Classes de Mocah Les classes de Mocah à partir des classes d Actalk. 4
Programmation orientée agents Programmation de systèmes multi-agents Langages d agents 1) D exécution des agents en mode concurrent (asynchrone) 2) Permettant l envoie de messages entre les agents 3) Architecture et/ou comportements génériques des agents 4) Protocoles de communication (différents moyens de considérer la communication) 5) Interface de visualisation de l exécution et/ou de déploiement 6) Méthodologie de conception Une méthode simple pour l implémentation d un sma est par exemple : MAGE. Simuler un scheduler d agents. Maintenir une liste d agents et donner la main aux agents tour à tour en leur permettant d exécuter un cycle. La granulation du cycle /et/ou le nombre de cycles est à définir. Dans le cas de MAGE, un agent déclenche une règle de production à chaque fois qu il a la main. Pas debuggage, ni de conception globale du sma. L utilisateur est totalement libre Quelques plate-formes multi-agents célèbres Shoam est le premier à parler de la nécessité d avoir des langages de programmation spécifiques pour les agents, avec Agent0, donner détails, sur le langage, au tableau AgentTool Basé sur une méthodologie MaSE 1) Identifier les buts 2) Appliquer les cas d utilisation 3) Raffiner les buts 4) Créer les classes d agents 5) Construire les conversations 6) Assembler les classes d agents 7) Implémenter effectivement les méthodes Déploiement des agents au sein de l environnement Génération automatique du code des conversations 5
Quelques plate-formes multi-agents célèbres (suite) Quelques plate-formes multi-agents célèbres (suite) AgentBuilder : environnement de programmation complet Modélisation OMT Identification d ontologie avec OMT Modèle BDI pour modéliser le comportement des agents Langage AGENT0 pour coder le comportement des agents Langage de communication : KQML Exécution des agents à partir du système Possibilité de générer des.class DECAF : environnement de développement de plans Pas de méthodologie pour la conception Utilitaires pour décrire des plans Mécanismes de coordination de tâches Application d heuristiques pour ordonnancer les tâches Les heuristiques sont construite via une interface Éditeur d agents pour le «débuggage» Quelques plate-formes multi-agents célèbres (suite) Jack Éditeur gestionnaire de projet Langage de programmation (JAL) Un compilateur Agents basés sur le modèle BDI Pas de déploiement Quelques plate-formes multi-agents célèbres (suite) JAFMAS : un ensemble de protocoles de communication et d interaction entre agents Méthodes de coordination et de vérification de cohérence Méthodologie en cinq phases : 1) Identifier les agents 2) Identifier les conversations 3) Identifier les règles de conversation 4) Analyse le modèle des conversations 5) Implémentation. 6
Jive : Quelques plate-formes multi-agents célèbres (suite) Éditeur graphique Possibilité de travail en groupe sur un même projet Création des conversations avec les réseaux de Pétri et le langage COOL MadKit : Éditeur pour le déploiement et la gestion de plusieurs S.M.A Utilitaire pour simulations Quelques plate-formes multi-agents célèbres (suite) Zeus Trois couches : 1) Agent=entité autonome+raisonnement+croyances+ressources+ préférences. 2) Organisation : relations entre les agents 3) Modes de communication, protocoles, coordination Plusieurs éditeurs : ontologies, description des tâches, organisation, définition des agents, coordination, faits et variables. Quelques plate-formes multi-agents célèbres (suite) Quelques plate-formes multi-agents célèbres (suite) Jade : propriétés Répond aux norme FIPA97 Pas de méthodologie spécifiée Classes génériques pour manipulation d ontologies Possible mobilité des agents (migration des agents) Jade : description et utilisation Lancement d un agent avec la méthode (setup ()) Un agent peut contenir un ou plusieurs comportements Un comportement peut être : Un lancement du moteur d inférence (JESS) Toute autre méthode Java Interface graphique pour l enregistrement et la gestion des agents Possibilité de visualiser les conversations Communication par le langage ACL (FIPA) 7
Sites web des plate formes Jade : architecture globale 1. AMS : Agent Management System 2. ACC: Agent Communication Chanel 3. DF : director facilitator (service pages jaunes) AgentBuilder http://www.agentbuilder.com/ AgentTool http://en.afit.af.mil/ai/agentool.htm. Brainstorm/J http://www.exa.unicen.edu.ar/~azunino/brainstormj.htm DECAF http://www.eecis.udel.edu/~decaf/ Jack http://www.agentsoftware.com.au/shared/products/index.html Jade http://sharon.cselt.it/project/jade/ JAFMAS http://www.eces.uc.edu/~abaker/jafmas/home.html JiVE http://www. eces.uc.edu/~abaker/jive/index.html MadKit http://www.madkit.org Zeus http://www.labs.bt.com/projects/agents/zeus/ Méthodologies de développement de SMA Méthodologies de développement de SMA (suite) On initialise les accointances des acteurs Dans le cas d acteurs, on spécifie les différents comportements associés aux messages échangés Phases concernées par la méthodologie : Analyse Développement Implémentation Déploiement 8
Méthodologies de développement de SMA (suite) Différentes phases de développement d un s.m.a. MaSE Aalaadin ou AGR RETSINA Dmars OAA DESIRE Gaia Tropos Kaos Cassiopé Modes de raisonnement en Intelligence Artificielle Systèmes experts Modus Ponens et Modus Tollens Raisonnement qualitatif Raisonnement par défaut Raisonnement non monotone Raisonnement plausible Un raisonnement est souvent un entrelacement de plusieurs types de raisonnement connus La coopération dans les SMA La communication et la coopération sont étroitement liées, l envoi de messages étant le résultat de décisions de coopération Coopérer, c est adopter une attitude (Cesta and Miceli) Etat interne Niveau d énergie 0 danger Faim Normal 20 60 100 Seuil inférieur Seuil Supérieur Relation entre niveau d énergie et états internes des agents. Solitaire : les agents s ignorent. Parasite : l unique but est de chercher de la nourriture ou de manger la nourriture envoyée par les autres agents. Egoïste : demande de l aide ou recherche de la nourriture. Social : plusieurs types de buts en fonction de leur état interne, rechercher de la nourriture, fournir de l aide ou demande de l aide). 9
Coopérer, cʼest conceptualiser (Gasser, Adler et Simoudis ) concepts manipulés : engagements, les intentions et les buts Instanciation des concepts en fonction de lʼapplication envisagée Coopérer c est s engager («commitment») Qui fait quoi Liens d autorité entre les agents L engagement revêt différentes formes L engagement interne : une relation entre un agent et une action (Bouron, Cohen & Levesque) L engagement collectif : engagement interne d un groupe d agents L engagement social : «un agent x possède un engagement social envers un agent y s il s engage à réaliser une action a (engagement interne) et si y est intéressé par l action a. Le résultat de a est un but pour l agent y ; c est pour cela que y possède également comme but que l agent x doit effectuer a. L agent y possède alors des droits de regards sur l agent x, il peut vérifier s il a bien effectué a, exiger sa réalisation, protester s il n est pas satisfait Coopérer, cʼest partager des résultats et des tâches (Davis et Smith, Rochowiak) Deux modes de coopération Partage de tâche : problème à traiter est décomposable en sous tâches pouvant être réalisées de façon indépendante Partage de résultats : doter chaque agent de moyen(s) lui permettant de partager des résultats. Coopérer, cʼest calculer (Sunju Park, Levi, Stirling) Définition de montants de rétribution pour la réalisation de tâches Maximisation de profits individuels Définition de niveaux de satisfaction locaux (solution obtenue dés que tous les niveaux sont atteints) Utilité épistémique : valeur de fausseté et de vérité de chaque proposition cognitive 10
Coopérer, cʼest coordonner des plans, plan partiel global : PGP (Durfee, Lesser) Définition dʼun plan global et de plans locaux Échange de plans partiels entre agents Les agents ajustent leurs activités en fonctions des plans des autres, et proposent des modifications des plans Possibilité dʼinférer les buts des autres à partir de leurs actions en vue dʼaméliorer la coordination globale (réseau probabiliste de reconnaissance de plans) Le protocole réseau contractuel Le protocole réseau contractuel ("Contract Net" en anglais) a été une des premières approches utilisées dans les systèmes multiagents pour résoudre le problème d'allocation des tâches (Davis et Smith, 1983). deux rôles: gestionnaire et contractant Décomposition des tâches en sous-tâches Le protocole réseau contractuel (suite) 11
Applications des SMA Résolution de problèmes et s.m.a Intelligence ambiante Simulation de systèmes complexes Résolution de problèmes distribués Commerce électronique Modélisation biologique Web services Diagnostic de pannes Travail collaboratif Apprentissage collectif Approche classique Analyse et conception problème Algorithme de résolution du problème exécution Solution(s) Données Approche à base de s.m.a domaine Modélisation agents Agents et, intéractions entre les agents Instance du problème Résolution Types d agents/types d applications? Types d agents/types d applications? (suite) Deux types d architecture d agents Agents réactifs Agents cognitifs Agents réactifs un agent ne possède pas de représentation explicite (ni d'eux-mêmes, ni des autres, ni de leur environnement) un agent n effectue pas de raisonnement abstrait (nécessite des représentations) l intelligence (l'organisation) est une propriété émergente; l'organisation des agents entre eux n est qu un effet induit de leur activité et de leurs interactions : elle n est explicitée à aucun niveau dans le système, ce n est pas une donnée du problème 12
Types d agents/types d applications? (suite) Types d agents/types d applications? (suite) Exemples de fonctions collectives Ethologie Insectes sociaux, autres animaux sociaux fourmis, termites, abeilles, guêpes loups, rats, primates, oiseaux, poissons Exemple : les fonctions collectives des fourmis Lasius Niger régulation de la température du nid formation collective de ponts par les ouvrières construction et protection des nids tri du couvain et des items de nourriture coopération dans le transport d'objets trop lourds choix des chemins les plus courts entre nid et sources de nourriture choix des sources de nourriture les plus riches au détriment des autres Types d agents/types d applications? (suite) Le fourragement Collectif "Benchmark" très populaire en IAD et Vie Artificielle Types d agents/types d applications? (suite) Les robots fourrageurs Pb = Collecte d'échantillons de minerai dans un environnement inconnu Exploration et exploitation collective d'un environnement inconnu et dynamique, par des robots ou agents simulés Base Robots 2. Ramassage 3. Retour Beaucoup de techniques envisageables (inspirées la plupart du temps des fourmis) Minerai 1. Recherche aléatoire 4. Recherche aléatoire Les robots les plus simples 13
Questions conceptuelles Questions conceptuelles (2) Nombre et densité d'agents Certains phénomènes ne surviennent qu'en présence d'un nombre ou densité d'agents donné : effet de "seuil" ou "masse critique" Exemples construction des arches par les termites ponts chez les fourmis choix du plus court chemin Choisir un modèle de communication propagation par l'environnement champs de potentiel communication non-intentionnelle instantanée ou non pérenne ou non message point à point message "broadcasté" Questions conceptuelles (3) Modèles : Architecture de Subsumption Choisir un modèle de comportement Pourquoi un comportement se déclenche Perceptions? Buts externes? Buts internes? Motivations? Combinaison des deux? Comment un comportement se déclenche Interactions entre perceptions et motivations (activation, planification) Interactions entre comportements (sélection) Inné? Acquis? Brooks 86 - Behavior Language 90 Modèle semi-hiérarchique de sélection d'actions Capteurs Niveau 3 Evitement obstacles Niveau 2 Exploration Niveau 1 Construction de carte Niveau 0 Déplacement aléatoire Niveau 0 Actionner pince Effecteurs 14
Modèles : Architecture de Subsumption Agents cognitifs Exemple architecture BDI évitement d obstacles suivi de piste mouvement exploratoire mouvement de retour mouvement aléatoire Le contrôle BDI (Michael Wooldrige) Algorithme de contrôle d'agent BDI //B0, D0 et I0 les croyances, désirs et intentions initiales de l'agent 1 B =B0 2 D =D0 3 I = I0 4 répéter 4.1 obtenir nouvelles perceptions p 4.2 B = revc(b, p) 4.3 I = options(d, I) 4.4 D = des(b, D,I) 4.5 I = filtre(b, D, I) 4.6 PE = plan(b, I) 4.7 exécuter(pe) jusqu'à ce que l'agent soit arrêté Notion d engagement (commitment) d'un agent envers une intention Algorithme de contrôle d'agent BDI avec obligation limitée 1 B = B0 2 D = D0 3 I = I0 4 répéter 4.1 obtenir nouvelles perceptions p 4.2 B = revc(b, p) 4.3 I = options(d, I) 4.4 D = des(b, D,I) 4.5 I = filtre(b, D, I) 4.6 PE = plan(b, I) 4.7 tant que (PE<>{} et nonaccompli I,B) et possible(i,b)) répéter - x =exécuter(x); PE = reste(pe) - obtenir nouvelles perceptions p - B = revc(b, p) fin tant que jusqu'à ce que l'agent soit arrêté fin 15
Algorithme de contrôle d'agent BDI avec obligation ouverte 1 // initialisations 4 répéter 4.1 obtenir nouvelles perceptions p 4.2 B = revc(b, p) 4.3 I = options(d, I) 4.4 D = des(b, D,I) 4.5 I = filtre(b, D, I) 4.6 PE =plan(b, I) 4.7 tant que (PE<>{} et nonaccompli(i, B) et possible(i, B)) répéter - x = première(pe); exécuter(x); PE = reste(pe) - obtenir nouvelles perceptions p - B = revc(b, p) - D = des(b, D,I) - I = filtre(b, D, I) - PE = plan(b, I) fin tant que jusqu'à ce que l'agent soit arrêté Approches d intégration de méthodes hétérogènes Minsky et Papert ([Minsky & Papert 74]) «L évolution des stratégies d'utilisation des connaissances est fortement corrélée à la bonne exploitation de la diversité des moyens d'expression, d'identification et d'utilisation des connaissances.» Approches d intégration de méthodes hétérogènes (suite) Le cadre proposé : " doit permettre une interaction entre ces différents types de connaissances de façon à avoir une compréhension complète du domaine à résoudre..." de manière qu'il puisse "contrôler le choix de segments de connaissances pertinents..." ou "décider quand une approche particulière doit être interrompue en faveur d'une autre..." ([Bublin & Kashyap 88] pages 18-25). Objectif Conception d un système permettant de combiner plusieurs modes de raisonnement lors de la résolution d un problème Ce système doit être capable d adapter dynamiquement sa manière d intégrer les modes de raisonnement en fonction de son contexte d utilisation 16
Raisonnement multi-modèles Modèles de raisonnement pour le diagnostic Modèles de raisonnement Systèmes Multi-Agents C.B.R Amdec Comport... Intégration distribuée Mocah : Modélisation de la coopération entre agents hétérogènes Intégration centralisée MDX2 Jacquard... Dynamis Modèle de raisonnement Raisonnement comportemental (Comport) Raisonnement basé sur les cas (CBR) Raisonnement basé sur les modes de défaillance, de leur effet et criticité (Amdec) Connaissances manipulées Comportements des composants (suspect) Bibliothèque de Cas Une Amdec (cause) Caractéristiques des méthodes Fiabilité de ses solutions Risque d'une explosion combinatoire Manque d'exhaustivité Rapidité Diversité des problèmes traités Manque de fiabilité Exhaustivité Réduit le risque d'explosion combinatoire Manque de rapidité Manque de fiabilité Agents coopératifs Caractéristiques de Mocah Agent Amdec Agent CBR Connaissances de coopération Raisonnement basé sur les Amdec Agent Comport Connaissances de coopération Connaissances de coopération Raisonnement à partir de cas Identification de concepts communs Modélisation de l expertise à un niveau conceptuel Modélisation homogène du domaine et de la coopération Raisonnement Comportemental 17
Une identification de concepts communs Décomposition des connaissances selon trois dimensions Tâche réalisée par génère modifie rend candidate Méthode rend utilisable utilise Données Exemples de tâches de diagnostic Exemples de tâches de coopération 18
Architecture interne d'un agent coopératif Diagnostic de pannes de l'essuie-vitre Connaissances sur Les autres Niveau Superviseur Connaissances sur soi Agenda Tâches de coopération Moteur Tâches du domaine Raisonnement comportemental Raisonnement à partir de cas Raisonnement à partir d'amdec Initialisation d'un problème à résoudre Extraits d'un scénario de coopération Solution Enoncé global à résoudre nonok lave-vitre Cmd M145 on type Vehicule R19 Nbr d'apparitions 4 Rapidité 2 Fiabilité 7 CBR DemandeInfo Information integrermess Information génererhyp CBR Amdec Comport nonok lave-vitre type Vehicule R19 Rapidité=2 Fiabilité=7 nonok lave-vitre type Vehicule R19 Nbr d'apparitions 4 Rapidité=2 Fiabilité=7 nonok lave-vitre type Vehicule R19 Cmd M145 on Rapidité=2 Fiabilité=7 Représentations locales Agendas Comport génererhyp Amdec génererhyp génererhyp génererhyp vérifierhyp génererhyp vérifierhyp integremess DemandeInfo DemandeInfo DemandeInfo Information pompe H.S réservoir d'eau vide génererhyp discriminer informeraccoint génererhyp vérifierhyp integremess informaccoint discriminer DemandeInfo Résultat Boîtes à lettres Demande Demande Demande T1 T2 T3 T4 T5 T15 T16 T25 19
Résultats et observations Problématiques Amélioration des caractéristiques individuelles des modèles de raisonnement Organisation dynamique de la résolution Apparition d'un agent Pivot Observation de la coopération entre agents Évaluation de la résolution collective = évaluation de l'activité de coopération Expérimentation de stratégies de coopération et de modèles de raisonnement Une modélisation d'expertises de coopération Un environnement de programmation agent Définitions Application/intérêts Ontolgies Classification/web/langage naturel intégration de modèles de raisonnement Ontologies et SMA Définitions An ontology is an explicit specification of a conceptualization. Ontologies define domain concepts, their properties and the relationships between them, and thus provide a domain language that is meaningful to both humans and machines. They are formal theories supporting knowledge sharing and reuse. 20
Définitions (suite) Wikipédia En philosophie, l'ontologie (du grec oν, oντος, participe présent du verbe être) est l'étude de l'être en tant qu'être, c'est-à-dire l'étude des propriétés générales de ce qui existe. La scolastique considéra cette étude comme une partie de la métaphysique, en tant qu'elle définit les transcendentia, les déterminations communes à tous les êtres (ce qu'on appellera plus tard métaphysique générale, par opposition à la théologie, dite métaphysique spéciale). En informatique, une ontologie est un ensemble structuré de concepts. Les concepts sont organisés dans un graphe dont les relations peuvent être : des relations sémantiques ; des relations de composition et d'héritage (au sens objet) L'objectif premier d'une ontologie est de modéliser un ensemble de connaissances dans un domaine donné. Conclusion L I.A.D est un domaine de recherche récent De nombreux axes non encore explorés Plate formes explorent souvent un aspect de l IAD Sources http://turing.cs.pub.ro/auf2/html/chapters/chapters. html (accédée le 18 janvier 2010) Cours Guillaume Hutzler 21