II. Les SMA
Le thème des systèmes multi-agents (SMA), s'il
n'est pas récent, est actuellement un champ de recherche très
actif. Cette discipline est à la connexion de plusieurs domaines en
particulier de l'intelligence artificielle, des systèmes informatiques
distribués et du génie logiciel. C'est une discipline qui
s'intéresse aux comportements collectifs produits par les interactions
de plusieurs entités autonomes et flexibles appelées agents, que
ces interactions tournent autour de la coopération, de la concurrence ou
de la coexistence entre ces agents.
C'est un domaine très large ; ce que nous allons
présentées dans cette section ne fait que des points sur les
principaux concepts des SMA ([7], [13], et [15] pour des articles de
référence).
II.1. Qu'est ce qu'un agent?
Dans la littérature, on trouve une multitude de
définitions d'agents. Elles se ressemblent toutes, mais diffèrent
selon le type d'application pour laquelle est conçu l'agent. Nous avons
choisis celle de Jennings, Sycara et Wooldridge [7] :
« Un agent est un système informatique,
situé dans un environnement, et quiagit
d'une façon autonome et flexible pour
atteindre les objectifs pour lesquels il a été conçu
».
Les notions « situé >>, « autonome
>> et « flexible >> sont définies comme suit:
· Situé : l'agent est
capable d'agir sur son environnement à partir des entrées
sensorielles qu'il reçoit de ce même environnement;
· Autonome : l'agent est capable
d'agir sans l'intervention d'un tiers (humain ou agent) et contrôle ses
propres actions ainsi que son état interne;
· Flexible : l'agent dans ce cas
est:
Capable de répondre à temps: il doit
être capable de percevoir son environnement et élaborer une
réponse dans les temps requis;
Proactif: il n'agit pas simplement en réponse
à son environnement, il est également capable d'avoir un
comportement opportuniste, dirigé par ses buts d'utilité, et de
prendre des initiatives au moment approprié.
Social: l'agent doit être capable d'interagir
avec les autres agents (logiciels et humains) quand la situation l'exige afin
de compléter ses tâches ou aider ces agents à accomplir les
leurs.
II.2. Architectures d'agents
Un agent peut toujours être vu comme une fonction liant
ses perceptions à ses actions. Ce qui différencie les
différentes architectures d'agents, c'est la manière dont les
perceptions sont liées aux actions. Les deux grandes familles d'agents
sont : les agents réactifs et les agents
délibératifs (voir [15] pour les détails).
II.2.1. Agents réactifs : Un agent
réactif ne fait que réagir aux changements qui surviennent dans
l'environnement. Autrement dit, un tel agent ne fait ni
délibération ni planification, il se contente simplement
d'acquérir des perceptions et de réagir à celles ci en
appliquant certaines règles prédéfinies tant donné
qu'il n'y a pratiquement pas de raisonnement, ces agents peuvent agir et
réagir très rapidement. Cette catégorie regroupe les deux
types d'architecture suivants :
· les agents à réflexes simples.
· les agents conservant une trace du monde.
II.2.2. Agents délibératifs :
Un agent délibératif est un agent qui effectue une
certaine délibération pour choisir ses actions. Une telle
délibération peut se faire en se basant sur les buts de l'agent
ou sur une certaine fonction d'utilité. Elle peut prendre la forme d'un
plan qui reflète la suite d'actions que l'agent doit effectuer en vue de
réaliser son but. Ainsi, les trois types d'architecture suivants peuvent
être regroupés sous cette catégorie :
· les agents ayant des buts.
· les agents utilisant une fonction d'utilité.
· les agents BDI.
II.2.3. Agents hybrides : Chacune des
architectures précédentes est appropriée à un
certain type de problème. Cependant, pour la majorité des
problèmes, ni une architecture complètement réactive, ni
une architecture complètement délibérative n'est
appropriée. Dans ce cas, une architecture conciliant à la fois
des aspects réactifs et délibératifs est requise. On parle
alors d'architecture hybride.
II.3. Systèmes multi-agents II.3.1.
Définition
Un système multi-agents est un système
distribué composé d'un ensemble d'agents interagissant, le plus
souvent, selon des modes de coopération, de concurrence
ou de coexistence situés dans un environnement commun. Il
possède les caractéristiques principales suivantes [7]:
· chaque agent a des informations ou des capacités
de résolution de problèmes limitées, ainsi chaque agent a
un point de vue partiel ;
· il n'y a aucun contrôle global du système
multi-agents ;
· les donnés sont décentralisées ;
· le calcul est asynchrone.
Pourquoi des SMA ?
· Certains domaines requièrent l'utilisation de
plusieurs entités, par exemple, il y a des systèmes qui sont
géographiquement distribués. Les SMA procurent une façon
facile et efficace de les modéliser.
· Une autre situation, où les sont requis, est
lorsque les différents systèmes et les données qui s'y
rattachent appartiennent à des organisations indépendantes qui
veulent garder leurs informations privées et sécurisées
pour des raisons concurrentielles.
· Les SMA possèdent également les avantages
traditionnels de la résolution distribuée et concurrente de
problèmes [15] :
- La modularité, permet de rendre la
programmation plus simple ;
- La vitesse, due principalement au parallélisme
;
- La fiabilité, qui peut être
également atteinte, dans la mesure où le contrôle et les
responsabilités étant partagés entre les différents
agents, le système peut tolérer la défaillance d'un ou de
plusieurs agents.
· Finalement, les SMA héritent aussi des
bénéfices envisageables du domaine de l'intelligence artificielle
comme par exemple, le traitement symbolique (au niveau des connaissances).
II.3.2. Interaction entre agents : Jacques
Ferber donne la définition suivante de l'interaction : « Une
interaction est la mise en relation dynamique de deux ou plusieurs agents par
le biais d'un ensemble d'actions réciproques... » [13]. Les
interactions entre agents peuvent variées selon les situations dont se
trouve ces agents : coexistence, compétition ou coopération.
· S'ils ne font que coexister, alors
chaque agent ne considère les autres agents que comme des composantes de
l'environnement. Il n'y a aucune communication directe entre les agents
· S'ils sont en compétition,
alors le but de chaque agent est de maximiser sa propre satisfaction. La
compétition entre agents peut avoir plusieurs sources : Les buts des
agents peuvent être incompatibles ou les ressources peuvent être
insuffisantes.
· S'ils sont en coopération,
alors le but des agents n'est plus seulement de maximiser leurs propres
satisfactions mais aussi de contribuer à la réussite du groupe.
Les agents travaillent ensemble à la résolution d'un
problème commun.
II.3.3. Coopération entre agents : La
coopération est nécessaire quand un agent ne peut pas atteindre
ses buts sans l'aide des autres agents. Cette situation est fréquente
même chez des espèces primitives. Les buts nécessitant la
coopération peuvent être.
II.3.4. Coordination entre agents : Il y a
interaction entre les agents soit pace qu'ils coopèrent, soit parce
qu'ils sont en compétition. Dans les deux cas, une coordination peut
être nécessaire pour améliorer le fonctionnement global du
système [13].
Lorsque plusieurs agents travaillent sur le même lieu,
utilisent les mêmes ressources, où résolvent des sous
problèmes qui ne sont pas complètement indépendants
(conception d'un objet
complexe par exemple), ils doivent accomplir, en plus des
tâches liées directement au problème traité, des
tâches de coordination. Ces tâches ne sont pas directement
productives mais elles améliorent les tâches productives.
Les tâches de coordination peuvent être accomplies
directement par les agents concernés quand elles sont relativement rares
et qu'elles n'engagent pas un grand nombre d'agents en même temps. Sinon,
elles sont prises en charge par des agents spécialisés qui
recueillent les demandes et fixent les ordres de priorité ou d'autres
contraintes.
II.3.5. Négociation entre agents :
Comme nous avons vus précédemment, en interagissant dans
un environnement partagé, les agents doivent coordonner leurs actions et
avoir des mécanismes pour la résolution des conflits. Le
mécanisme favori pour la résolution des conflits et
la coordination, inspiré du modèle des humains, est
la négociation.
Dans les systèmes multi-agents, la négociation
est une composante de base de l'interaction surtout parce que les agents sont
autonomes ; il n'y a pas de solution imposée à l'avance et les
agents doivent arriver à trouver des solutions dynamiquement, pendant
qu'ils résolvent les problèmes [14].
II.3.6 Communication entre agents : Les
communications, dans les systèmes multi-agents comme chez les humains,
sont à la base des interactions et de l'organisation sociale. Sans
communication, l'agent n'est qu'un individu isolé, refermé sur sa
boucle perception-délibérationaction. C'est parce que les agents
communiquent qu'ils peuvent coopérer, coordonner leurs actions,
réaliser des taches en commun et devenir ainsi de véritables
êtres sociaux.
Dans les SMA deux stratégies principales ont
été utilisées pour supporter la communication entre
agents:
Communication par transfert de messages :
Dans cette approche, les agents échangent de messages entre eux
directement (pas de mémoire partagée).
Communication par l'utilisation d'un tableau noir :
Un tableau noir est utilisé pour spécifier une
mémoire partagée par divers systèmes. Dans un SMA
utilisant un tableau noir, les agents peuvent écrire des messages,
insérer des résultats partiels de leurs calculs et obtenir de
l'information dans et à partir de ce tableau.
Pour coordonner l'activité d'un ensemble
hétérogène d'agents autonomes, il faut que les agents
communiquent dans un langage compréhensible par tous les autres. Les
deux langages les plus utilisés sont : KQML(1) et
FIPA-ACL(2).
|