Académique Documents
Professionnel Documents
Culture Documents
net/publication/242623967
CITATIONS READS
118 16,428
1 author:
Jacques Ferber
Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier (LIRMM)
143 PUBLICATIONS 10,811 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Jacques Ferber on 05 September 2014.
RÉSUMÉ. Cet article donne un aperçu général du domaine des systèmes multi-agents. Après
une introduction des concepts généraux, un modèle formel de ces systèmes est proposé. Puis,
après avoir donné une vue synthétique de l’ensemble des thèmes de recherche dans ce
domaine, un panorama rapide des applications fondées sur cette approche est présenté.
ABSTRACT. This paper gives a general overview of multi-agent systems. After a brief
introduction of general concepts, a formal model of multi-agent systems is proposed. Then, a
synthetic view of researches done in this domain and a brief presentation of multi-agent
applications is given.
MOTS-CLÉS : systèmes multi-agents, intelligence artificielle distribuée, SMA, IAD
KEY WORDS : multi-agent systemes, distributed artificial intelligence, MAS, DAI
Citation : Ferber J. Les systèmes multi-agents: un aperçu général. Technique et Science
Informatiques, vol.16 n°8, pp. 979-1012, 1997.
1. Introduction
Cet article présente un aperçu général des systèmes multi-agents (SMA). Il traite
aussi bien des grands thèmes de recherche que des applications potentielles et
actuelles de ces systèmes. Après avoir introduit les définitions générales et relier la
notion d’agent à celle d’objet, un modèle formel de système multi-agents, englobant
aussi bien les agents réactifs que cognitifs, est proposé section 2. La section 3
propose une vue générale de l’ensemble des thèmes de recherche dans ce domaine.
Enfin la section 4 offre un panorama rapide des applications fondées sur cette
approche.
Les systèmes multi-agents (SMA) mettent en œuvre un ensemble de concepts et
de techniques permettant à des logiciels hétérogènes, ou à des parties de logiciels,
appelés « agents » de coopérer suivant des modes complexes d’interaction. La
technologie des SMA s'est développée ces dernières années sous une quadruple
pression.
La première est due aux limites de l'intelligence artificielle classique sur le plan
de la structuration et de l'organisation des connaissances. La difficulté qu'il y a à
traduire un ensemble d'expertises sous une forme unifiée a amené les chercheurs à
Page 1
développer ce que l'on a d'abord appelé des systèmes multi-experts, c'est-à-dire des
systèmes mettant en jeu plusieurs bases de connaissances plus ou moins
coordonnées. Ce faisant, on a pu constater que le problème de la coopération entre
plusieurs bases de connaissances se révélait un enjeu crucial qui dépassait de loin le
problème de la multi-expertise.
La deuxième trouve son origine dans la nécessité de trouver des techniques
performantes de modélisation et de simulation dans le domaine des sciences du
vivant au sens large du terme. L'évolution des écosystèmes habités notamment,
montre qu'il est difficile de rendre compte de leur évolution par un ensemble
d'équations différentielles. Une approche dans laquelle les individus sont
directement représentés sous forme d'entités informatiques semble une voie
prometteuse et a contribué à l'essor du domaine.
La troisième provient de la robotique. Le développement de la miniaturisation en
électronique permet de concevoir des robots qui disposent d'une certaine autonomie
quant à la gestion de leur énergie et à leur capacité de décision. On a pu ainsi
montrer qu'un ensemble de petits robots ne disposant que de capacités élémentaires
de décision et d'intelligence pouvait facilement rivaliser avec les performances d'un
seul robot «intelligent», nécessairement plus lourd et plus difficile à gérer. Le
problème consiste alors, ici encore, à faire coopérer ces entités de manière à ce
qu'elles assurent ensemble les fonctions désirées.
Enfin, la quatrième est issue du développement de l'informatique et des systèmes
distribués en particulier. Avec la généralisation des réseaux et des ordinateurs
parallèles, il devient de plus en plus important de pouvoir faire coopérer plusieurs
composants logiciels au sein d’environnements hétérogènes et distribués. Le
problème ne réside plus dans le contenu des programmes, qui peuvent avoir des
fonctionnalités diverses, mais dans leur capacité à collaborer avec d'autres
programmes à la réalisation d'un objectif commun. C’est surtout cet aspect que nous
retiendrons dans la suite de cet exposé.
Les systèmes multi-agents proposent une nouvelle approche de l’informatique
qui se situe comme un prolongement et une extension de la notion d’objet. En
mettant l’accent sur l’interaction et la satisfaction individuelle, ils s’interdisent de
penser le global centralisé. Dans un SMA, tout est distribué, réparti : la
connaissance, le contrôle, les compétences, l’activité, la planification, etc. De ce fait,
les SMA s’adaptent bien aux systèmes complexes et ouverts où il est difficile de tout
décrire à l’avance. La localité est ainsi un gage de performance et d’adaptabilité.
2.1. Généralités
Page 2
La première définition, que l’on peut considérer comme faible, est surtout
tournée vers une conception très « informaticienne » de l’agent, et se situe en contact
étroit avec l’implémentation. Dans ce sens, un agent peut être défini comme un objet
informatique (au sens des langages objets) dont le comportement peut être décrit par
un « script », qui dispose de ses propres moyens de calcul (un agent est alors associé
à un processus léger), et qui peut se déplacer de places en places (une place pouvant
être un site informatique distant du site originel de l’agent) pour communiquer avec
d’autres agents. C’est cette conception de l’agent qui a été retenue par la société
General Magic pour concevoir le logiciel TELESCRIPT. Issu des modèles à objets
concurrents en général et des langages d’acteurs en particulier, ce modèle présente
l’avantage de pouvoir être facilement mis en oeuvre. Malgré son intérêt pratique
immédiat, ce modèle reste à un niveau trop élémentaire, le concept initial de l’agent,
qui repose sur son autonomie de décision et son caractère intentionnel, ayant été
quelque peu limité à des critères d’implémentation immédiate. Néanmoins, des
langages fondés sur cette approche peuvent être utilisés pour implémenter des
modèles de systèmes multi-agents plus complexes.
Au contraire, dans la seconde définition, que l’on pourrait qualifier de forte, le
concept d’agent prend toute son importance. Dans ce cas, on appelle agent une
entité informatique qui [FER 95] :
1. se trouve dans un système informatique ouvert comprenant un ensemble
d’applications, de réseaux, et de systèmes hétérogènes,
2. peut communiquer avec d’autres agents,
3. est mue par un ensemble d’objectifs propres (c’est en ce sens que l’on peut
parler d’agent intentionnel),
4. possède des ressources propres,
5. ne dispose que d’une représentation partielle des autres agents,
6. possède des compétences (services) qu’elle peut offrir aux autres agents,
7. a un comportement tendant à satisfaire ses objectifs, en tenant compte d’une
part des ressources et des compétences dont elle dispose, et d’autre part de ses
propres représentations et des communications qu’elle reçoit.
Cette définition met l’accent sur l’autonomie de décision qui résulte de
l’indépendance avec laquelle un agent tente de satisfaire des objectifs qu’il s’est
assigné, en utilisant au mieux les ressources et les compétences dont il dispose.
Certains en restent là et considèrent alors que tout se résume à une bonne
description du fonctionnement des agents. C’est ainsi que tout un courant de
chercheurs qui se réclament de l’approche « agent » travaille dans ce sens. Citons
Shoham, Georgeff et Rao, Levesque, Cohen et Lesperance, Jennings et Wooldridge,
etc. tous étant convaincus que la solution passe directement, et uniquement, par la
réalisation formelle d’un modèle d’agent et par son implémentation.
Au contraire, d’autres chercheurs, qui se reconnaissent dans la notion de
« système multi-agents » (et qui insistent sur le « multi ») considèrent qu’il faut
d’abord penser l’interaction et ensuite en déduire la structure intentionnelle des
agents et non l’inverse. L’intérêt des systèmes multi-agents réside en effet dans la
notion d’action collective et dans sa capacité à articuler l’individuel au collectif, par
l’intermédiaire de la structure cognitive des agents. Sans remettre en cause l’idée
d’agent intentionnel, cette conception « collective » met l’accent sur les structures
Page 3
d’interactions (coopération, négociations, coordination d’actions, conflits, etc.) et
sur les organisations qui en découlent (rôles, hiérarchies d’autorité, etc.).
Enfin, la troisième approche est celle de l’agent comme système collaborateur
d’un être humain. L’idée sous-jacente est de dire, comme nous l’avions signalé dans
l’introduction, que l’interaction entre l’utilisateur et la machine va passer d’une
conception des systèmes informatiques comme « outils » à celle de « collaborateur »
ou « assistant ». Dans ce cas, l’utilisateur se trouve en face d’un « être» informatique
qui dispose de son autonomie en termes d’action, qui interagit « intelligemment »
avec lui, qui accomplit un certain nombre de tâches répétitives (telles que la gestion
de courrier électronique par exemple) ou qui agit comme un mandataire pour aller
« fureter » des informations sur le réseau ou négocier des transactions commerciales.
Bien que sa position conceptuelle soit très proche de celle de l’agent comme
entité intentionnelle, l’agent collaborateur met l’accent sur le dialogue
homme/machine et sur la compréhension, par la machine, des désirs et volontés de
l’utilisateur. Par exemple, un agent collaborateur digne de ce nom, doit pouvoir
« lire par dessus l’épaule » de l’utilisateur afin d’apprendre sa façon de travailler,
connaître ses préférences et en déduire des règles d’action. Néanmoins, le
développement de ce que l’on appelle parfois les « agents intelligents » pour ne
décrire en fait que des applications d’assistance à l’utilisateur, ternissent un peu le
terme « agent », et entretiennent une certaine confusion par rapport au multi-agent.
Nous ne développerons pas cet aspect par la suite.
Qu'est ce qui différencie un agent d'un objet ? Si le concept d’agent comme objet
distribué est très proche de celui de l’objet, il n’en est pas de même de l’agent
comme entité intentionnelle. En effet les objets n’ont ni but ni recherche de
satisfaction et le mécanisme d’envoi de message se résume à un simple appel de
procédure. Il n’y a pas de langage de communication à proprement parler. Les
mécanismes d'interaction sont donc à la charge du programmeur.
Méthodes Objectifs
Requête
Services Acte de langage
Réponse
Acte de langage
Objet Agent
Page 4
communications à base de langages plus évolués (actes de langages pour les agents
cognitifs, propagation de stimuli pour des agents réactifs) d'autre part, ces deux
notions étant intrinsèquement liées. Inversement un objet peut être considéré comme
un agent « dégénéré » devenu un simple exécutant, tout message étant considéré
comme une requête.
Page 5
précédemment, w un monde et Π un opérateur de combinaison d’influences. La
dynamique du système est alors donnée par le système des n+1 équations suivantes :
s1 (t + 1) = F1 ( s1 (t ), P1 (σ (t )))
...
sn (t + 1) = Fn ( s(t ), Pn (σ (t )))
σ (t + 1) = R(σ (t ), ∏ Infli ( si (t )))
i
De plus, on définit pour chaque agent une fonction de satisfaction qui associe une
valeur d’un espace de satisfaction (cela peut être tout simplement l’ensemble {V,F}
des valeurs booléennes, mais aussi un intervalle [0..1], ou un treillis, ou encore un
élément d’un espace vectoriel, etc. c'est-à-dire un espace sur lequel on puisse
calculer des fonctions de maximisation et de minimisation) à un état interne de
l’agent et que l’on note µa(s).
Dans ce cadre, il est possible de définir ce qu’est un problème multi-agent. En
fait, il existe deux types de problèmes différents. Le premier que l’on appelle parfois
aussi « résolution distribuée de problèmes » suppose qu’il existe une fonction de
satisfaction globale (ou inversement une fonction de coût) h(σ) définie sur
l’ensemble des états du monde (les éléments de Σ) que l’on essaye de maximiser (ou
inversement que l’on cherche à minimiser).
Définition : Résoudre un problème distribué, connaissant la dynamique d’un
environnement w, l’opérateur de combinaison d’influences Π, le nombre n d’agents,
leur fonction de perception Pi et de production d’influences Infli, ainsi que la
fonction de satisfaction globale h, c’est déterminer l’ensemble des comportements
des agents, c'est-à-dire les fonctions Fi, de manière à maximiser (ou inversement à
minimiser) h(σ(t)).
Généralement, et c’est pour cela que l’on fait appel aux systèmes multi-agents, il
est impossible non seulement de résoudre directement les équations précédentes,
mais aussi de parcourir l’ensemble des états de manière à approximer ces fonctions.
On fait alors l’hypothèse que l’on cherche à maximiser non pas une fonction globale
sur l’état du monde, mais des fonctions de satisfactions locales propres aux agents ce
qui nous conduit au deuxième type de problème que l’on pourrait appeler
« problème multi-agent au sens strict » :
Définition : Résoudre un problème multi-agent au sens strict, connaissant la
dynamique d’un environnement w, l’opérateur de combinaison d’influences Π, le
nombre n d’agents, leur fonction de perception Pi et de production d’influences Infli,
ainsi que leur satisfaction locale µi, soit A0 l’ensemble des agents auxquels on
s’intéresse (A0 ⊆ A), c’est trouver l’ensemble des Fi, de manière à maximiser M(A0).
M ( A0 ) = ∑ µi ( si (t ))
i ∈A 0
Mais ici aussi, le problème ne peut pas être résolu directement. L’hypothèse de
l’autonomie de l’agent revient à faire en sorte que le comportement d’un agent, c'est-
à-dire la fonction Fi, dépende non seulement de la perception et de l’état interne,
mais aussi de µi(s). C’est en sens que l’on peut dire que les agents sont « des
systèmes dirigés par les buts » (purposive systems) ou « dirigés par leur
satisfaction » (satisfaction driven systems), c'est-à-dire des entités informatiques qui
tentent de réaliser des objectifs.
Page 6
3. Thèmes de recherche en systèmes multi-agents
Les différents thèmes relatifs à l’agent portent d'une part sur son architecture et
son organisation interne et, d'autre part, sur l'ensemble des moyens qu'il met en
œuvre pour assurer sa viabilité et augmenter sa satisfaction. Il s'agit évidemment de
thèmes essentiels car la réalisation d'un système multi-agent passe nécessairement
pas la description de l'architecture des agents et des fonctionnalités dont ils disposent
pour accomplir leurs tâches.
C'est à ce niveau que l'on s'intéresse aux éléments cognitifs dont l'organisation
permet la constitution d'un comportement adapté. Sauf pour des agents réactifs
simples, un agent se trouve à un certain moment dans un certain «état mental» qui
résulte de sa propre histoire, de sa perception du monde et des interactions avec le
monde et les autres agents. Ces états mentaux sont souvent très complexes et font
intervenir un grand nombre d'éléments dont la combinaison explique le
comportement d'un agent «de l'intérieur». Ces éléments cognitifs sont aux états
mentaux des agents ce que les corpuscules élémentaires sont aux corps physiques:
des composants de base dont la combinaison permet d'exprimer l'état mental d'un
agent et dont les lois d'interaction servent à décrire l'évolution future du
comportement d'un agent et de ses états mentaux ultérieurs. Ces éléments cognitifs
régissent l'ensemble des aspects de l'activité intérieure d'un agent: perception et
exécution d'action, croyances, désirs et tendances, intentions, méthodes et plans, etc.
Par exemple, la notion d’intention est définie formellement ainsi : On dit qu’un
agent x a l’intention de faire une action a, ce que l’on note Intention(x,a) si x a
comme but qu’une proposition p portant sur le monde soit vraie — noté But(x,p) —
et que les conditions suivantes sont satisfaites :
Page 7
1. x croit que p appartient aux conséquences de a ; Croire(x, a → p) où α→ψ
signifie: si α est accompli alors ψ sera vrai.
2. x croit que p n’est pas vrai actuellement ; Croire(x,¬p)
3. x croit qu’il est capable de faire a ; Capable(x,a)
C'est à ce niveau aussi que sont décrits les engagements. En s'engageant à
accomplir une action auprès d'un tiers, l'agent contraint l'ensemble des actions qu'il
peut réaliser et donne la possibilité au tiers de planifier son propre comportement en
diminuant son incertitude sur l'ensemble des états futurs. La formalisation de cette
notion passe par des logiques modales temporelles.
Les travaux portant sur les agents rationnels s'inscrivent dans ce thème. Les
tenants principaux de ces recherches sont essentiellement des Américains (Cohen et
Levesque [COH 90a], Shoham [SHO 93]) des Australiens (Georgeff et Rao [RAO
92]) et des Britanniques (Jennings et Wooldridge [WOO 94]). Il s'agit ici de
formaliser l'ensemble des états mentaux d'un agent (essentiellement ses croyances,
ses désirs, ses intentions et ses engagements) à partir d'un formalisme logique
comprenant des aspects temporels et des modalités. Des modèles d'architecture sont
issus de ces travaux. L'école des agents rationnels, malgré l'intérêt des recherches et
l'importance des résultats, tend néanmoins à masquer ce qui fait l'originalité des
systèmes multi-agents, à savoir l'interaction et la coopération. Les travaux portant
sur les agents rationnels donnent ainsi souvent l'impression que les agents sont isolés
les uns des autres, les phénomènes de coopération n'étant pris en compte que de
façon marginale. Cette école a très peu fait d’émule en France, à part D. Sadek
[SAD 91].
3.2. L'interaction
Page 8
Il existe deux formes de communications:
1. Les communications intentionnelles mettent en contact des agents cognitifs
par le biais d'envois de messages. Cette forme de communication est surtout utilisée
par des agents organisés en réseaux.
2. Les communications réactives qui prennent la forme de signaux transmis
entre agents réactifs. On rencontre ces formes de communication surtout dans la
robotique collective mobile et la simulation de sociétés animales, beaucoup moins
dans les réseaux.
Les communications intentionnelles sont surtout étudiées sous l'angle d'actes de
langage. Issue initialement des travaux d'Austin [AUS 62], Searle [SEA 1969] et
Vanderveken [VAN 88] en philosophie du langage, la théorie des actes de langage
décrit l'aspect pragmatique des communications en termes d'états mentaux de
l'émetteur et du destinataire de l'acte. Ces théories ont été reprises et formalisées par
Cohen et Levesque [COH 90b]. Elles sont à la base de nombreux protocoles de
communications entre agents communicants. Dans ce cadre, chaque type de message
caractérise une force illocutoire qui peut être formalisée dans un langage modal en
termes des états mentaux du destinataire et du receveur. Par exemple, un message de
type Requete, qui consiste pour un agent s à demander à un autre agent r
d’accomplir l’action a, peut se formaliser ainsi:
Requete(s, r, a) =def
But(s,φ) ∧ Croire(s,[a→ φ ∧ Serviable(r,s) ∧ Capable(r,a) ∧
Recevoir(r, Requete(s, r, a)) → Intention(r,a)])
et qui peut se paraphraser ainsi : envoyer une demande d’action revient à dire que
l’on a un but et à croire que l’autre agent est serviable, que s’il reçoit la requête il
aura effectivement l’intention d’accomplir cet acte et enfin que si cette action est
accomplie, alors le but sera satisfait.
Agent A Agent B
DB
DA
A veut faire P, B ne veut pas faire P
DemanderFaire(P)
A ne peut pas faire P
B veut bien faire P
RefuserFaire(P)
AR1
AccepterDemande(P)
BR
EchecFaire(P)
impossibleFaire(P)
Succès AR2
NotificationFin(P) achevé(P)
Page 9
grand retentissement dans toute la communauté et de nombreux chercheurs tentent à
la fois de s'intégrer et de dépasser les nombreuses limites de ce projet [COH 95]. Un
comité d’étude, le FIPA, travaille sur la définition d’un système de communication
entre agents cognitifs à partir de la définition d’états mentaux
[http ://www.cselt.stet.it/ufv/leonardo/fipa.htm].
Une critique que l’on peut faire à l’approche KQML est de ne pas rendre compte
des aspects exécutoires. Il s’agit en fait d’une spécification de haut niveau qui
indique quelles sont les conditions que doit remplir une réalisation effective. Au
contraire, un formalisme de type réseau de Petri permet de décrire la réalisation
d’une telle communication tout en conservant des capacités de validation et de
vérification [FER 95]. Dans ce cas, une action de type DemanderFaire peut être
décrite par le réseau de la figure 3.
1
Du fait de la place nécessairement limitée de cet article, on ne traitera ici que des systèmes
dans lesquels les agents sont « bienveillants ». Les problèmes liés à la ruse et aux mensonges
ne seront donc pas pris en compte, mais on pourra se référer à [ROS 94] pour disposer d’un
aperçu général de ce sujet.
Page 10
En ce qui concerne les techniques réactives, celles-ci ont été surtout appliquées à la
coordination de mouvements dans des groupes de robots (cf. section 4.4) [ROB 96].
Page 11
3.4. Réalisation et implémentation d’un système multi-agent
Les questions qui se posent ici portent sur la manière de réaliser des systèmes
multi-agents. Cet aspect prend en compte des techniques de systèmes distribués et
de langages concurrents, tels que les langages d’acteurs.
Architecture en couche
Un système multi-agent conçu autour d’agents communicants possède une
architecture caractéristique qui est illustrée figure 5.
micro-noyau
"CORBA"
micro-Noyau micro-Noyau micro-Noyau
"natif" "natif" "natif" ORB
+ Objets
CORBA
Langage de programmation et communications de bas Autres langages de
niveau: Java programmation
Page 12
Les architectures d’agents à base de tableaux noirs
L'architecture de tableau noir a été l'une des plus utilisée dans les systèmes
multi-agents cognitifs symboliques et elle a donné lieu à une abondante littérature.
Originellement développée dans le cadre de l'intelligence artificielle traditionnelle
(c'est-à-dire, du point de vue de l'IAD, pour réaliser des systèmes mono-agents),
l'architecture de tableau noir s'est rapidement imposée en IAD comme une
architecture suffisamment souple et puissante pour pouvoir implémenter les
mécanismes de raisonnement et de calculs intervenant à l'intérieur des agents,
notamment avec le système DVMT [LES 83].
Le modèle de tableau noir est fondé sur un découpage en modules indépendants
qui ne communiquent directement aucune information, mais qui interagissent
indirectement en partageant des informations. Ces modules, appelés sources de
connaissance ou KS (pour Knowledge Sources), travaillent sur un espace qui
comprend tous les éléments nécessaires à la résolution d'un problème. L'architecture
d'un système à base de tableau noir comprend trois sous-systèmes : 1) Les sources
de connaissance. 2) La base partagée (le «tableau» proprement dit) qui comprend les
états partiels d'un problème en cours de résolution, les hypothèses et les résultats
intermédiaires et toutes les informations que s'échangent les KS. 3) Un dispositif de
contrôle qui gère les conflits d'accès entre les KS, ces derniers intervenant de
manière «opportuniste» c'est-à-dire sans être déclenchés effectivement par un
système centralisé de contrôle. C'est cette partie qui a connu le plus de modifications
au cours de l'évolution de ces architectures. On pourra se reporter à [ENG 88] pour
un panorama général sur les architectures à base de tableaux noirs.
Si dans un premier temps, les systèmes à base de tableau noirs furent considérés
comme des systèmes d'IAD, chaque KS pouvant être perçu comme un agent qui
interagit avec les autres KS, il n'en est plus de même aujourd'hui. Du fait de leur
mécanisme de contrôle très centralisé et de leur manque de mémoire locale et donc
de localité des informations, ces systèmes sont maintenant envisagés comme des
architectures pratiques pour la réalisation de systèmes «intelligents» et, en
particulier, pour implémenter la structure interne d'agents cognitifs symboliques.
Nombre de systèmes multi-agents ont été implémentés de cette manière aux Etats-
Unis [LES 83] et en France [CHE 93] [CAM 94].
L'architecture de tableau noir présente de nombreux avantages dont, en tout
premier lieu, une remarquable souplesse pour décrire des modules et articuler leur
fonctionnement. Son principal inconvénient provient de sa relative inefficacité, due
à la très grande expressivité de son contrôle. De ce fait, ce type d'architecture s'avère
particulièrement utile lors de la phase de prototypage de la réalisation de systèmes
ou lorsque les temps de réponses ne sont pas trop contraints. Néanmoins, des
versions de BB1 [HAY 85] ont montré que même dans des cas où il était nécessaire
d'avoir des temps de réponses en temps réel, la gestion fine du contrôle pouvait
accélérer de manière drastique son comportement en prenant les bonnes décisions et
en choisissant les tâches importantes et urgentes au bon moment [HAY 93].
Architectures multi-agents et acteurs
Dans son article initial [HEW 1977], Hewitt développait l’idée qu’il était
possible de repenser la notion de structure de contrôle des langages traditionnels en
Page 13
les reconsidérant comme des schémas (patterns) de communications entre entités
autonomes appelées acteurs. Depuis, les langages d'acteurs, en particulier sous
l'influence de Agha [AGH 1986], de Tokoro [TOK 93] et de Yonezawa [YON 90]
ont surtout été étudiés comme des modèles d'exécution pour la programmation par
objets concurrents. Mais quelques travaux ont voulu rester dans les idées initiales
que prônaient Hewitt et qu'il confirma avec ses notions de «sémantique des systèmes
ouverts» [HEW 91] P. Carle [CAR 92], S. Giroux [GIR 93] et J. Ferber [FER 91],
tout en estimant que les langages d'acteurs sont effectivement de très bons outils
pour l'implémentation de calculs parallèles, considèrent néanmoins qu'ils présentent
des caractéristiques tellement originales qu'ils modifient par leur présence la notion
même d'architecture multi-agents en envisageant les agents et les systèmes multi-
agents comme des extensions naturelles de la notion d'acteur.
La communication entre acteurs s'effectue par envois de messages asynchrones,
les réponses étant renvoyées à un acteur, appelé «customer» chez Hewitt, qui se
charge de traiter la réponse et qui représente la continuation locale du calcul. De
nombreux langages d'acteurs ont été proposés. Les plus célèbres et actuellement
opérationnels sont ABCL [YON 1990], MERING IV [FER 91] et ACTALK [BRI 89].
Ce dernier, qui est conçu comme une extension de SMALLTALK, est à la base d'un
grand nombre de plates-formes multi-agents, le premier en date ayant été MAGES III
[BOU 90], l’un des plus récents étant DINA [GUE 96].
Autre exemple, celui de L. Gasser dont le système MACE [GAS 87], fortement
influencé par les idées de Hewitt, a lui même inspiré la plupart des plates-formes de
développement ultérieures. Le rapport entre acteurs et agents est ainsi des plus
féconds et nul doute que l'avenir verra d'autres travaux tendant à montrer les liens
très étroits qui unissent ces deux concepts.
Environnements de développement
De nombreux environnements de développements de SMA ont été proposés par
des équipes universitaires. Citons en particulier MICE par Ed Durfee de l'université
du Michigan [DUR 89], MAGES [BOU 90], RATMAN [BUR 91] et plus récemment
DESIRE [BRA 96].
Dans le domaine des télécoms, la société GENERAL MAGIC, en collaboration avec
de nombreuses sociétés de télécommunications, et en particulier FRANCE TELECOM,
a développé un système de développement de systèmes multi-agent fonctionnant sur
réseau, TELESCRIPT [LEO 96]. Bien que dans ce système les notions d'agents soient
particulièrement frustres (les agents ne sont ici que de simples processus) il intègre
néanmoins un certain nombre de caractéristiques qui permettent d'ores et déjà
d'écrire des (petites) applications distribuées disposant d'un minimum de capacités
multi-agents. Enfin, le langage JAVA de Sun commence à prendre un essor
considérable et certains le voient comme un challenger particulièrement prometteur
de TELESCRIPT. Bien qu’il dispose de moins de richesses quant à la migration
d’objets et à la sécurité de fonctionnement, plusieurs projets commencent à
promouvoir JAVA comme langage de développement d’agents communicants sur
INTERNET [SEY 96] [LAN 97].
S'il n'existe pas d'ouvrage ni d'article décrivant en détail les problèmes et les
techniques d'implémentation des systèmes multi-agents, on retrouve disséminé ici et
là, et surtout dans les travaux de thèse, un certain nombre d'informations quant à la
Page 14
réalisation effective d'un système multi-agent, qu'il s'agisse de systèmes complets ou
plus simplement de plates-formes de développement. Par exemple [BOU 1992]
décrit une architecture de SMA cognitif en SMALLTALK. On trouvera aussi dans
[JEN 94] une bonne description des problèmes d'implémentation de systèmes multi-
agents industriels, dans [FER 95] une présentation de différentes architectures
d’agent et de SMA et dans [OHA 96] un état de l’art d’un certain nombre de plates-
formes de développement de SMA. Enfin, le livre de J. Müller décrit en détail la
réalisation du système INTERRAP, architecture générale d’agent et de système multi-
agent cognitif [MUL 96].
Page 15
distribution d'énergie, pour réaliser un logiciel de contrôle de réseaux électriques
Espagnols. Chaque sous-réseau est représenté par un agent qui collabore et négocie
avec les autres agents afin de trouver une solution à ses problèmes locaux [BUR 94].
Réseau de communications
Module de
communications Gestionnaire
d’accointances
(modèles de
soi et des
autres)
Module de
planification
et de
coordination
Tête
Autres agents
Moniteur
un agent ARCHON
Tâches correspondant
à des modules logiciels
pré-existants
Corps
Page 16
contrats sont établis entre clients et fournisseurs, et tout cela de manière automatique
ou en tous cas avec une intervention humaine réduite.
Un exemple simple, mais néanmoins révélateur, en est donné par le scénario de
l’agence de voyage. Dans cet exemple, un service intermédiaire, l’agence de voyage,
combine différents services (réservations de trains, d’avions et de chambres d’hôtel)
et les propose à des clients électroniques eux aussi (le client peut être un agent
assistant mandaté par l’utilisateur par exemple). Lorsqu'un client établit une
transaction commerciale avec l’utilisateur, un contrat est établit qui détermine les
engagements de chacun. Par exemple, si l’horaire d’un avion est modifié, ou si les
prix viennent à changer, l’agence de voyage peut gérer ces modifications en tenant
compte de conditions établies par le client : dates du voyage, prix maximum, etc. De
plus, l’agence de voyage doit tenir compte de contraintes dépendant des services
qu’elle propose (s’il y a deux vols au cours d’un trajet, il faut vérifier que le second
n’a lieu qu’après le premier). C’est ce type de scénario qui est à la base du
développement des travaux de normalisation assurés par la FIPA (cf. section 3.2).
Ce scénario, qui est à la base d’un vaste champ d’applications dans le domaine
des télécommunications nécessite l’établissement d’un langage de communication et
d’interaction normalisé, un langage de description de contenu qui soit à la fois
souple et évolué, une possibilité de valider des comportements et des protocoles
d’interaction, une plate-forme de développement d’applications et d’exécution.
Un certain nombre de projets de ce type sont développés dans la plupart des
grandes compagnies de télécommunications. Par exemple, le projet Pyramide de
France Telecom constitue une expérimentation grandeur nature de l'intégration des
technologies multi-agent pour la réalisation de services de médiations et
d'intégrations dans un univers d'ordinateurs éventuellement nomades [LEO 96].
Outre ces projets, on peut parler de celui de CommerceNet, développé à Stanford en
collaboration avec un ensemble d’industriels importants de la région. CommerceNet
est une infrastructure ouverte pour le développement du marché électronique. Ce
projet a pour objectif affiché de « révolutionner les contacts entre clients,
fournisseurs et développeurs en rendant leurs interactions aussi efficaces que s’il
s’agissait d’interactions entre membres d’un même département ». Tout en étant
sensiblement différent, le projet Bayou de Xerox Parc se situe dans cette mouvance.
Son objectif est de développer une plate-forme de développement et d’exécution
d’applications permettant à des outils de communications mobiles (ordinateurs
portables, PDA (Personal Digital Assistant) de type Newton, etc.), qui sont rarement
« en ligne », d’avoir accès à des informations collectives relativement cohérentes.
Ce type de projet montre bien que la métaphore de l’espace électronique est féconde
et que des organismes de recherche majeurs s’intéressent à cette question.
L’expertise multiple.
La résolution de problèmes au sens large concerne en fait toutes les situations
dans lesquelles des agents logiciels accomplissent des tâches utiles aux êtres
humains. Cette catégorie s'oppose aux applications de robotique distribuée en ce
sens que les agents sont purement informatiques et n'ont pas de structure physique
réelle.
Toutes les applications relevant de la résolution distribuée de problèmes
supposent qu'il est possible d'effectuer une tâche complexe en faisant appel à un
Page 17
ensemble de spécialistes disposant de compétences complémentaires et donc,
lorsque c'est l'expertise ou le mode de résolution qui sont distribués, sans que le
domaine le soit. Lorsque l'expertise est en effet si vaste et complexe qu'elle ne peut
appartenir qu'à une seule personne, il faut faire appel à plusieurs spécialistes qui
doivent travailler ensemble à la poursuite d'un objectif commun.
Ces spécialistes coopèrent entre eux pour résoudre un problème général, tel
qu'un diagnostic médical, la conception d'un produit industriel [IFF 92], l'acquisition
de connaissances, le diagnostic de réseaux [JEN 95], la reconnaissance de formes
[DEM 94], la compréhension de langage naturel [SAB 90], le système de contrôle
et de surveillance d'un réseau de télécommunications [WEI 90], ou la gestion de
processus industriels [PAR 93], etc.
Résolution par coordination
Les agents peuvent aussi servir d'une manière beaucoup plus élémentaire à
résoudre des problèmes au sens classique du terme, c'est-à-dire à tenter de trouver
une solution à quelque chose dont l'énoncé est bien posé et dont l'ensemble des
informations est entièrement disponible. Par exemple, trouver une affectation de
tâches pour une machine outil ou définir un emploi du temps pour un collège,
donner la suite des actions à accomplir pour sortir d'un labyrinthe ou pour faire partir
une fusée, assembler des cubes ou des composants mécaniques, résoudre un casse-
tête ou démontrer un théorème.
Dans ce cas, le domaine n'est pas distribué et l'expertise ne l'est pas non plus. Et
pourtant l'approche multi-agent peut apporter un mode de raisonnement nouveau en
décomposant le problème de manière totalement différente. Par exemple, s'il s'agit
d'empiler des cubes ou d'assembler des pièces mécaniques, on peut considérer que
les cubes ou les pièces sont des agents qui doivent satisfaire des buts précis donnés
par le plan imposé par le concepteur et que les liaisons sont des contraintes que les
agents doivent respecter. C'est exactement le type de problème que sait résoudre de
manière très efficace l'éco-résolution [FER 95]. Dans cette technique, un agent peut
être soit satisfait, en train de fuir, en recherche de satisfaction ou en recherche de
fuite.
Utilisez Word 6.0c (ou ultŽrieur)
Page 18
les lettres a et g, la valeur ‘x‘ indiquant une indifférence. Une marque '–' indique
qu'aucune action n'est effectuée en sortie.
Cette technique a été appliquée à un grand nombre de domaines jouets
(planification de cubes, taquin, tours de Hanoï), mais a aussi inspiré plusieurs
domaines plus généraux: planification temps réel d'ateliers flexibles, robotique
cellulaire et satisfaction de contraintes.
En effet, s'il s'agit de résoudre un problème à base de contraintes, on peut
considérer, comme l'a fait K. Ghedira, [GHE 93] que les tâches et les ressources sont
des agents qui tentent de satisfaire leurs objectifs propres: une tâche désire être
placée et une ressource souhaite être utilisée au mieux, sans avoir trop ni trop peu de
travail. En adoptant une technique semblable à celle de l'éco-résolution et en lui
associant le principe du recuit simulé, K. Ghedira a montré qu’il était capable de
résoudre des problèmes de contraintes très rapidement tout en limitant les
modifications lors d'un changement de donnée. L'idée générale consiste à considérer
les variables et les contraintes comme des agents qui cherchent à trouver un état de
satisfaction. Lorsqu'on demande à une variable de changer de valeur, celle-ci choisit
aléatoirement une valeur de son domaine de définition et demande à ses contraintes
leur opinion, c'est-à-dire si ces valeurs les satisfont ou non. A partir de toutes ces
réponses elle décide d'accepter ou non cette valeur en fonction d'un critère de choix
dépendant d'un mécanisme fondé sur la notion de recuit simulé: plus une variable a
déjà effectué des choix, moins elle aura tendance à accepter une valeur qui satisfait
un moins grand nombre de contraintes. Elle restera de plus en plus «figée» sur ses
choix antérieurs, comme si elle se «gelait» avec le temps.
L'intérêt de cette méthode est de pouvoir facilement se généraliser à des
situations de satisfactions partielles, c'est-à-dire de problèmes pour lesquels il
n'existe aucune solution globale, et de trouver rapidement une solution. Enfin, des
modifications légères de l'ensemble des contraintes ne remettent pas en cause
l'ensemble des situations déjà trouvées. Les insatisfactions se propageront de proche
en proche aux variables et aux autres contraintes, et le système privilégiera donc les
solutions proches des solutions déjà trouvées. Une autre approche fondée sur une
conception distribuée de la satisfaction de problèmes a été proposée dans [LIU 93],
mais elle ne semble pas offrir pour l'instant d'aussi bons résultats que celle de
K.Ghedira.
Méthodologie multi-agent
Concevoir de tels systèmes relève actuellement d’un art et peu de travaux ont été
réalisés dans le sens de la définition d’une méthodologie multi-agent. Citons
néanmoins la méthode d’analyse Cassiopée, destinée à trouver la bonne organisation
multi-agent en fonction des contraintes structurelles et fonctionnelles issues du
problème à résoudre [CAR 95] [COL 96].
Page 19
font un grand usage des simulations pour essayer d'expliquer et de prévoir les
phénomènes naturels. Pour cela, les chercheurs de ces différentes disciplines
construisent des modèles de la réalité, puis testent leur validité en les faisant
«tourner» sur des ordinateurs. Généralement, ces modèles sont donnés sous la forme
de relations mathématiques entre des variables représentant des grandeurs physiques
mesurables dans la réalité. Les modèles les plus utilisés sont les équations
différentielles, les matrices de transitions, etc. Elles reposent sur la définition d'une
relation de cause à effet entre des variables d'entrées et des variables de sorties. Bien
qu'ayant permis de nombreuses avancées sur le plan théorique et pratique [PAV 94],
ces modèles et les techniques de simulation numérique associées, présentent
néanmoins certains problèmes (étanchéité du niveau d’analyse, complexité et faible
réalisme de certains paramètres, difficulté à modéliser l’action, carence qualitative,
etc.).
Les systèmes multi-agents apportent une solution nouvelle au concept même de
modèle et de simulation dans les sciences de l'environnement, en proposant de
représenter directement les individus, leurs comportements et leurs interactions sous
la forme d’entités informatiques disposant de leur propre autonomie. Par exemple,
dans un modèle multi-agent de population, on représentera directement les individus
sous la forme d'agents, et la quantité d'individus d'une espèce donnée sera le résultat
des confrontations (coopération, lutte, reproduction) des comportements de tous les
individus représentés dans le système.
L'intérêt de ces simulations est de pouvoir considérer aussi bien des paramètres
quantitatifs (c'est-à-dire des paramètres numériques) que qualitatifs (des
comportements individuels faisant éventuellement appel à des raisonnements
stratégiques). Ce sont des constructions de «micro-mondes artificiels» dont il est
possible de contrôler toutes les caractéristiques et de reproduire des séries
d'expérimentations comme s'il s'agissait de situations de laboratoire. On se trouve
donc en présence d'une modélisation analogique, semblable aux maquettes de format
réduit utilisées en aéronautique ou en construction navale, la différence essentielle
provenant du fait que le modèle réduit est exprimé sous la forme d'une entité
informatique et non d'une structure physique. Ici, il ne s’agit donc pas de résoudre
un problème au sens où nous l’avions défini plus haut mais d’étudier la dynamique
d’un système multi-agent et de comparer cette dynamique avec celle d’un système
réel.
Les systèmes multi-agents présentent l’avantage de pouvoir modéliser des
situations complexes dont les structures globales émergent des interactions entre
individus, c'est-à-dire de faire surgir des structures du niveau macro à partir de
modélisations du niveau micro, brisant ainsi la barrière des niveaux si criante dans
les modélisation classiques. De nombreuses modélisations utilisant les systèmes
multi-agents ont été proposés. Citons notamment MANTA [DRO 92], système de
simulation de colonies de fourmis, SIMDELTA, pour la simulation d’éco-systèmes
[BOU 93], SIMPOP pour la simulation de dynamiques inter-urbaines [BUR 94] et
EOS pour la simulation de peuplements préhistoriques [DOR 94].
Page 20
4.3. La robotique distribuée
La robotique distribuée porte sur la réalisation non pas d'un seul robot, mais d'un
ensemble de robots qui coopèrent pour accomplir une mission. A la différence du
domaine d'application précédent (la construction de mondes hypothétiques) la
robotique distribuée utilise des agents concrets qui se déplacent dans un
environnement réel. Le domaine de la robotique distribuée recouvre en fait trois
ensembles de techniques bien distinctes : la robotique cellulaire, la productique
distribuée et la robotique mobile:
1. La robotique «cellulaire» s'intéresse à la constitution modulaire de robots.
Dans ce cadre, un robot sera considéré comme un système multi-agent et chacun de
ses composants sera regardé comme un agent. La réalisation d'un mouvement sera
alors le résultat de la coordination d'un ensemble d'agents. Des techniques
semblables à celle que nous avons vu avec l'éco-résolution (voir plus haut)
permettent d'accomplir des gestes complexes avec un minimum de calcul. A partir
d'idées semblables les recherches menées parallèlement par l'équipe de J. Perram au
Danemark [OVE 94] et de D. Duhaut en France [REG 95], ont produit des modèles
de déplacement de bras manipulateur dans lesquels chaque élément du bras est
considéré comme un agent, les articulations décrivant des contraintes pour
l'ensemble des mouvements acceptables. L'agent de tête cherche à satisfaire le but
qui lui est donné, par exemple souder deux pièces entre elles ou prendre un objet sur
une table. S'il peut le faire lui-même, il effectue le déplacement, et le système
s'arrête. Sinon, il entraîne l'agent qui le suit en lui donnant des buts pour que l'agent
de tête se rapproche de son propre objectif. Le processus se répète récursivement,
chaque agent cherchant à satisfaire les buts qu'on lui propose en transmettent ses
desiderata à l'agent suivant. Les calculs s'expriment simplement et s'exécutent très
rapidement. De plus, à l'encontre des techniques classiques utilisées en robotique,
l'augmentation du nombre de degrés de libertés (c'est à dire du nombre
d'articulations) améliore la vitesse de résolution du problème. Ce type de modèle est
suffisamment souple pour être effectivement utilisé dans des environnements
industriels. Le système de J. Perram, par exemple, est utilisé pour programmer des
robots soudeurs au chantier naval d'Odense.
2. La productique distribuée. Construire une cellule autonome de production
est un exemple particulièrement intéressant pour tester des hypothèses concernant
les différentes manières de concevoir des systèmes multi-agents. Le problème peut
être défini ainsi: supposons que l'on doive construire des produits manufacturés,
A1,..,Ak à partir d'un ensemble de robots machines M1,..,Mn et de matière première,
P1,..,Pj, et que l'on dispose d'un ensemble de robots transporteurs T1,..,Tm pour
porter les produits intermédiaires d'une machine à une autre. Sachant que la matière
première arrive à un bout de l'atelier de production, et que les produits manufacturés
partent d'un autre bout, comment organiser cette unité de production, de manière
qu'elle puisse réagir à toute modification de la demande. Même si ce problème
ressemble beaucoup à un problème de recherche opérationnelle, il en diffère
néanmoins par le fait que l'on ne demande pas seulement de prévoir la meilleure
manière d'arranger les différentes unités de l'atelier, mais aussi de définir les
programmes de chacune de ces unités de façon qu'elles puissent travailler ensemble
Page 21
et donc coordonnent leur travail en réagissant à des pannes éventuelles tout en
pénalisant le moins possible l'ensemble de la production.
Une réalisation particulièrement intéressante a été effectuée par C. Sohier et
P. Bourdet de l'ENS-Cachan. Ils ont développé un planificateur de tâches en temps
réel pour atelier flexible cellulaire fondé sur l'approche multi-agent. Chaque élément
de l'atelier (tapis roulant, robot manutentionnaire, conteneurs, fraiseuses, etc.) est
représenté sous la forme d'un agent dont le comportement est tiré des principes de
l'éco-résolution, dont nous avons parlé plus haut. Du fait de la nature hautement
adaptative du système, il est possible de modifier les demandes ou les ressources en
temps réel: le système se réorganise en temps réel pour que chacun des agents soit
satisfait [SOH 93].
3. La robotique mobile fait intervenir au moins deux robots qui doivent
coordonner leurs déplacements et coopérer à l'accomplissement de tâches telles que
nettoyer le plancher, surveiller des bâtiments, intervenir pour secourir des personnes,
réparer des canalisations ou explorer des espaces lointains ou dangereux. Pour
l'instant tous ces projets sont plutôt à l'état de recherches, mais de nombreuses
contributions ont été avancées dans ce domaine, notamment par M. Mataric
[MAT 94], L. Steels [STE 94] et J.-L. Deneubourg [BEC 94].
La coordination de véhicules, qu'il s'agisse d'avions, de voitures ou de bateaux,
fait aussi partie de ce domaine d'application. Plusieurs véhicules, en se déplaçant,
risquent de se gêner mutuellement. Par exemple, deux avions qui évoluent dans des
secteurs voisins, ou deux voitures qui sont sur la même route doivent faire attention
de ne pas se rencontrer. Les risques de collision sont d'autant plus importants que les
véhicules sont proches les uns des autres et que leurs trajectoires les amènent à se
croiser. Il s'agit alors de coordonner leurs mouvements de manière à ce que chacun
d'entre eux puisse aller là où il désire aller sans entrer en collision. Dans une variante
de ce problème, on demande à certains véhicules d'avancer en formation à la
manière des oies sauvages ou des escadrilles aériennes. Le problème est alors plus
complexe puisqu'il s'agit de faire évoluer ensemble des véhicules de manière que la
structure de la formation reste constante.
Les premières tentatives de résolution ont été effectuées dans le domaine du
contrôle de trafic aérien et mirent en œuvre des agents cognitifs [CAM. 83]
[CHA 89] mais avec des résultats très limités. Les approches plus actuelles font
usage d'agents réactifs, comme nous allons le voir ci-dessous.
Les techniques élémentaires de coordination collective
Le premier à s'être intéressé à la coordination collective de déplacement est
Craig Reynolds. En 1987, il produisit un modèle de meute fondé sur l’usage de
comportements réactifs [REY 87]. Le comportement agrégatif de l’ensemble de ses
agents qu'il appelle «boids» (prononcer «boïd») est un phénomène émergent qui
résulte de leur interaction, chaque boid se contentant de suivre les règles
comportementales suivantes :
1. Maintenir une distance minimale par rapport aux autres objets dans
l'environnement et en particulier les autres boids.
2. Adapter sa vitesse à la moyenne de celle de ses voisins.
3. Aller vers le centre de gravité des boids voisins.
Page 22
Ces règles sont suffisantes pour que les boids adoptent un comportement
semblable à ceux d'un vol d'oiseaux migrateurs. A l’encontre des escadrilles
aériennes, qui possèdent un chef, les boids évoluent sans leader et sans contrôle
global. Parfois la meute se divise et produit deux groupes qui se meuvent
indépendamment l'un de l'autre. Parfois aussi deux sous-groupes se réunissent pour
produire un nouveau groupe. Ces évolutions découlent simplement de la définition
locale du comportement de ces boids.
Robots collectifs
Les agents réactifs peuvent faire preuve d'une grande souplesse dans
l'élaboration et montrer des comportements collectifs émergents relativement
spectaculaires à partir de principes très simples. En reprenant les travaux de C.
Reynolds et en les adaptant à des robots réels, M. Mataric a constitué de véritables
meutes robotiques [MAT 94]. Chaque robot dispose d'une batterie de
comportements de haut niveau qu'il sélectionne en fonction de la situation dans
laquelle il se trouve : évitement de collision, filature d'un autre robot, dispersion et
répartition sur un territoire, agrégation, guidage sur un but. Ces comportements font
appel à des primitives de bas niveau tels que la perception par infrarouge d'un
obstacle ou le calcul d'une distance par sonar. Le comportement de meute y est
donné comme la somme pondérée des comportements d'évitement, de filature,
d'agrégation et de dispersion. D'après M. Mataric, le comportement de meute est très
difficile à implémenter lorsqu'il s'agit de véritables robots, à cause de la dynamique
propre de leur mécanique ainsi qu'aux limitations des capteurs. Il faut alors jouer sur
les paramètres de pondération et faire attention que les robots ne cherchent pas trop
à s'éloigner ou, au contraire, en viennent à former des groupes trop compacts qui
gêneraient leurs évolutions. Néanmoins, et à condition de bien ajuster ces
paramètres, il est possible de faire émerger de tels comportements, que les agents
soient simulés ou réels. On peut cependant se poser la question de savoir si les
problèmes viennent effectivement des capteurs ou bien s'ils proviennent d'une
analyse encore trop élémentaire des comportements.
Les bancs de poissons
En effet, si ces approches s'inspirent de la nature, elles n'ont parfois qu'un
lointain rapport avec la manière dont les animaux se comportent effectivement.
Comment ces animaux font-ils pour évoluer ainsi en groupe et accomplir parfois des
figures fort complexes? Comment synchronisent-ils leurs actions sans leader ?
C'est pour répondre à ces questions qu'un projet de recherche mettant en contact
des chercheurs de l'Orstom, J.-P. Treuil et P. Fréon, et l'équipe MIRIAD du LAFORIA,
a développé un programme de simulation de bancs de poissons, ICHTYUS, montrant
comment il est possible de comprendre leur constitution et leur évolution à partir de
considérations entièrement distribuées [MES 94]. Un banc de poisson est une
agrégation spatiale d'un certain nombre d'individus fondée sur une approche
égalitaire, tous les membres ayant la même influence. Ces bancs ont des
comportements collectifs particulièrement intéressants, car leurs mouvements
semblent parfaitement synchronisés comme s'ils répondaient tous au même signal ou
s'il existait un organe de commande.
Page 23
L'approche distribuée permet de rendre compte de ce phénomène. Il suffit de
considérer que chaque poisson est un agent dont la direction est fonction de
l'influence de l'ensemble de ses voisins, c'est-à-dire des poissons se trouvant à
proximité, et que le comportement collectif émerge de ces interactions. Chaque
poisson calcule la direction qu'il doit prendre en fonction de sa propre direction
antérieure et des directions et des positions des différents poissons qui l'entourent, en
effectuant un calcul de somme vectorielle pondérée par la distance, suivant
l’équation :
! ni ! ni ! !
Vi (t ) = Norm[b[c ∑ α ij Rij (t − 1) + (1 − c)∑ β ijVij (t − 1)] + (1 − b) B(t )]
j =1 j =1
Page 24
! ! !
U ( p) = U attr ( p) + U repuls ( p)
Deux agents qui suivent des routes qui se croisent cherchent à s'éviter et donc à
fuir. Pour s’éviter mutuellement, chaque agent s’éloigne de son voisin en incurvant
sa trajectoire. Bien que ces réactions soient logiques du point de vue de chaque
agent, elles conduisent à des modifications de trajectoires inadéquates. Cela est dû
au fait que, en utilisant simplement des techniques fondées sur le gradient de
potentiels, les agents n'arrivent pas à tenir compte du déplacement des autres agents,
la prise de décision locale ne permettant pas de résoudre le problème de manière
globale.
(a) (b)
Figure 9. Une conséquence malheureuse de l'utilisation de champs de
potentiels, les agents n’arrivant jamais à leur destination (a), et sa résolution
par des techniques d’évitement (b)
Il est cependant possible de résoudre ce problème en introduisant une nouvelle
force, une force de glissement qui s'applique perpendiculairement au champ de
potentiel [ZEG 93a]. Des situations intéressantes émergent de ce type de
coordination d'actions. Si les conditions initiales sont telles que plusieurs agents
doivent s'éviter simultanément, alors ce mécanisme d'évitement engendre des
structures dynamiques de tourbillon, comme si les agents tournaient autour d'un
rond-point (figure 9). K. Zeghal a implémenté cette technique dans le système
CRAASH qui simule l'évolution d'un ensemble d'avions disposant ou non de son
système d'anti-collision [ZEG 93b]. Il a ainsi été montré que plus d'une cinquantaine
appareils civils (Airbus, Boing, etc.) sont capables d'évoluer dans une même zone
sans entrer en collision.
5. Conclusion
Page 25
J’ai proposé dans [FER 95] d’utiliser un terme plus général que SMA pour
décrire l’ensemble des recherches et réalisations mettant en valeur la
décentralisation des calculs, et les nécessaires techniques de coopération qui en
découlent. Il s’agit de la « kénétique », du grec koïnon, ce qui est commun. La
« kénétique » (sous ce vocable ou sous un autre) sera aux années 2000 ce qu’a été la
cybernétique aux années 50 et 60 : un creuset fantastique d’idées, de théories et de
techniques qui se traduisent encore aujourd’hui sous le terme de théorie de
l’information, théorie du contrôle et analyse systémique en fonction du domaine
d’application.
C’est devant un enjeu considérable que se situe la kénétique, et donc les
systèmes multi-agents. Elle est en train de développer des formalismes et des
techniques qui lui font dépasser le stade pionnier dans lequel elle s’est située
pendant de longues années. Bien qu’étant encore au début de ses possibilités, il ne
fait nul doute que les prochaines années apporteront leur lot de théories, de
méthodologies, d’environnement de développements et d’applications réelles qui la
feront accéder à l’une des places majeures de l’informatique. Gageons que, de même
que les systèmes à objets ont envahi l’ensemble du champ informatique, la
technologie multi-agents, pour l’instant encore très jeune, se répandra naturellement
dans les applications dans les années à venir au fur et à mesure de la prise de
conscience de la difficulté de réaliser des systèmes logiciels complexes et ouverts.
Le génie logiciel deviendra alors « multi-agent » comme il est aujourd’hui « objet ».
6. Bibliographie
[AGH 86] AGHA G. Actors: A Model of Concurrent Computation for Distributed Systems.
MIT Press, 1986.
[ALA] ALAMI R., ROBERT F., INGRAND F. et SUZUKI S. A paradigm for plan-merging and its
use for multi-robot cooperation. IEEE Int. Conf. on Systems, Mans and Cybernetics, San
Antonio (USA), 1995.
[AUS 62] AUSTIN J. L. How to Do Things With Words. Clarendon Press, 1962.
[BEC 94] BECKERS R., HOLLAND O. E. et DENEUBOURG J.-L.. From Local Actions to Global
Tasks: Stigmergy and Collective Robotics. Artificial Life IV, R. Brooks et P. Maes (Ed.),
MIT Press, Boston, 1994.
[BOU 90] BOURON T., FERBER J., SAMUEL F. MAGES : a Multi-Agent Testbed for
Heterogeneous Agents, In Decentralized AI II, Y. Demazeau et J.-P. Müller (Eds), North-
Holland, 1990.
[BOU 92] BOURON T. Structures de communication et d'organisation pour la coopération
dans un univers multi-agents. Thèse d'université, Université Paris 6, 1992.
[BOU 93] BOUSQUET F., CAMBIER C., MULLON C., MORAND P., QUENSIERE J, et PAVÉ A.,
Simulating the Interaction between a Society and a Renewable Resource, Journal of
Biological Systems, vol. 1, pp. 199-214, 1993.
[BRA 96] BRAZIER F., DUNIN-KEPLICZ B., JENNINGS N., TREUR J. DESIRE : modelling multi-
agent systems in a compositional formal framework, Int Journ. of Cooperative
Information Systems, M. Huhns, M. Singh (eds), special issue on Formal Methods, 1996.
Page 26
[BRI 89] BRIOT J.-P. Actalk: a Testbed for Classifying and Designing Actor Languages in the
Smalltalk-80 Environment. Proc. of ECOOP '89, 109-129, Nottingham, UK, 1989.
[BUR 94] BURA S., PUMAIN D., SANDERS L., GUÉRIN-PACE F., et MATHIAN H., Multi-Agent
Systems and the Dynamics of a Settlement System, Geographical Analysis, 1994.
[BUR 91] BÜRCKERT H.-J., MÜLLER J. RATMAN: Rational Agents Testbed for Multi-Agent
Networks. In Decentralized AI 2, Demazeau Y. et Müller J.-P. (Ed.), Elsevier, 1991.
[BUR 94] BURG B., ARLABOSSE F. ARCHON: une plateforme industrielle pour l'intelligence
artificielle distribuée. Deuxièmes journées francophones sur l’IAD et les SMA
(JFIADSMA'94), Demazeau Y. et Pesty S. (Ed.), IMAG, Voiron, 1994.
[CAM 94] CAMBIER C. SIMDELTA: un système multi-agent pour simuler la pêche sur le
Delta Central du Niger. Thèse d'université, Paris 6, 1994.
[CAM 83] CAMMARATA S., MCARTHUR D. et STEEB R. Strategies of Cooperation in
Distributed Problem Solving. Proc. of the 1983 IJCAI Conference, 1983.
[CAR 92] CARLE P. Un Langage d'acteur pour l'intelligence artificielle distribuée intégrant
objets et agents par réflexivité compilatoire. Thèse d'université, Paris 6, 1992.
[CAR 95] CARLE P., COLLINOT A. et ZEGHAL K. Cassiopeia: a Method for Designing
Computational Organizations. DIMAS'95, International Workshop on Decentralized
Intelligent and Multi-Agent Systems, Krakovie, Pologne, 1995.
[CHA 89] CHAIB-DRAA B. Contribution à la résolution distribuée de problème: approche
basée sur les comportements intentionnels des agents. Thèse d'université, Université de
Valenciennes, 1989.
[CHE 93] CHEVRIER V. Etude et mise en œuvre du paradigme multi-agent: de Atome à
Gtmas. Thèse d'Université, Nancy I, 1993.
[COH 90a] COHEN P. R., LEVESQUE H. J. Intention is Choice with Commitment. Artificial
Intelligence 42, pp. 213-261, 1990.
[COH 90b] COHEN P. R, LEVESQUE H. J. Rational Interaction as the Basis for
Communication. In Intentions in Communications, Cohen P. R., Morgan J. et Pollack M.
E. (Ed.), 508. MIT Press, 1990.
[COH 95] COHEN P. R., LEVESQUE H. J. Communicative Actions for Artificial Intelligence.
First International Conference on Multi-Agent Systems (ICMAS'95), Lesser V. (Ed.),
MIT Press, San Francisco, 1995.
[COL 96] COLLINOT A., DROGOUL A. Agent Oriented Design for a Soccer Robot Team.
International Conference on Multi-Agent Systems (ICMAS'96), Tokoro M. (Ed.), AAAI
Press, 41-47, Kyoto, 1996.
[DEC 92] DECKER K., DURFEE E. Generalizing the Partial Global Planning Algorithm.
International Journal on Intelligent Cooperative Information Systems ,319-346, 1992.
[DEM 94] DEMAZEAU Y., BOISSIER O. et KONING J.-L. Using Interaction Protocols to Control
Vision Systems. IEEE Int. Conf. on Systems, Man and Cybernetics, 1994.
[DOR 94] DORAN J., PALMER M., GILBERT N., The EOS Project: Modelling Upper
Palaeolithic Social Change, in Simulating Societies, N. Gilbert (Ed), UCL Press, 1994.
Page 27
[DRO 92] DROGOUL A., FERBER J., CORBARA B. et FRESNEAU D. A Behavioral Simulation
Model for the Study of Emergent Social Structures. Towards a Practice of Autonomous
Systems, Bourgine P. et Varela F. (Ed.), MIT Press, pp161-170, Paris, 1992.
[DUR 89] DURFEE E., MONTGOMERY T. MICE: A Flexible Testbed for Intelligent
Coordination Experiments. 9th Workshop on DAI, Benda M. (Ed.), Boing, Seattle, 1989.
[DUR 91] DURFEE E. H., LESSER V. R. Global Partial Planning: A Coordination Framework
for Distributed Hypothesis. IEEE Trans. on Systems, Man and Cybernetics 21 (5), 1991.
[ENG 88] ENGELMORE R., MORGAN T. Blackboard Systems. Addison-Wesley, 1988.
[FER 91] FERBER J., CARLE P. Actors and Agents as Reflective Concurrent Objects: a Mering
IV Perspective. IEEE Trans on Systems, Man and Cybernetics 21 (6), 1991.
[FER 95] FERBER J. Les Systèmes multi-agents. InterEditions, 1995.
[FER 96] FERBER J., MÜLLER J.-P. Influences and reaction: A model of situated multiagent
systems. in 2nd Int. Conf. on Multi-Agent Systems. M. Tokoro (ed), AAAI Press, 1996.
[FIN 94] FININ T., FRITZSON R., MCKAY D., MCENTIRE R. KQML as an Agent
Communication Language. 3rd Int. Conf. on Information and Knowledge Management
(CIKM'94), ACM Press, 1994.
[GAS 87] GASSER L., BRAGANZA C., HERMAN N. MACE: a Flexible Testbed for Distributed
AI Research. In Distributed Artificial Intelligence, Huhns M. N. (Ed.), Pitman, 1987.
[GHE 93] GHEDIRA K., MASC: une approche multi-agents des problèmes de satisfaction de
contraintes, Thèse ENSAE, Toulouse, 1993.
[GIR 93] GIROUX S. Agents et systèmes, une nécessaire unité. Thèse de Doctorat, Univ. de
Montréal, 1993.
[GOL 95] GOLDMAN C., ROSENSHEIN J. Mutually supervised learning in multiagent systems.
In Adaptation and Learning in Multi-Agent Systems, Weiss G. et Sen S. (Ed.), LNAI
1042. Springer Verlag, 1995.
[GUE 96] GUESSOUM Z., DOJAT M. A Real-Time Agent Model in an Asynchronous-Object
Environment. In Agents Breaking Away (proc. of Maamaw'96, Eindhoven), Van de Velde
W. et Perram J. (Ed.), LNAI 1038. Springer-Verlag, 1996.
[HAY 85] HAYES-ROTH B. A Blackboard Architecture for Control. Artif. Intel. 26 (3), 1985.
[HAY 93] HAYES-ROTH B., COLLINOT A. A Satisficing Cycle for Real-Time Reasoning in
Intelligent Agents. Expert Systems with Applications 7, pp. 31-42, 1993.
[HAY 96] HAYNES T., SEN S. Evolving behavioral strategies in predators and prey. In
Adaptation and Learning in MAS, Weiss G. et Sen S. (Ed.), LNAI 1042. Springer, 1996.
[HEW 77] HEWITT C. Viewing Control Structures as Patterns of Message Passing. Artificial
Intelligence 8 (3), 323-374, 1977.
[HEW 91] HEWITT C. Open Information Systems Semantics for Distributed Artificial
Intelligence. Artificial Intelligence (special issue on foundations of AI) 47 (1-3), 1991.
[IFF 92] IFFENECKER C., FERBER J. Using Multi-Agent Architecture for Designing
Electromechanical Products In Actes de la conf. sur les systèmes experts, Avignon, 1992.
[JEN 1994] JENNINGS N. Cooperation in Industrial Multi-Agent Systems. Vol. 43, World
Scientific Press, 1994.
Page 28
[JEN 95] JENNINGS N., CORERA J. M., LARESGOITI I. Developing Industrial Multi-Agent
Systems. First Int. Conf. on Multi-Agent Systems, Lesser V. (Ed.), MIT Press, 1995.
[LAN 97] LANGE, OSHIMA. Programming Mobile Agents in Java with the Java Aglet API.
Book on line. http://www.trl.ibm.co.jp/aglets/aglet-book/, 1997.
[LEO 96] LEONNEC J.-Y. Etude de cas: le projet Pyramide. 8ème forum France Telecom
Recherche, France Telecom, Paris, 1996.
[LES 83] LESSER V., CORKILL D. The Distributed Vehicle Monitoring Testbed: A Tool for
Investigating Distributed Problem Solving Networks. AI Magazine 4 (3), pp. 15-33, 1983.
[LIU 93] LIU J. S., SYCARA K., Emergent Constraint Satisfaction through Multi-Agent
Coordinated Interaction, Maamaw'93, Neuchâtel, in LNAI 957, pp. 107-121, 1993.
[MAT 94] MATARIC M. J. Learning to Behave Socially. In From Animals to Animats 3,
Proceedings of the Third International Conference on Simulation of Adaptive Behavior,
D. Cliff, Ph. Husbands, J.-A. Meyer et S. Wilson (Ed.), MIT Press, pp 453-462, 1994.
[MES 94] MESLÉ R. ICHTYUS: architecture d'un système multi-agents pour l'étude de
structures agrégatives. LAFORIA, Université Paris 6, Rapport de DEA 1994.
[MUL 96] MÜLLER J. P. The Design of Intelligent Agents. LNAI 1177. Springer, 1996.
[OHA 96] O’HARE G., JENNINGS N. Foundations of DAI, Wiley, 1996.
[OVE 94] OVERGAARD L., PETERSEN H. G., PERRAM J.., Motion Planning for an Articulated
Robot: a Multi-Agent Approach, in Distributed Software Agents and Applications
(Maamaw'94), vol. LNAI 1069, J.-P. Müller, and J. Perram (Eds). Springer Verlag, 1994
[PAR 93] PARUNAK H. V. D. Industrial Applications of Multi-Agent Systems. Industrial
Technology Institute, Rapport de recherche 1993.
[PAV 94] PAVÉ A., Modélisation en biologie et en écologie. Aléas, Lyon, 1994.
[RAO 92] RAO A., GEORGEFF M. Social Plans: Preliminary Report. In Decentralized AI 3.
Proc. of MAAMAW'91, Werner E. et Castelfranchi C. (Ed.), North Holland, 1992.
[REG 95] REGNIER S., DUHAUT D., Une approche SMA pour la résolution de problèmes
robotiques, 3ème journ. franco. sur l’IAD et les SMA (JFIADSMA'95), Chambéry, 1995.
[REY 87] REYNOLDS C. Flocks, Herds ans Schools: A Distributed Behavioral Model.
Computer Graphics 21 (4), pp. 25-34, 1987.
[ROB 96] ROBERT F. Coopération multi-robot par insertion incrémentale de plans. Doctorat
de l’INPT, Laas, Toulouse, Juin 1996.
[ROS 94] ROSENSCHEIN J., ZLOTKIN G., Rules of encounter : Designing conventions for
automated negotiation among computers, MIT Press, 1994.
[SAB 90] SABAH G. CARAMEL: A Computational Model of Natural Language
Understanding using Parallel Implementation, ECAI 90, Stockholm, 1990.
[SAD 91] SADEK D. Attitudes mentales et interaction rationnelle: vers une théorie formelle de
la communication. Thèse de Doctorat de l’Université de Rennes I, France, 1991.
[SCA 96] SCALABRIN E., VANDENBERGHE L., AZEVEDO H. D., BARTHÈS J.-P. A Generic
Model of Cognitive Agent to Develop Open Systems. 13th Brazilian Symposium on
Artificial Intelligence, SBIA'96, Borges D. L. et Kaestner C. A. A. (Ed.), Springer Verlag,
1996.
Page 29
[SEA 69] SEARLE J. R. Speechs Acts. Cambridge University Press, 1969.
[SEG 96] SEGHROUCHNI A. E. F., HADDAD S. A Recursive Model for Distributed Planning.
2nd Int. Conf. on Multi-Agent Systems, Tokoro M. (Ed.), AAAI Press, Nara, 1996.
[SEY 96] SEYRAT C. JavaNetAgent : Un environnement d’exécution d’agents mobiles pour le
développement de systèmes multi-agents coopératifs sur Internet. Rapport de DEA,
LAFORIA, 1996.
[SHE 95] SHEN W., BARTHÈS J.-P. DIDE: a Multi-Agent Environment for Engineering
Design. 1st Int. Conf. on Multi-Agent Systems, Lesser V. (Ed.), AAAI - MIT Press, 1995.
[SHO 93] SHOHAM Y. Agent Oriented Programming. Artif. Intelligence 60 (1), 1993.
[SMI 79] SMITH R. G. A Framework for Distrib. Problem Solving. Proc. of IJCAI'79, 1979.
[SOH 93] SOHIER C., BOURDET P., Real Time Scheduling of a Production Cell Based on a
Multi-Agent System, Int. Conf. on Indust. Engin. and Product. Management. Mons, 1993.
[STE 94] STEELS L. The Artificial Life Roots of Artificial Intelligence. Artif. Life 1(1), 1994.
[TAN 93] TAN M. Multi-Agent reinforcement learning: Independent vs. cooperative agents.
Proc. of the 10th International Conference on Machine Learning, pp. 330-337, 1993.
[TOK 93] TOKORO M. The Society of Objects. Proc. of the OOPSLA'93 Conference, 1993.
[VAN 88] VANDERVEKEN D. Les actes de discours. Liège, Pierre Mardaga, 1988.
[WEI 90] WEIHMAYER R. et Brandau R. A Distributed AI Architecture for Customer
Network Control. GLOBECOM'90, San Diego, 1990.
[WEI 93] WEISS G. Learning to coordinate actions in multi-agent systems. Proc. of the 1993
International Joint Conference on Artificial Intelligence, 311-316, Chambery, 1993.
[WEI 96] WEISS G., SEN S. (Eds). Adaptation and Learning in Multi-Agent Systems, IJCAI’95
Workshop proc., Montréal, Canada, August 1995, LNCS 1042, Springer Verlag, 1996.
[WIT 92] WITTIG T., ed. ARCHON: An Architecture for Multi-Agent Systems. Chichester,
Ellis Horwood, 1992.
[WOO 94] Wooldridge M. et Jennings N. Towards a Theory of Cooperative Problem
Solving. MAAMAW'94, Demazeau Y., Muller J.-P. et Perram J. (Ed.), Odense,
Danemark, 1994.
[YON 90] YONEZAWA A., (ed.) ABCL: An Object-Oriented Concurrent System. Computer
Systems Series. Cambridge, MA, MIT Press, 1990.
[ZEG 93a] ZEGHAL K. Un Modèle de Coordination d'Actions Reactive appliqué au trafic
aérien. Journees francophones "IAD et SMA", AFCET, Toulouse, 1993.
[ZEG 93b] ZEGHAL K. et FERBER J. CRAASH: A Coordinated Collision Avoidance System.
European Simulation Multiconference, Lyon, 1993.
Page 30