{feed}

{revue}

{rsscontent}
{librairie} {mediayou}

Systčme multi-agent 
extracted from Wikipedia, the Free Encyclopedia


 

Un système multi-agent (SMA) est un système composé d'un ensemble d'agents, situés dans un certain environnement et interagissant selon certaines relations. Un agent est une entité caractérisée par le fait qu'elle est, au moins partiellement, autonome. Ce peut-être un processus, un robot, un être humain, etc.

Objet de longue date de recherches en intelligence artificielle distribuée, les systèmes multi-agents forment un type intéressant de modélisation de sociétés, et ont à ce titre des champs d'application larges, allant jusqu'aux sciences humaines.

Sommaire

Origine et aspects techniques

Origine

L'une des grandes sources d'inspiration pour les systèmes multi-agents a été l'étude des comportements sociaux de certaines familles d'insectes. Dans ce domaine, on se référera utilement aux articles Intelligence collective et Intelligence distribuée.

Les SMA peuvent ĂŞtre vus comme la rencontre de divers domaines :

Les cinq problématiques des SMA

On peut relever cinq problématiques principales lors de la création de systèmes multi-agents (SMA).

  • D'abord, la problĂ©matique de l'action : comment un ensemble d'agents peut agir de manière simultanĂ©e dans un environnement partagĂ©, et comment cet environnement interagit en retour avec les agents ? Les questions sous-jacentes sont entre-autres celles de la reprĂ©sentation de l'environnement par les agents, de la collaboration entre agents, de la planification multi-agent.
  • Ensuite la problĂ©matique de l'agent et de sa relation au monde, qui est reprĂ©sentĂ© par le modèle cognitif dont dispose l'agent. L'individu d'une sociĂ©tĂ© multi-agent doit ĂŞtre capable de mettre en Ĺ“uvre les actions qui rĂ©pondent au mieux Ă  ses objectifs. Cette capacitĂ© Ă  la dĂ©cision est liĂ©e Ă  un "Ă©tat mental" qui reflète les perceptions, les reprĂ©sentations, les croyances et un certain nombre de paramètres "psychiques" (dĂ©sirs, tendances...) de l'agent. La problĂ©matique de l'individu et de sa relation au monde couvre aussi la notion d'engagement de l'agent vis-Ă -vis d'un agent tiers.
  • Les systèmes multi-agents passent aussi par l'Ă©tude de la nature des interactions, comme source de possibilitĂ©s d'une part et de contraintes d'autre part. La problĂ©matique de l'interaction s'intĂ©resse aux moyens de l'interaction (quel langage ? quel support ?), et Ă  l'analyse et la conception des formes d'interactions entre agents. Les notions de collaboration et coopĂ©ration (en prenant coopĂ©ration comme collaboration + coordination d'actions + rĂ©solution de conflits) sont ici centrales.
  • On peut Ă©voquer ensuite la problĂ©matique de l'adaptation en termes d'adaptation individuelle ou apprentissage d'une part et d'adaptation collective ou Ă©volution d'autre part.
  • Enfin, il reste la question de la rĂ©alisation effective et de l'implĂ©mentation des SMA, en structurant notamment les langages de programmation en plusieurs types allant du langage de type L5, ou langage de formalisation et de spĂ©cification, au langage de type L1 qui est le langage d'implĂ©mentation effective. Entre les deux, on retrouve le langage de communication entre agents, de description des lois de l'environnement et de reprĂ©sentation des connaissances.

Architecture des systèmes multi-agents

En reprenant les cinq problématiques précédentes, on peut décrire quelques éléments de l'architecture d'un système multi-agent.

  • Les agents doivent ĂŞtre dotĂ©s de systèmes de dĂ©cisions et de planification Ă  plusieurs. Les thĂ©ories de la dĂ©cision sont un domaine Ă  part entière d'Ă©tude Ă  ce sujet. Dans la catĂ©gorie des interactions avec l'environnement, un autre problème rĂ©current des systèmes d'agents est celui du pathfinding (avec son algorithme le plus connu, l'algorithme A*).
  • Les agents doivent ĂŞtre dotĂ©s d'un modèle cognitif : LĂ  aussi, plusieurs modèles existent, l'un des plus classiques Ă©tant le modèle BDI (Beliefs-Desires-Intentions). Il considère d'une part l'ensemble de croyances (Beliefs) de l'agent sur son environnement, qui sont le rĂ©sultat de ses connaissances et de ses perceptions, et d'autre part un ensemble d'objectifs (Desires). En croisant ces deux ensembles, on obtient un nouvel ensemble d'intentions (Intentions) qui peuvent ensuite se traduire directement en actions.
  • Les agents doivent ĂŞtre dotĂ©s d'un système de communication. Plusieurs langages spĂ©cialisĂ©s ont vu le jour Ă  cette fin : le Knowledge Query and Manipulation Language (KQML), et plus rĂ©cemment, le standard FIPA-ACL (ACL pour Agent Communication Language) créée par la Foundation for Intelligent Physical Agents FIPA. Ce dernier standard repose en particulier sur la thĂ©orie des actes de langage, chère Ă  John Searle.
  • La problĂ©matique de l'adaptation est un sujet Ă©pineux, objet de recherches nombreuses Ă  l'heure actuelle. On pourrait toutefois citer l'exemple de certains virus, aussi bien biologiques qu'informatiques, capable de s'adapter Ă  leur environnement en mutant.
  • Enfin, l'implĂ©mentation effective du système multi-agent, si elle ne fait pas Ă  proprement parler partie de l'architecture du système, mĂ©rite d'ĂŞtre Ă©voquĂ©e Ă  travers l'exemple des nombreux langages de programmation qui ont Ă©tĂ© dĂ©veloppĂ©s Ă  des fins de recherche en intelligence artificielle. On citera en particulier le langage LISP.


Ces éléments d'architectures s'appliquent plutôt à un système composé d'agents cognitifs.

Des catégories ou modèles d'agents

On peut Ă©tablir une classification des agents selon deux critères : agents cognitifs ou rĂ©actifs d'une part ; comportement tĂ©lĂ©onomique ou rĂ©flexe d'autre part.

La distinction que l'on peut faire entre cognitif et rĂ©actif tient essentiellement de la reprĂ©sentation du monde dont dispose l'agent. Si l'individu est dotĂ© d'une "reprĂ©sentation symbolique" du monde Ă  partir de laquelle il est capable de formuler des raisonnements, on parlera d'agent cognitif tandis que s'il ne dispose que d'une "reprĂ©sentation sub-symbolique", c’est-Ă -dire limitĂ©e Ă  ses perceptions, on parlera d'agent rĂ©actif. Cette distinction cognitif/rĂ©actif correspond Ă  deux Ă©coles de pensĂ©e des systèmes multi-agents. La première soutient une approche de famille d'agents "intelligents" devant collaborer, avec une perspective plus sociologique. La deuxième Ă©tudie la possibilitĂ© de l'Ă©mergence d'un comportement "intelligent" d'un ensemble d'agents non-intelligents (type fourmis). La seconde distinction entre comportement tĂ©lĂ©onomique ou rĂ©flexe sĂ©pare les comportements intentionnels (poursuite de buts explicites) des comportements liĂ©s Ă  des perceptions. Les tendances des agents peuvent ainsi ĂŞtre exprimĂ©es explicitement dans les agents ou au contraire provenir de l'environnement. On peut construire un tableau regroupant les diffĂ©rents types d'agents 1 :

Catégories d'agent
Agents cognitifs Agents réactifs
Comportement téléonomique Agents intentionnels Agents pulsionnels
Comportement réflexe Agents "modules" Agents tropiques


Les agents cognitifs sont la plupart du temps intentionnels, c'est-à-dire qu'ils ont des buts fixés qu'ils tentent d'accomplir. On peut cependant trouver parfois des agents dits modules qui, s'ils ont une représentation de leur univers, n'ont pas de buts précis. Ils pourraient servir par exemple à répondre à des interrogations d'autres agents sur l'univers. Les agents réactifs peuvent être séparés en agents pulsionnels et tropiques. Un agent pulsionnel aura une mission fixée (par exemple, s'assurer qu'un réservoir reste toujours suffisamment rempli) et déclenchera un comportement s'il perçoit que l'environnement ne répond plus au but qui lui était affecté (le niveau du réservoir est trop bas). L'agent tropique, lui, ne réagit qu'à l'état local de l'environnement (il y a de la lumière, je fuis). La source de motivation est dans un cas interne (agents pulsionnels qui ont une "mission"), dans l'autre cas liée uniquement à l'environnement.

Applications

Dans le monde de la recherche

On distingue gĂ©nĂ©ralement trois types d'utilisation : la simulation de phĂ©nomènes complexes, la rĂ©solution de problème, et la conception de programmes.

On utilise les systèmes multi-agents pour simuler des interactions existants entre agents autonomes. On cherche à déterminer l'évolution de ce système afin de prévoir l'organisation qui en résulte. Par exemple, en sociologie, on peut paramétrer les différents agents composant une communauté. En ajoutant des contraintes, on peut essayer de comprendre quelle sera la composante la plus efficace pour parvenir à un résultat attendu (construction d'un pont). Ce qui importe c'est le comportement d'ensemble et non pas le comportement individuel. Des applications existent en physique des particules (agent = particule élémentaire), en chimie (agent = molécule), en biologie cellulaire (agent = cellule), en éthologie (agent = animal), en sociologie et en ethnologie (agent = être humain). L'autonomie permet ici de simuler le comportement exact d'une entité.

L'intelligence artificielle distribuĂ©e est nĂ©e pour rĂ©soudre les problèmes de complexitĂ© des gros programmes monolithiques de l'intelligence artificielle : l'exĂ©cution est alors distribuĂ©e, mais le contrĂ´le reste centralisĂ©. Au contraire, dans les SMA, chaque agent possède un contrĂ´le total sur son comportement. Pour rĂ©soudre un problème complexe, il est en effet parfois plus simple de concevoir des programmes relativement petits (les agents) en interaction qu'un seul gros programme monolithique. L'autonomie permet au système de s'adapter dynamiquement aux changements imprĂ©vus qui interviennent dans l'environnement.

Dans le même temps, le génie logiciel a évolué vers des composants de plus en plus autonomes. Les SMA peuvent être vus comme la rencontre du génie logiciel et de l'intelligence artificielle distribuée, avec un apport très important des systèmes distribués. Par rapport à un objet, un agent peut prendre des initiatives, peut refuser d'obéir à une requête, peut se déplacer ... L'autonomie permet au concepteur de se concentrer sur une partie humainement appréhendable du logiciel.

La métaphore des jeux vidéo

On peut reprĂ©senter un SMA par une de ces communautĂ©s virtuelles que l'on trouve de plus en plus dans les jeux vidĂ©o actuels. Prenons l'exemple d'un jeu qui simulerait la vie d'une famille. Le SMA se dĂ©compose selon plusieurs dimensions. Tout d'abord, un environnement disposant d'une mĂ©trique. On peut considĂ©rer qu'il s'agit de la maison et du jardin oĂą vit notre petite famille. Ensuite le SMA peut disposer d'un ensemble d'objets passifs sur lesquels peuvent intervenir nos agents. Il s'agira de tous les objets qui Ă©quipent la maison, mais Ă©galement de la nourriture. Un SMA se compose d'agents. Ceux-ci, actifs et autonomes, interagissent avec leur entourage (environnement, objets et autres agents). On identifie ces agents aux membres de la famille (sans oublier le chien). Ensuite, on ajoute un ensemble de relations entre les objets et les agents, ce qui dĂ©finit une organisation. On pourra par exemple exprimer les liens familiaux entre les diffĂ©rents individus, mais Ă©galement traiter des notions de propriĂ©tĂ©s (quel objet appartient Ă  qui ?). Enfin, on intègre un ensemble d'opĂ©rateurs qui permettent aux agents d'agir sur les objets ou sur les autres agents (le fils peut manger un yaourt ou promener son chien ou parler Ă  sa sĹ“ur), et de capteurs qui permettent aux agents de connaĂ®tre les changements de l'environnement et des autres agents (le yaourt est tombĂ© par terre, papa m'a demandĂ© de sortir le chien). Voici donc ce que l'on peut appeler un SMA. En informatique, l'agent sera un programme autonome possĂ©dant un ensemble de connaissances et agissant selon des règles qui lui sont propres.

Plate-formes de développement de systèmes multi-agents

  • CORMAS (COmmon Resources Multi-Agent System) est un framework de dĂ©veloppement de systèmes multi-agents, open-source et basĂ© sur le langage de programmation orientĂ©e objet SmallTalk . SpatialisĂ©, il est centrĂ© sur des problĂ©matiques de recherche en sciences du dĂ©veloppement et de nĂ©gociation entre acteurs.
  • JADE (Java Agent DEvelopment) est un framework de dĂ©veloppement de systèmes multi-agents, open-source et basĂ© sur le langage Java. Il offre en particulier un support avancĂ© de la norme FIPA-ACL, ainsi que des outils de validation syntaxique des messages entre agents basĂ© sur les ontologies.
  • MadKit est une plate-forme multi-agents modulaire Ă©crite en Java et construite autour du modèle organisationnel Agent/Groupe/RĂ´le. C'est une plate-forme libre basĂ©e sur la licence GPL/LGPL dĂ©veloppĂ©e au sein du LIRMM.
  • MAGIQUE est une plate-forme pour agents physiquement distribuĂ©s Ă©crite en Java et fournissant un modèle de communication original d'appel Ă  la cantonade. Dans MAGIQUE, les compĂ©tences sont dissociĂ©es des agents. L'architecture des agents et les diffĂ©rentes compĂ©tences sont dĂ©veloppĂ©es sĂ©parĂ©ment. Les compĂ©tences sont ensuite greffĂ©es comme plugin dans les agents au grĂ© du concepteur. Cette plate-forme est dĂ©veloppĂ©e au sein du LIFL.
  • OMAS, Open Multi-Agent Asynchronous Systems est une plate-forme de recherche dĂ©veloppĂ©e par l'Ă©quipe d'intelligence artificielle de l'UniversitĂ© de technologie de Compiègne, sous la direction de Jean-Paul Barthès.
  • JAgent est un framework open source rĂ©alisĂ© en Java dont l'objectif est de faciliter le dĂ©veloppement et le test de systèmes multi-agents.
  • Jason est un environnement open source de dĂ©veloppement d'agents dans le formalisme AgentSpeak2, et dĂ©veloppĂ© en Java par Jomi Fred HĂĽbner et Rafael H. Bordini.
  • JACK est un langage de programmation et un environnement de dĂ©veloppement pour agents cognitifs, dĂ©veloppĂ© par la sociĂ©tĂ© Agent Oriented Software comme une extension orientĂ©e agent du langage Java.
  • SemanticAgent est basĂ© sur JADE et permet le dĂ©veloppement d'agents dont le comportement est reprĂ©sentĂ© en SWRL. SemanticAgent est dĂ©veloppĂ© au sein du LIRIS, il est open-source et sous licence GPL V3.
  • DoMIS est un outil permettant la conception de Systèmes Multi-agents (orientĂ©s "pilotage opĂ©rationnel de systèmes complexes") et basĂ© sur la mĂ©thode de conception B-ADSc. AxĂ© sur la conception, DoMIS permet l'Ă©tablissement de spĂ©cifications utilisables par toute plateforme de dĂ©veloppement capable de simuler, au mieux, le temps rĂ©el.
  • AnyLogic - Logiciel de simulation multi-agents et multi-mĂ©thode
  • Jadex, est une plate-forme agent dĂ©veloppĂ©e en JAVA par l'universitĂ© de Hambourg qui se veut modulaire, compatible avec de nombreux standards et capable de dĂ©velopper des agents suivant le modèle BDI.
  • SPADE est un environnement de dĂ©veloppement d'organisations multi-agents basĂ© sur le protocole XMPP et est Ă©crit en Python.

Aspects culturels

Systèmes multi-agents et fiction

Les concepts des systèmes multi-agents ont été repris dans différentes œuvres de fiction. Le plus souvent on retrouve la peur classique de l'invention qui échappe à son concepteur (référence à la notion d'émergence), mais le phénomène est amplifié par le nombre et l'intelligence collective des agents.

  • Dans La RĂ©volution des fourmis, de Bernard Werber les adolescents rebelles dans leur lycĂ©e crĂ©ent sur ordinateur une sociĂ©tĂ© oĂą les entitĂ©s sont des humains qui finalement se rebellent.
  • Dans La Proie de Michael Crichton oĂą un essaim d'entitĂ©s autonomes s'Ă©chappe d'un laboratoire.
  • Les rĂ©plicateurs de la sĂ©rie Stargate SG-1 qui forment au dĂ©part de simples jouets et qui Ă©voluent jusqu'Ă  devenir une menace pour l'univers.
  • Dans Code Lyoko, XANA est un programme multi-agents créé par Franz Hopper. Il accomplira sa tâche, Ă  savoir dĂ©truire le projet cartage avant de s’en prendre Ă  l’humanitĂ©.
  • Dans Matrix, les programmes sont indĂ©pendants et hiĂ©rarchisĂ©s, on peut donc les qualifier d'agents. Dans la trilogie ce terme est utilisĂ© pour nommer une partie d'entre eux, en fait les plus visibles. (Il Ă©tait en effet invraisemblable que les machines aient Ă©voluĂ© au point de simuler le comportement humain.) NĂ©o est le premier Ă  avoir dĂ©couvert toute la complexitĂ© de la matrice, notamment lors de son combat avec SĂ©raphin. Mais la confirmation ne viendra que dans Matrix Revolutions quand un "programme" lui parlera d'amour.

Notes et références de l'article

  1. ↑ Jacques Ferber, Les Systèmes multi-agents : Vers une intelligence collective, InterEditions, 1995 (ISBN 2-7296-0665-3) 
  2. ↑ Anand S. Rao, AgentSpeak(L): BDI Agents Speak Out in a Logical Computable Language. MAAMAW 1996, pp. 42-55

Voir aussi

Bibliographie

En plus des rĂ©fĂ©rences citĂ©s ci-dessus, deux ouvrages, en anglais, font rĂ©fĂ©rence dans le domaine des systèmes multi-agent :

  • (en) (en) Michael Wooldridge, An Introduction to MultiAgent Systems, 2002 dĂ©tail des Ă©ditions 
  • (en) (en) Gerhard Weiss, Multiagent Systems, A Modern Approach to Distributed Artificial Intelligence, MIT Press, 1999 (ISBN 0-262-23203-0) .

Articles connexes

Liens et documents externes

(fr) Actualité Robotique et systèmes multi-agents

(fr) Systèmes multi-agents : Approche dĂ©cisionnelle des systèmes complexes B-ADSc

 
Le Texte ci-dessus est disponible sous GNU Free Documentation License.
La source est wikipedia http://fr.wikipedia.org/wiki/{title}
Base de liens  |  Ajouter lien  |  Contact Rss
On est 36 visiteur(s) en ligne
Server 2.0