Vous êtes sur la page 1sur 31

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/242623967

Les systemes multi-agents : un aperçu general

Article · January 1997

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:

Multi-Level Emergence View project

Exception handling in agent-based systems View project

All content following this page was uploaded by Jacques Ferber on 05 September 2014.

The user has requested enhancement of the downloaded file.


Les systèmes multi-agents :
un aperçu général
Jacques Ferber

LIRMM, Université Montpellier II


161, rue Ada
34392 Montpellier Cedex 5
Email : ferber@lirmm.fr

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. Notion d’agent de système multi-agent

2.1. Généralités

La notion d’agent, comme tous les concepts fondamentaux (pensons notamment


aux concepts de processus, d’état ou de fichier en informatique) semble pouvoir être
comprise de manière évident. Néanmoins, elle recouvre plusieurs acceptions,
chacune renvoyant à un courant de recherche particulier dans le domaine de ce qui
touche à la nébuleuse « agent ».

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.

2.2. Relation avec la notion d’objet

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

Figure 1. Différence entre objet et agent


La différence essentielle qui existe entre les objets et les agents est illustrée
figure 1. Un objet est défini par l'ensemble des services qu'il offre (ses méthodes) et
qu'il ne peut refuser d'exécuter si un autre objet le lui demande. En revanche les
agents disposent d'objectifs qui leur donnent une autonomie de décision vis à vis des
messages qu'ils reçoivent. D'autre part, ils établissent des interactions complexes qui
font intervenir des communications de haut niveau (cf. section 3.2).
De ce fait, un agent peut être considéré comme un objet ayant des capacités
supplémentaires: recherches de satisfaction (intentions, pulsions) d'une part, et

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.

2.3. Agents et problèmes multi-agents

On peut considérer un agent en interaction avec le monde comme un système


composé de deux sous-systèmes dynamiques couplés, le couplage s’effectuant au
travers des perceptions que l’agent a du monde et des actions qui modifient ce
monde. Dans ce cas, un système mono-agent peut être donné par le couple <a,w>
où a est un agent et w un monde qui sont chacun décrits ainsi :
a = <Pa, Percepta, Fa, Infla, Sa> w = <E, Γ, Σ, R>
où Pa représente la fonction de perception de l’agent, Percepta l’ensemble des
stimuli et sensations qu’un agent peut recevoir, Fa la fonction de comportement de
l’agent qui détermine l’état de l’agent à partir de ses perceptions et de l’état
précédent, Infla la fonction d’action de l’agent, c'est-à-dire la fonction qui tend à
modifier l’évolution du monde en produisant des influences [FER 96], Sa l’ensemble
des états internes de l’agent, E est l’espace (souvent métrique) dans lequel l’agent
évolue, Γ est l’ensemble des influences produites par l’agent et ayant comme
conséquences de modifier l’évolution du monde, Σ est l’ensemble des états de
l’agent et R est la loi d’évolution du monde :
Pa : Σ → Percept a Infl a : S a → Γ
Fa : S a × Percept a → Sa R :Σ×Γ → Σ
Ces fonctions satisfont les équations suivantes qui décrivent la dynamique de l’agent
en interaction avec son environnement :
sa (t + 1) = Fa ( sa (t ), Pa (σ (t )))
σ (t + 1) =R(σ (t ), Infla ( sa (t )))
où sa est un élément de Sa et σ un élément de Σ. La Figure 2 illustre cette situation.

Figure 2. Un agent en interaction avec son environnement


Dans un système multi-agent, les différentes actions des agents sont combinées
par l’intermédiaire d’un opérateur de combinaison d’influences Π qui prend les
résultats des actions des agents et les combine de manière simple (union des
influences, sommation vectorielle, etc.). Dans ce cas, un système multi-agent est
défini par un triplet <A, w, Π> où A est un ensemble d’agents décrits comme

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

Concevoir un système multi-agent, consiste donc à résoudre un certain nombre


de problèmes que l’on peut décrire ainsi:
1. Quelle est la forme de la fonction Fi, ou autrement dit, quelle est
l’architecture de l’agent, sachant que le comportement doit dépendre de cette
fonction ? Peut-on définir une théorie générale permettant de relier le comportement
à ces satisfactions ? C’est ce que nous appellerons le problème de l’agent et de sa
relation au monde.
2. Quelles sont les formes des interactions, c'est-à-dire la suite des productions
d’influences, permettant à plusieurs agents de maximiser leur satisfaction ? Cette
question renvoie d’une manière générale à la problématique de la coordination
d’action et de la coopération, et d’une manière générale à celle de l’interaction.
3. Comment faire évoluer le comportement des agents de manière à ce qu’ils
puissent tirer parti des expériences passées, et quelles en sont les conséquences sur
le comportement collectif qui en découle ? Cette question introduit le thème de
l’adaptation et de l’apprentissage dans les systèmes multi-agents.
4. Comment réaliser de tels systèmes ? Quelles implémentations, quels langages
peut-on utiliser pour décrire des systèmes multi-agents ?

3.1. L’agent et sa relation au monde

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

Pour un agent, interagir avec un autre constitue à la fois la source de sa puissance


et l'origine de ses problèmes. C'est en effet parce qu'ils coopèrent que des agents
peuvent espérer que leur satisfaction sera meilleure que s’ils agissaient de manière
isolée. Mais c’est aussi à cause de leur multitude qu’ils doivent coordonner leurs
actions et résoudre des conflits. Pour un agent, l'autre est à la fois le pire et la
meilleure des choses.
Communications
Traiter le problème de l'interaction c'est se donner les moyens non seulement de
décrire les mécanismes élémentaires permettant aux agents d'interagir, mais aussi
d'analyser et de concevoir les différentes formes d'interaction que des agents peuvent
pratiquer pour accomplir leurs tâches et satisfaire leurs buts. Tout d'abord, les agents
doivent être capables, par le biais de la communication, de transmettre des
informations, mais surtout d'induire chez l'autre un comportement spécifique.
Communiquer est donc une forme d'action particulière qui, au lieu de s'appliquer à
la transformation de l'environnement, tend à une modification de l'état mental du
destinataire. Par exemple, demander à un autre d'exécuter une tâche, tend à
provoquer chez l'autre une intention d'accomplir cette tâche et constitue donc une
manière de satisfaire un objectif sans réaliser la tâche soi-même.

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)

FA1 Echec FA2 Satisfaction FB

Figure 3. Un acte de langage sous la forme d’un réseau de Petri


Aux Etats-Unis, un projet de recherche initialement fondé par la DARPA a pour
but de développer un standard de communication de haut niveau, appelé KQML
pour «Knowledge Query and Manipulation Language», fondé sur les actes de
langages et permettant à des agents cognitifs de coopérer [FIN 94]. Ce projet a un

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.

Collaboration et coordination d'actions


Les différentes formes d'interaction sont la collaboration et la coordination
d'actions. La première s'intéresse à la manière de répartir le travail entre plusieurs
agents, qu'il s'agisse de techniques centralisées ou distribuées, et la seconde analyse
la manière dont les actions des différents agents doivent être organisées dans le
temps et l'espace de manière à réaliser les objectifs. Enfin, lorsque des conflits
apparaissent, il est important de pouvoir en limiter leurs effets. Les techniques de
négociation servent ainsi à satisfaire les parties impliquées en établissant des
compromis ou en dépassant la nature du conflit.
La coopération est la forme générale d'interaction la plus étudiée dans les
systèmes multi-agents1. De manière simplifiée, le problème de la coopération peut se
ramener à déterminer qui fait quoi, quand, où, avec quels moyens, de quelle manière
et avec qui, c'est-à-dire en fait à résoudre les différents sous-problèmes que
constituent la collaboration par répartition de tâches, la coordination d'actions et la
résolution de conflits. La réalisation de systèmes de répartition de services et de
coordinations, tels que la médiation (usage de médiateurs ou courtiers pour la
répartition des services en fonction des offres et des demandes (Figure 4) ou le
réseau contractuel, fondé sur la notion de marché [SMI 79] passent par
l’établissement de protocoles de conversations, qui peuvent faire l’objet d’une
représentation et d’une validation par réseaux de Petri.
L’analyse des systèmes d’interaction passe aussi par la planification distribuée et
la coordination d’actions. Des techniques tant cognitives que réactives ont été
développées. Les premières ont été initiées par Lesser, Durfee et Decker avec le
modèle PGP (Partial Global Planning) [DUR 91] [DEC 92]. Depuis, d’autres
modèles ont été présentés. En France signalons les recherches portant sur la
technique d’insertion incrémentale de plans [ALA 95] et sur l’usage de réseaux de
Petri récursifs pour la définition de protocoles de planification distribuée [SEG 96].

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].

Figure 4. La répartition de tâches par médiation

3.3. Adaptation et apprentissage

Domaine encore neuf dans le paysage des multi-agents, l’apprentissage et


l’adaptation se sont développés considérablement ces toutes dernières années, pour
devenir un thème de recherche à part entière. L’importance de ce thème devrait
encore s’accroître dans les années à venir tant l’adaptation fait partie du coeur des
caractéristiques des SMA. Encore fallait-il considérer cette problématique
globalement, étape qui vient d’être franchie à la dernière conférence internationale
sur les systèmes multi-agents (ICMAS’96) où un « workshop » et deux sessions
plénières lui étaient consacrés.
Il existe plusieurs formes d’apprentissage multi-agents. Lorsque les agents sont
coopératifs, on distingue l’apprentissage collectif dans lequel les agents se
communiquent leurs résultats [WEI 93] et l’apprentissage individuel qui se consacre
à l’évolution d’une société dans lesquels les agents apprennent individuellement et
séparément [TAN 93]. Enfin, il existe aussi tout un ensemble de recherches dans
lesquelles les agents forment des groupes qui sont en compétition et qui tentent
d’obtenir le meilleur gain en fonction de l’adversaire [HAY 96].
Les exemples d’applications sont multiples. Ils vont des problèmes de poursuite
(problème jouet ou un ensemble de prédateurs tentent d’entourer une proie) ou du
dilemme du prisonnier itératif jusqu’à celui de l’organisation d’un groupe de robots
ou l’exploitation d’un ensemble de ressources réparties dans un environnement en
passant par le monde des cubes ou la gestion de trafic urbain [GOL 95]. Les
techniques utilisées font essentiellement appel à des techniques d’apprentissage
numérique par renforcement et aux systèmes à base de classifieurs. On trouvera un
ensemble d’articles récents dans [WEI 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.

Agents Agents Agents


assistants commerciaux applicatifs

Groupes et gestion des groupes


Protocoles et systèmes de
communications de haut niveau

Agents de Agents Agents de Agents


liaison administratifs sécurité juridiques

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

Figure 5. L’architecture d’un système multi-agent fonctionnant sur réseau.


Le niveau 0 correspond à l’ensemble des ressources disponibles telles que les
mécanismes de communication de bas niveau (sockets Unix, protocoles TCP/IP ou
http, etc.) ainsi que les mécanismes d’exécution parallèles tels que les « threads ».
C’est au dessus de cette couche, qui est utilisée comme un existant, que vient
s’intégrer un système multi-agent proprement dit. Le niveau 1 décrit les couches de
bas niveau d’un système multi-agent : les primitives de communication entre agents
distants (primitives de type KQML), les serveurs de noms permettant à des agents
d’entrer et de sortir du système (procédures de check-in check-out), ainsi que les
moteurs qui implémentent le cycle de base de fonctionnement d’un agent. Ce cycle
est lié à un processus en boucle de type perception/délibération/action. Le niveau 2
correspond à l’ensemble des mécanismes génériques qui sont mis en œuvre dans un
système multi-agent. Il s’agit du niveau fondamental sur lequel porte la plupart des
recherches décrites dans la section précédente : définition de protocoles génériques
de coopération, description d’agents administratifs et de liaison tels que les
« courtiers » (ou brokers) qui mettent en rapport les agents qui demandent et ceux
qui offrent des services, description de langage de contenu généraux, comportements
génériques d'agents, etc. Le niveau 3 enfin traite des applications spécifiques et des
domaines particuliers auxquels on dédie un système multi-agent particulier.

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].

4. Applications des systèmes multi-agents

Les domaines d'application des systèmes multi-agents sont particulièrement


riches. Nous en citerons seulement les principales directions, toute recherche
d'exhaustivité étant a priori incompatible dans le cadre d’un domaine de recherche
en pleine évolution. On peut considérer qu’il existe, pour l'instant, trois grandes
catégories d’applications des systèmes multi-agents : la conception de systèmes
complexes ouverts ou génie logiciel multi-agent, la simulation multi-agent et la
robotique distribuée.

4.1. Génie logiciel multi-agent

Les SMA proposent une nouvelle technologie de construction de logiciels à


partir des concepts d'agent et d'interaction, en considérant que chaque unité de
programme peut prendre la forme d'un agent qui dispose de sa propre autonomie, de
ses propres objectifs et « vit » sur le réseau comme un animal dans un écosystème
naturel, coopère ou négocie avec d'autres unités de même nature.
L'un des systèmes les plus connus en Europe pour avoir tenté de donner un cadre
opérationnel à ces idées est le système ARCHON (Architecture for Cooperating
Heterogeneous On-line Systems), issu d'un projet ESPRIT qui propose une
architecture générale de SMA pour intégrer différents programmes devant coopérer
ensemble [WIT 92]. L'architecture générale du système est présentée figure 6. La
«tête» d'un agent comprend un gestionnaire de communications de haut niveau qui
s'appuie sur les recommandations de la norme OSI, un modèle des compétences des
autres et de soi sous la forme d'un gestionnaire d'accointances et un système de
planification et de coordination. Un moniteur fait l'interface et la gestion entre la
«tête» et le corps d'un agent composé d'un ensemble de tâches, chacune
correspondant à un module logiciel préexistant. Il est ainsi possible d'encapsuler des
programmes existants à l'aide d'agents ARCHON, et faire ainsi coopérer des
programmes hétérogènes, initialement non coopérants. L'ouvrage [JEN 94] donne
une présentation détaillée du fonctionnement de ce système.
Le système ARCHON constitue un bon exemple de logiciel véritablement
industriel. Commercialisé par la société française Framentec, il a été testé dans de
nombreuses configurations industrielles, en particulier pour surveiller et analyser les
pannes d'un accélérateur de particules. Il a aussi été utilisé dans le domaine de la

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

Figure 6. L’architecture générale du système A RCHON .


De plus en plus, ces travaux se situent au carrefour de l’intelligence artificielle,
des réseaux et des systèmes répartis. Le système OSACA développé au sein du
laboratoire Heudiasyc de l’Université de Compiègne en est un bon exemple
[SCA 96] : il s’agit d’une plate-forme de développement de systèmes multi-agents
qui permet à plusieurs agents de coopérer à la réalisation d’une tâche complexe telle
que la conception distribuée d’un produit [SHE 95]. Les agents OSACA se situent
au sommet d’une architecture en couche de type OSI, ce qui nécessite au préalable la
mise en œuvre de toutes les sous-couches de l’architecture (liaison, réseau, transport,
session et présentation). Les agents communiquent à l’aide d’actes de langages
voisins de ceux de KQML et coordonnent leurs activités en utilisant des protocoles
qui sont des variantes du réseau contractuel (cf. section 3.2). Ce type d’approche
montre que les SMA en sont à un niveau de recherche que l’on qualifie parfois de
« pré-compétitive » pour signifier que leur utilisation industrielle à plus large échelle
dans des applications liées à la concurrence du marché n’est pas loin.
Applications des SMA aux télécommunications
La plus grande gamme d’applications intéressantes pour les systèmes multi-
agents dans le cadre de réseaux de télécommunications semble être celle de
l’intégration de services et le développement du marché électronique. Il s’agit de
mettre en commun des clients et des fournisseurs de services dans une architecture
totalement ouverte, clients et fournisseurs étant des agents électroniques qui
négocient entre eux des échanges de services. Le système multi-agent constitue alors
une sorte de « place de marché électronique », dans lequel les clients émettent des
demandes et les fournisseurs envoient des propositions de services. Finalement des

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)

pour afficher une image Macintosh.

Figure 7. Automate d’un agent effectuant de l’éco-résolution


Le graphe de l'automate est donné figure 7. Chaque changement d'état est
caractérisé par un couple de variable d'entrée <agression, gêneurs>, représenté par

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].

4.2. La simulation multi-agent

La simulation est une branche très active de l'informatique qui consiste à


analyser les propriétés de modèles théoriques du monde environnant. La physique,
la chimie, la biologie, l'écologie, la géographie et les sciences sociales notamment

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

où c est un coefficient relatif à la prise en compte relative des positions ou des


vitesses (plus c est proche de 1 plus les poissons se rapprochent du barycentre de
leurs voisins, et plus
r il est près de 0 plus ils privilégient le fait d’aller dans
! la même
direction qu’eux), Rij est le vecteur (normé) qui relie la position de i à j, B(t ) est un
vecteur normé dont la direction est aléatoire, b est le coefficient qui règle
l'importance du bruit dans le mouvement d'un poisson (plus b est proche de 0, plus
le mouvement
r du poisson est aléatoire), Norm est la fonction de normalisation du
vecteur Vi et où αij et βij sont des composants d'amortissement qui dépendent de la
distance du poisson i au poisson j. Lorsque la distance est égale à 0, l'influence du
poisson j sur le poisson i est maximale (égale à 1) et elle tend vers 0 lorsque la
distance de i à j est supérieure ou égale à une distance de perception définie a priori.

Figure 8. Les poissons se rassemblent en bancs à partir d’attractions locales


A partir d'une situation initiale, dans laquelle les poissons sont placés de manière
aléatoire, et en faisant tourner une simulation portant sur plusieurs cycles (de 40 à
100 cycles environ), on constate que les poissons tendent en effet à construire des
bancs dans lesquels les agents coordonnent leurs mouvements pour aller dans la
même direction et éviter les obstacles (figure 8).
Néanmoins ces techniques ne sont pas exemptes de problèmes: lorsque des
agents se déplacent, leurs champs de potentiels sont continuellement modifiés et les
trajectoires que suivent les agents deviennent parfois aberrantes. Par exemple, la
figure 9 montre une situation caractéristique introduite par des champs de potentiels.
L’idée générale est de faire en sorte que deux agents qui se déplacent et cherchent à
s’éviter suivent un gradient de potentiel obtenu par la somme d’un champ
d’attraction vers un but et d’un champ de répulsion donné par l’obstacle :

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

Les systèmes multi-agents commencent à sortir de leur stade d’enfance pour


entrer dans celui de la maturité. Ils proposent une vision renouvelée de
l’informatique, vécue comme un prolongement théorique aux techniques à objet, en
mettant encore plus l’accent sur la décentralisation des calculs et des prises de
décision, sur l’autonomie des contrôles locaux, et sur l’interaction entre entités
faiblement couplées. Ces considérations proposent en fait, plus qu’une simple
extension, une véritable rénovation dans la manière de concevoir des systèmes
informatiques.

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

View publication stats

Vous aimerez peut-être aussi