Chapitre 2
Les systèmes multi-agents
1
Introduction
Le thème des systèmes multi-agents, 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. Ce chapitre introduit, tout d'abord, les
notions d'agents et de systèmes multi-agents, et détaille par la
suite
Les travaux sur les systèmes éducatifs et
surtout les systèmes tutoriels intelligents (STI) se sont poursuivis
activement depuis le début des années 90. Des nouvelles tendances
se sont concrétisées telles l'accent mis sur l'apprentissage
collaboratif, les interfaces adaptatives et les systèmes multi-agents.
Ces recherches sur les agents sont guidées par la
nécessité d'avoir des environnements interactifs qui tracent
à la fois le comportement du système informatique et celui des
usagers (tuteur ou apprenant). En effet, lorsqu'il s'agit de concevoir des
systèmes informatiques distribués qui manipulent des
connaissances hétérogènes, la technologie agent se
révèle bien adaptée. Les systèmes multi-agents
permettent non seulement le partage ou la distribution de connaissance, mais
aussi, de faire coopérer un ensemble d'agents et de coordonner leurs
actions pour l'accomplissement d'un but commun.
2
Concept d'agent
La notion d'agent n'est pas simple à définir. Il
existe en effet plusieurs définitions ou significations données
à cette notion. C'est la raison pour laquelle plusieurs auteurs essayent
d'en donner une définition avant de se pencher sur l'utilisation de ce
paradigme dans tel ou tel contexte.
2.1
Définition d'un agent
Ferber [Ferber 95] définit un agent comme une
entité physique ou virtuelle
a.
qui est capable d'agir dans un environnement,
b.
qui peut communiquer directement avec d'autres agents,
c.
qui est mue par un ensemble de tendances (sous la forme
d'objectifs individuels ou d'une fonction de satisfaction, voire de survie,
qu'elle cherche à optimiser),
d.
qui possède des ressources propres,
e.
qui est capable de percevoir (mais de manière
limitée) son environnement,
f.
qui ne dispose que d'une représentation partielle de cet
environnement (et éventuellement aucune),
g.
qui possède des compétences et offre des services,
h.
qui peut éventuellement se reproduire,
i.
dont le comportement tend à satisfaire ses objectifs, en
tenant compte des ressources et des compétences dont elle dispose, et en
fonction de sa perception, de ses représentations et des communications
qu'elle reçoit.
Ferber [Ferber 95] opère une différence entre
les agents logiciels et les agents purement situés (qui sont davantage
des entités physiques). Un agent logiciel ou agent purement communiquant
est une entité informatique qui :
j.
se trouve dans un système ouvert,
k.
peut communiquer directement avec d'autres agents,
l.
est mue par un ensemble d'objectifs propres,
m.
possède des ressources propres,
n.
ne dispose que d'une représentation partielle des autres
agents,
o.
possède des compétences (services) qu'elle peut
offrir aux autres agents,
p.
a un comportement tendant à satisfaire ses objectifs, en
tenant compte des ressources et des compétences dont elle dispose, et en
fonction de ses représentations et des communications qu'elle
reçoit.
[Jennings et al. 98] définissent un agent
comme un système informatique situé dans un certain
environnement, capable d'exercer de façon autonome des
actions sur cet environnement en vue d'atteindre ses objectifs.
D'après cette définition un agent intelligent se
caractérise par les propriétés suivantes :
·
autonomie : un agent possède un état interne (non
accessible aux autres) en fonction duquel il entreprend des actions sans
intervention d'humains ou d'autres agents ;
·
réactivité : un agent perçoit des stimuli
provenant de son environnement et réagit en fonction de ceux-ci ;
·
capacité à agir : un agent est mû par un
certain nombre d'objectifs qui guident ses actions, il ne répond pas
simplement aux sollicitations de son environnement;
·
sociabilité : un agent communique avec d'autres agents ou
des humains et peut se trouver engager dans des transactions sociales
(négocier ou coopérer pour résoudre un problème)
afin de remplir ses objectifs.
Plusieurs chercheurs définissent la notion d'agent par
rapport à celle d'objet, arguant du fait que la maîtrise d'une
nouvelle technologie ou d'un nouveau concept est facilitée par une
référence à des technologies ou concepts voisins et d'ores
et déjà maîtrisés [Odell et al. 00]. Les objets se
définissent comme des entités informatiques qui encapsulent un
état, sont capables d'accomplir des actions, ou méthodes dans cet
état, et communiquent par échange de messages. Bien qu'il existe
plusieurs similitudes entre les agents et les objets, il n'en existe pas moins
d'importantes différences. La première concerne le degré
d'autonomie. La propriété la plus caractéristique des
objets est le principe d'encapsulation, l'idée selon laquelle les objets
contrôlent leur propre état interne. Dans ce sens, un objet peut
être considéré comme ayant une autonomie sur son
état. Mais un objet n'a pas de contrôle sur son comportement : si
une méthode m est rendue accessible aux autres objets, alors ceux-ci
peuvent les invoquer chaque fois qu'ils le veulent. En d'autres termes, une
fois qu'un objet a rendu une méthode publique, il n'a plus de
contrôle sur l'exécution ou la non exécution de cette
méthode. Les agents, quant à eux, n'invoquent pas des
méthodes mais adressent des requêtes pour l'exécution des
actions. Si un agent i demande à un autre agent j d'exécuter une
action a, j exécutera l'action ou ne l'exécutera pas. On voit
donc que dans le cas des objets, la décision d'exécuter l'action
appartient à l'objet qui invoque la méthode alors que pour les
agents, cette décision revient à celui qui reçoit la
requête. La seconde différence entre les objets et les agents
réside au niveau des caractéristiques de
réactivité, de dynamisme et de sociabilité. La
troisième différence entre les objets et les agents vient du fait
que ces derniers sont censés avoir chacun leur fil d'exécution
(thread). Il faut noter une évolution dans la communauté des
adeptes de la POO vers la notion d'objet actif. Un objet actif est un objet
possédant son propre fil d'exécution. Les objets actifs sont
généralement autonomes, c'est-à-dire qu'ils peuvent
exhiber un comportement sans avoir été sollicités par un
autre objet. [Odell et al. 00] présentent les agents comme une extension
d'objets actifs possédant une prise d'initiative (la capacité
à initier des actions sans intervention externe) et un libre arbitre (la
capacité à refuser ou à modifier une requête
externe). Odell et ses collègues définissent un agent comme un
objet qui peut prendre des initiatives (an objet that can say `go'...)
et refuser de répondre à une sollicitation (... and `no').
Finalement ces auteurs définissent un agent comme toute entité
autonome capable de communiquer avec son environnement. Il faut noter que
l'auteur utilise cette mise en perspective des agents par rapport aux objets
pour proposer une extension au langage UML pour spécifier des agents. Le
résultat en est le AUML pour Agent UML.
Par ailleurs, sur le plan pratique, l'approche agent est plus
générale et apporte des outils qui s'intègrent à de
multiples applications. Leur développement est motivé par un
très grand nombre de champs d'application, on peut, entre autre, citer
[Bourdon 01] :
·
Le commerce électronique
·
La gestion et le suivi en temps réel des réseaux
de télécommunication
·
La modélisation et l'optimisation de flux de marchandises
ou de données
·
Le traitement de l'information dans des systèmes sur
Internet (recherche, filtrage, présentation, etc.).
·
La gestion de trafic routier et aérien
·
L'optimisation des processus industriels de fabrication;
·
Les jeux électroniques;
·
L'étude et la simulation de phénomènes
complexes dans des organisations humaines ou naturelles, comme la
réaction à une situation de crise (tremblement de terre), et
l'évolution des rôles ou des normes dans une société
|