Depuis mon arrivée à Oxiane, une question m’est régulièrement posée : « C’est quoi un SMA ? »
En effet, avant d’arriver, j’avais passé un peu de temps dans la recherche dans ce domaine.
Puis est venu une discussion avec Jennifer, sur un système permettant de suicider des tortues… Et là, c’est le drame…
Il fallait absolument que je fasse un article pour présenter le domaine de recherche des systèmes multi-agents (SMA).
Ce domaine est né de l’intelligence artificielle et des systèmes distribués.
Pour définir un système multi-agent (« multi-agent » étant maintenant considéré comme un adjectif, il ne porte pas de « s »), dans (Briot et Demazeau, 2001), les auteurs prennent la définition usuelle du système « un ensemble organisé d’éléments » pour poser qu’un SMA est « un ensemble organisé d’agents ».
Dans un SMA, il existe une ou plusieurs organisations qui structurent les règles de cohabitation et de travail collectif entre agents. Il s’agit d’une métaphore de l’organisation collective. Chaque agent a ses propres compétences et a besoin d’interagir avec les autres pour résoudre des problèmes.
L’objectif d’un SMA est de résoudre des problèmes (combien de temps met la tortue à traverser la plage de Brest, si elle pèse 10kg, et a des courses à faire) ou bien de modéliser des phénomènes complexes à l’aide d’un ensemble d’agents (le phénomène de marées, les nuits sur les plages de Brest, qui potentiellement vont perturber les tortues).
Un système multi-agent est donc un système où un certain nombre d’agents coexistent… lorsque l’on a dit ça, se pose la question cruciale : qu’est-ce qu’un agent ?
En 1980, Newell fut le premier à parler d’agent. Chercheur en IA classique et psychologie cognitive, il présenta un agent intelligent (à l’époque, on s’intéressait peu aux tortues). Depuis la proposition de Newell, de nombreuses définitions et architectures ont été proposées.
Historiquement, on distingue les agents réactifs et les agents cognitifs.
– Un agent réactif ne possède pas de représentation explicite de son environnement. Il fonctionne sur un mode de type stimulus/réponse. Les formes d’interaction entre agents réactifs sont simples, ils communiquent de façon indirecte via l’environnement, en y laissant des signaux (comme les phéromones des fourmis par exemple). Les organisations d’agents réactifs possèdent généralement un grand nombre d’agents.
– Un agent cognitif, quant à lui, possède une représentation plus élaborée de son environnement, des buts explicites et des capacités de raisonnement individuelles sur le problème et sur les autres agents. Il peut être doté de capacités de mémorisation de ses actions passées, de capacités de planification, etc. Les intéractions avec les autres agents peuvent se faire directement par envois de messages (voir partie 2.2.6.1. Modes de communication).
On présente souvent ces deux types d’agent comme opposés. Comme l’explique Ferber dans (Ferber, 1996), il ne faut pas prendre cette opposition réactif-cognitif comme « une opposition d’essence », mais plutôt comme « des repères dans l’analyse des SMA ».
Il existe en effet des agents appelés agents hybrides, qui combinent des caractéristiques réactives et cognitives.
La définition de l’agent la plus couramment adoptée est celle de Jacques Ferber, qui sortit un ouvrage en 1995 qui fait référence dans le domaine (Ferber, 1995) :
« On appelle agent une entité physique ou virtuelle
– qui est capable d’agir dans un environnement,
– qui peut communiquer directement avec d’autres agents,
– qui est mue par un ensemble de tendances (sous la forme d’objectifs individuels ou d’une fonction de satisfaction, voire de survie, qu’elle cherche à optimiser),
– qui possède des ressources propres,
– qui est capable de percevoir (mais de manière limitée) son environnement,
– qui ne dispose que d’une représentation partielle de cet environnement (et éventuellement aucune),
– qui possède des compétences et offre des services,
– qui peut éventuellement se reproduire,
– dont le comportement tend à satisfaire ses objectifs, en tenant compte des ressources et des compétences dont elle dispose, et en fonction de sa perception, de ses représentations et des communications qu’elle reçoit. »
Il faut voir l’agent comme une entité de conception, au niveau modélisation, avec différents grains possibles : une tortue = un agent, ou une tortue = un ensemble d’agents ou plusieurs tortues = un agent, etc… On peut citer des caractéristiques d’un agent, par exemple pour (Guessoum, 2003) :
– l’agent est autonome, il agit sans l’intervention des humains ou des autres agents (la tortue est forte), il contrôle ses actions en fonction de son état interne et de sa perception de l’environnement,
– il est proactif, c’est-à-dire qu’il agit de lui-même (la tortue décide !), il a sa propre activité dirigée vers ses buts (contrairement aux objets dont l’action est simplement une réponse aux messages reçus),
– il est adaptatif, il est capable de réguler ses aptitudes (comportementales, communicationnelles, etc.), en fonction des agents avec qui il interagit, et/ou en fonction de l’environnement dans lequel il évolue (la marée bouleverse la plage, mais la tortue sait s’adapter…)
Dans la littératures on trouve des caractéristiques telles que la communication, la socialité, etc,… Pour moi, l’agent doit être vu comme une entité de conception et deux choses sont importantes :
– un agent est proactif, il décide de lui-même, vous pouvez le démarrer, mais pas forcément l’arrêter !
– il n’a pas d’ipséité, il « joue » pour le système et grâce au système, un agent tout seul (perdu sur une plage de Brest) n’a pas de sens : il n’existe que par et pour l’organisation.
Un exemple que je donnerai est le regroupement des fourmis en une boule pour flotter, afin de traverser une rivière : certaines meurent noyées, pour le bien du collectif : pour que le groupe arrive à bon port.
Les travaux au sein de la communauté SMA sont très hétérogènes, certains chercheurs travaillent sur la structure d’un agent, sur la communication entre agents (les langages agents sont appelés des ACL pour Agent Communication Langage), d’autres sur la négociation entre agents logiciels,
d’autres au niveau système, sur la modélisation de systèmes complexes avec des agents légers.
D’autres encore sur le contrôle des SMA (lorsque l’on a lancé un ensemble d’agents pro-actifs, qui font ce qu’ils veulent, se pose évidemment la question du contrôle du système), voir (Campagne, 2005).
Certains voient ce domaine de recherche comme une évolution de la modélisation orientée objet, d’autres disent qu’il y a complémentarité, les objets et agents coexistant dans un système. Ce qui est fondamental à mon sens est de garder à l’esprit que lorsque l’on parle d’agent, on est bien au niveau modélisation, et non au niveau codage :
un agent dans un modèle peut être, dans une implémentation de ce modèle, un ensemble d’objets, un processus, un ensemble de processus, etc…, ceci est une autre question.
En conclusion, les SMA qui exploitent les principes de l’intelligence collective, apportent des outils utiles non seulement pour suicider des tortues, mais également pour des travaux dans des domaines aussi variés que le génie logiciel, l’interaction homme-machine, le e-commerce, la robotique, la vie artificielle,…
Auteur : Charlène Floch
Briot J-P. et Demazeau Y., (2001), Principes et architecture des systèmes multi-agents. Collection IC2, Hermes Science Publications, Briot et Demazeau (eds.), Paris.
Campagne J.C, (2005), Systèmes multi-agents et morphologie. Thèse de doctorat, Université Pierre et Marie Curie (Paris 6).
Drogoul A., (1993), De la simulation multi-agents à la résolution collective de problèmes, Thèse de doctorat, Université Pierre et Marie Curie (Paris 6).
Ferber J., (1995), Les systèmes multi-agents : Vers une intelligence collective, InterEditions.
Ferber J., (1996), Coopération, intention et interaction. Une réponse à la « pelouse fourmilière » de Brassac et Pesty, In IA Distribuée et Systèmes Multi-Agents, 4èmes Journées Francophones sur l’Intelligence Artificielle Distribuée et les Systèmes Multi-Agents (JFIADSMA’96), Le Grau du Roi, AFCET, AFIA, Müller, Quinqueton, (eds), Hermes, p. 273-280.
Guessoum Z., (2003), Modèles et architectures d’agents et de systèmes multi-agents adaptatifs, Dossier d’habilitation de l’Université Pierre et Marie Curie (Paris 6).
Newell A., (1982), The Knowledge Level, Presidential Address, American Association for Artificial Intelligence, AAAI80, Stanford University, 19 Aug 1980, publié dans Artificial Intelligence Magazine 2(2) 1981 et 18(1) : p. 87-127, 1982.