Académique Documents
Professionnel Documents
Culture Documents
Cours SMA Complet
Cours SMA Complet
Scientifique
marir.toufik@yahoo.fr
2016/2017
Table des matières
Chapitre 01 : Introduction à l’Intelligence Artificielle Distribuée 01
1. Introduction……………………………………………………………….02
2. De l’intelligence artificielle à l’intelligence artificielle distribuée…...…...02
3. L’intelligence artificielle distribuée……………………………………… 04
4. Les branches de l’intelligence artificielle distribuée……………………...07
5. Les différences entre les SMA et les paradigmes informatiques………….11
5.1. Les différences entre les SMA et les logiciels orientés objets…….11
5.2. Les différences entre les SMA et les systèmes experts……………12
5.3. Les différences entre les SMA et les systèmes distribués…………13
6. Les avantages des SMA………………………………………………… 13
7. Les défis des SMA………………………………………………………..16
8. Les applications des SMA……………………………………………… 16
9. Conclusion………………………………………………………………. 18
10. Questions de compréhension…………………………………………….18
1. Introduction……………………………………………………………….21
2. Les systèmes multi agents (SMA) ………………………………………..21
2.1. Définition d’un système multi-agents……………………….…….21
2.2. Cas spécifiques de systèmes multi-agents ………………………..24
2.3. Le contrôle dans les systèmes multi-agents ………........................25
3. Les agents …………………………...…………………………………………..27
3.1. Définition d’un agent ……………………………………………..27
3.2. Les caractéristiques des agents ……………………..…………….28
3.3. Les types d’agents ………..……………………………………….32
4. L’environnement …………………………………………………………34
5. L’organisation…………………………………………………………….36
6. L’interaction………………………………………………………………40
6.1. Les types d’interaction……………………………………………41
6.2. La communication…………………………………………………43
7. Conclusion…………………………………………………………………….48
8. Questions de compréhension………………………………………………….49
1. Introduction……………………………………………………………….51
2. Une architecture abstraite d’agents ……………….....................................51
2.1. Une architecture d’un agent purement réactif……………………..51
2.2. Un agent avec état…………………………………………………56
3. Des architectures concrètes...………………… .……………………………57
i
3.1. L’architecture BDI …………………………….………………….58
3.2. Architecture de subsomption…………………………………… .62
3.3. L’architecture TuringMachine…………………………………….64
3.4. L’architecture InteRRaP…..……………………………………...66
4. Des architectures spécifiques……………………………………………..68
4.1. L’architecture DIMA… …………………………………………68
4.2. L’architecture ARTIS…………………………………………….70
5. Conclusion………………………………………………………………..73
6. Questions de compréhension……………………………………………...74
1. Introduction…………………………………………………………….…76
2. Les formes de l’interaction...………………………...………………….. 76
3. La négociation…………………………………………………………….77
3.1. Techniques d’enchères………………………..…………………..82
3.2. L’allocation des tâches par redistribution…………………………87
4. La coopération…………………………………………………………….90
4.1. Allocation des tâches par réseau contractuel… …………………92
4.2. La coopération par la planification………………………………..94
5. Conclusion………………………………………………………………...96
6. Question de compréhension……………………………………………….96
Références 98
ii
Liste des Figures
Figure 1.1 : Le système HearsayII……………….…………………………….....04
Figure 2.1 : Le modèle de tableau noir…………………………….……………..26
Figure 2.2 : Le modèle d’acteur………………………………………………… 27
Figure 2.3 : Les propriétés des agents selon leurs types………………………….32
Figure 2.4 : L’architecture en couches d’un environnement…………………… 35
Figure 2.5 : Le modèle AGR…………………………………………………….39
Figure 2.6 : Un exemple d’un message KQML………………………………….46
Figure 2.7 : La sémantique formelle de l’acte inform……………………………48
Figure 3.1 : description d’un agent purement réactif…………………………….56
Figure 3.2 : Architecture d’un agent avec état……………………………………57
Figure 3.3 : L’architecture BDI…………………………………………………..61
Figure 3.4 : L’algorithme de contrôle d’un agent BDI…………………………..62
Figure 3.5 : Architecture de subsomption………………………………………..63
Figure 3.6 : L’architecture TuringMachine……………………………………..66
Figure 3.7 : L’architecture IneRRaP……………...……………………………..67
Figure 3.8 : L’agent DIMA……………………………………………………….70
Figure 3.9 : L’architecture de l'agent ARTIS…………………………………….72
Figure 3.10 : Le fonctionnement d’un in-agent…………………………………..73
Figure 4.1 : Le protocole FIPA-Contract-Net……………………………………93
iii
Chapitre 01
Introduction à l’Intelligence
Artificielle Distribuée
Introduction à l’Intelligence Artificielle Distribuée
Chapitre 01 : Introduction à
l’Intelligence Artificielle Distribuée
1. Introduction
Les systèmes multi-agents (SMA) représentent actuellement un domaine très actif et
largement appliqué. Ce domaine est une branche de l’intelligence artificielle
distribuée (IAD). Il semble donc évident d’entamer ce cours par une introduction à
l’intelligence artificielle distribuée. Ainsi, nous commençons ce chapitre par une
brève introduction à l’intelligence artificielle en montrant la nécessité de distribution
des techniques de cette branche. Ensuite, nous présentons l’intelligence artificielle
distribuée en détaillons les causes et les formes de la distribution de l’intelligence.
Sachant que les systèmes multi-agents ne représentent qu’une branche de
l’intelligence artificielle distribuée, nous présentons dans la section 4 un panorama sur
les trois branches qui composent ce domaine. Dans la section 5, nous clarifions les
différences entre les systèmes multi-agents et les principaux paradigmes et systèmes
informatiques similaires. Bien entendu, les systèmes multi-agents n’offrent pas
seulement des avantages. Ainsi, nous présentons les avantages et les défis de ces
systèmes avant de présenter ses domaines d’application. Finalement, nous présentons
une conclusion et quelques questions de compréhension.
rêve puisse être réalisé si on peut traiter les symboles en utilisant les ordinateurs.
Cependant, plusieurs objections ont été posées et touchent parfois même la nature de
l’intelligence. En fait, plusieurs philosophes considèrent l’intelligence comme une
caractéristique humaine (caractéristique liée à l’esprit humaine) irréalisable par les
machines.
En 1950, Alain Turing propose dans un célèbre article, un test empirique pour
dépasser le débat de la faisabilité de réalisation des machines intelligentes. Ce test est
connu par « le test de Turing ». Ainsi, une personne peut tester la machine via une
interface. La personne chargée de test pose des questions à la machine. La machine
est considérée comme intelligente, si on ne peut pas distinguer ses réponses de
réponses d’un être humain.
Les participants à la conférence de Dartmouth ont été très optimistes. Ils ont
estimé que la réalisation des machines intelligentes est une question de quelques
années. A titre exemple, en 1970 Minsky (l’un des fondateurs de l’IA) a annoncé que
la réalisation d’une machine avec une intelligence générale d’un être humain ordinaire
va prendre de trois à huit ans. Cependant, la complexité de la tâche a montré la
fausseté de ces estimations. Par exemple, Newell et Simon déclarent en 1958 qu’après
dix ans le champion de monde en jeu d’échec sera un ordinateur. En fait, il faut
attendre jusqu’à l’année 1997 pour réaliser « Deep Blue » (le vainqueur de Kasparov
– champion du monde en jeu d’échec).
Vers la fin des années soixante-dix, un nouveau courant est apparu. Il consiste à
exploiter les progrès des systèmes distribués dans l’intelligence artificielle afin de
pallier la complexité des problèmes de l’IA. Ainsi, le domaine de l’intelligence
artificielle distribuée (IAD) est apparu.
Par contre au système de l’IA classique, ce système est composé d’un ensemble de
sources de connaissances distribuées. En fait, le système Hearsay II est l’un des
premiers systèmes de l’IAD. En conséquence, nous pouvons définir l’intelligence
artificielle distribuée comme une branche de l’intelligence artificielle classique qui
s’intéresse à des comportements intelligents produisant par l’activité de plusieurs
entités. Il est important de noter que cette branche ne traite pas les problèmes de bas-
niveau de parallélisme qui sont des problèmes au cœur du domaine des systèmes
parallèles et distribués.
La distribution de l’intelligence artificielle peut être justifiée par l’une des trois
raisons suivantes :
Les différences entre les systèmes basés sur l’IAD ne se résument pas seulement dans
les deux formes citées auparavant, mais les différences touchent parfois les fonds de
base de ces systèmes. En fait, les questions majeures posées dans ce domaine peuvent
être réparties en trois classes qui représentent les branches de l’intelligence artificielle
distribuée.
du problème sous forme d’un ensemble d’entités qui exécutent des tâches
spécifiques (une pour les tâche d’entretien de la terre, une pour les tâches de
jardinage, une pour la prévention et le traitement et une pour l’entretien des
outils). Bien entendu, une entité spécialisée à l’entretien des outils, par
exemple, possède sa propre objectif (garder les outils en bon état) et possède
des plans pour atteindre cet objectif (entretien régulier, diagnostique de mal
fonctionnement, dépanner les outils). Par rapport à l’approche précédente, il
n’existe pas une décomposition à priori du problème ni une approche générale
de résolution. La solution du problème est émergée de l’interaction entre ces
entités. En conséquence, les problèmes posés dans cette branche consistent
principalement à la coordination entre les entités et l’organisation de ces
dernières pour la résolution efficace des problèmes.
L’Intelligence Artificielle Parallèle (IAP) : Cette branche consiste à la
proposition des solutions pour profiter des avantages des machines parallèles
dans le domaine de l’intelligence artificielle. Plusieurs techniques ont été
apparues dans cette piste comme la réalisation des machines (hardware)
adaptées à l’exécution des logiciels intelligents. Plusieurs machines ont été
conçues pour ce but comme CM-2 (Connection Machine), Semantic Network
Array Processor et IXM2 (Associative Memory Processor). En plus, cette piste
propose des nouveaux paradigmes pour le développement des systèmes
intelligents. En fait, les machines parallèles offrent la possibilité de traitement
des bases de connaissances à grande échelle en temps réel. Le raisonnement à
base de cas, par exemple, nécessite la puissance des machines parallèles pour
pouvoir sauvegarder et traiter le nombre important des cas stockés. En plus,
cette branche propose le développement des langages (comme Parallel
Prolog) permettant l’implémentation des algorithmes parallèles.
Parmi les trois branches de l’IAD, les systèmes multi-agents (SMA) représentent
peut-être la branche la plus ambitieuse. La solution d’un problème, selon cette
approche, consiste à une communauté d’entités autonomes (appelés agents)
travaillant selon des modes d’interaction complexe (coopération, concurrence,
coexistence…etc.) pour atteindre un objectif global.
A notre avis, le succès des systèmes multi-agents est dû, entre autres raisons, à la
nature multidisciplinaires de ces derniers. Comme nous l’avons expliqué déjà dans
Philosophie
Robotique Psychologie
Linguistique Informatique
5.1. Les différences entre les SMA et les logiciels orientés objets
indépendante des autres. L’autonomie des agents signifie que chaque agent
possède le contrôle sur son état et son comportement. L’interaction entre les
agents est basée essentiellement sur l’échange des messages. En conséquence,
le couplage entre les agents est faible. En plus, plusieurs concepts de base des
systèmes multi-agents contribuent à la modularité de ces derniers. On peut
citer notamment, parmi ces concepts, le concept « organisation ». En fait, les
organisations multi-agents sont modélisées, généralement, par des sous-
organisations (des groupes, des coalitions, des hiérarchies…etc.). En
conséquence, les systèmes développés en adoptant cette approche seront plus
modulaire.
La réutilisabilité : la réutilisabilité est une conséquence directe de la
modularité des systèmes multi-agents. En fait, la modularité permet de
réutiliser certains composants d’un logiciel dans un autre logiciel. Dans le cas
des systèmes multi-agents, la réutilisabilité peut être appliquée à plusieurs
niveaux. Naturellement, l’agent est conçu pour être une brique qu’on peut
réutiliser autant que possible. Par exemple, la conception d’un atelier comme
un système multi-agents composé des agents producteurs, des agents
transporteurs et des agents gestionnaires offre la possibilité de réutiliser
certains agents dans d’autres systèmes. Un agent transporteur, dans ce cas,
peut être utilisé dans le développement des chaînes logistiques ou des
systèmes de simulation de trafic routier. En plus, les agents peuvent être aussi
conçus de façon modulaire. Ainsi, on peut réutiliser les composants d’un agent
pour développer un autre agent. Le mécanisme de raisonnement d’un agent est
généralement une composante indépendante du domaine d’application. Il est
possible, donc, de développer un seul mécanisme et de le réutiliser ensuite
pour le développement des agents. En niveau macro, les développeurs peuvent
réutiliser des modèles d’interactions d’agents conçus comme des protocoles ou
des patterns.
La facilité de maintenance : le développement modulaire des systèmes multi-
agents simplifie la maintenance de ces systèmes. On distingue dans la
maintenance des logiciels plusieurs types comme : la maintenance perfective,
la maintenance corrective et la maintenance évolutive. Nous pensons que le
paradigme agent ait un impact positif sur tous ces types de maintenance. Les
systèmes multi-agents sont conçus comme des entités indépendantes avec un
Dr. Toufik MARIR 2015-2016 p. 14
Les Systèmes Multi-Agents
difficile de citer tous les domaines d’application des systèmes multi-agents. En fait,
nous avons choisi de citer dans ce cours les domaines d’application dans lesquels des
applications réelles ont été vu le jour. Ainsi, les systèmes multi-agents ont été
appliqués dans les domaines suivants :
La gestion des processus métier : les décisions prises dans les grandes
entreprises sont basés sur des informations provenant de plusieurs sources.
Le défi réel est de prendre des décisions correctes avec des informations
incomplètes ou obsolètes. Plusieurs recherchent trouvent que les systèmes
multi-agents sont idéaux pour travailler dans ces conditions. Le système
ADEPT est développé pour ce but. Ce système est composé d’un ensemble
d’agents qui modélisent les rôles et les départements d’une entreprise. Bien
entendu, chaque agent offre un ensemble de services. Un agent peut
demander des services d’autres agents à travers un processus de négociation
permettant de fixer le coût, les délais et la qualité du service demandé. Un
processus de négociation terminé avec succès représente un engament entre
les parties de négociation.
Le domaine médical : le domaine médical en générale, et les soins intensifs
chirurgicaux particulièrement se caractérisent par plusieurs attributs
favorisant l’utilisation des systèmes multi-agents. Les systèmes de soins
intensifs sont organisés en équipes avec plusieurs experts qui coopèrent et
partagent de l’information afin d’atteindre leurs objectif. En plus, le niveau
d’expertise des intervenants n’est pas le même. En fait, certains intervenants
n’ont pas les compétences nécessaires pour traiter des situations données. Par
exemple, les infermières ne peuvent pas interpréter les données rassemblées.
Le système GUARDIEN modélise parfaitement ces systèmes. Il est composé
d’un ensemble d’agents permettant la perception des données, le
raisonnement, le contrôle et le transfert des commandes aux effecteurs.
Les systèmes d’informations coopératifs : actuellement, les informations
sont répartis partout (dans les réseaux locaux ou le réseau Internet) avec des
structures et des natures hétérogènes. Les systèmes d’information coopératifs
(SIC) sont des systèmes capables de rechercher, filtrer et fusionner les
informations. Ces systèmes peuvent être exploités dans le domaine financière
(trouver des prix d’action, des informations de bourse,…etc.), le domaine
9. Conclusion
Dans ce chapitre, nous avons vu une introduction générale à l’intelligence artificielle
distribuées, le domaine d’origine des systèmes multi-agents. Ainsi, les trois pistes
essentielles de ce domaine ont été présentées en focalisant sur les systèmes multi-
agents. Les différences entre ces systèmes et les autres paradigmes ont été détaillées
avant de présenter les avantages et les défis liés à ce nouveau paradigme. Ensuite,
nous avons présenté quelques exemples d’application des systèmes multi-agents.
Dans le chapitre suivant, nous allons présenter les concepts de base des
systèmes multi-agents.
En appliquant cette définition sur le monde réel qui l’entoure, nous pouvons
identifier plusieurs exemples de systèmes multi-agents. Votre équipe de football
préférée est un exemple typique d’un système multi-agents. En effet, on peut spécifier
l’ensemble qui caractérise ce système selon la définition de Ferber comme suite :
Un autre exemple des systèmes multi-agents est le département dans lequel vous
étudiez. De la même façon que l’exemple précédent, ce système est caractérisé par :
A notre avis, les SMA purement communicants et les SMA purement situés ne
représentent que des cas extrêmement spécifiques de SMA. En fait, les agents peuvent
être des entités situés dans des environnements empiriques mais leur communication
est restreinte à l’échange de message. Dans ce cas, nous parlons de SMA
communicant. De la même manière, les SMA situés sont des systèmes multi-agents
composés d’agents positionnés dans l’environnement.
Il est important de noter que l’environnement sur lequel cette classification est
basée, représente l’environnement logique de SMA. Bien entendu, les agents logiciels
purement communicants existent dans des environnements informatiques. La
différence entre les deux notions sera détaillée ultérieurement dans ce chapitre.
Bien que les systèmes multi-agent soient un modèle des systèmes distribués,
l’exécution des agents doivent être cohérent. Ainsi, une question fondamentale dans
ce domaine consiste au choix d’un type de contrôle de différents agents qui
composent le système. Il existe dans la littérature spécialisée deux approches
différentes de contrôle des agents :
Source de connaissances
Source de connaissances
Source de connaissances
Mécanisme de contrôle
Acteur Acteur
Acteur
Acteur
Acteur
3. Les agents
Les agents représentent sans doute la brique de base utilisée pour la réalisation des
SMA. En plus, nous pouvons considérer l’agent comme la notion la plus polémique
dans ce domaine. Cette section est consacrée à la présentation des agents, de leurs
caractéristiques et leurs types.
littérature spécialisée les définitions qui gardent leurs validités jusqu’au nos jours.
Ainsi, un agent peut être défini comme étant :
Cependant, les agents réactifs, qui représentent un type d’agents, exécutent des
comportements en réponse à des évènements d’environnement sans aucune
représentation interne de cet environnement. En effet, dans ce type d’agent, il n’existe
pas des connaissances internes. De la même manière Hays-Roth a exigé le
fonctionnement continu de l’agent. Cependant, un agent peut exécuter une tâche
déterminée avant de cesser sans fonctionnement.
un joueur qui change son comportement ou son but selon la situation. Afin
d’assurer cette flexibilité, l’agent doit être doté au moins par trois
caractéristiques :
o La réactivité : la capacité de l’agent de percevoir son
environnement et répondre aux différents changements apparus
dans le temps adéquat.
o La pro-activité : la capacité de l’agent de prendre l’initiative en
démontrant des comportements orientés objectifs.
o La sociabilité : la capacité de l’agent d’interagir avec les autres
agents en utilisant un langage de communication.
Caractéristiques des agents spécifiques : comme nous l’avions noté
auparavant, les domaines d’applications des SMA sont très divers. En
effet, certaines applications exigent des caractéristiques optionnelles afin
d’atteindre leurs objectifs. Par exemple, les agents exploités dans
l’Internet ont la capacité de se déplacer entre les machines afin d’exécuter
leurs requêtes. La mobilité est l’une des caractéristiques de ce type
d’agents. Les différentes propriétés des agents sont souvent utilisées
comme critères de classification. Ainsi, on trouve dans la littérature des
classifications basées sur la mobilité, l’adaptabilité ou la rationalité des
agents. Les caractéristiques spécifiques les plus répandues sont :
o La mobilité : capacité de l’agent de déplacer dans son
environnement (l’environnement peut-être un réseau
informatique).
o L’adaptabilité : capacité de l’agent de changer son
comportement, sa structure ou ses buts selon la situation actuelle.
o La rationalité : capacité de l’agent d’atteindre ses objectifs avec
le moindre coût. Un agent rationnel n’exécute pas des
comportements contradictoires avec ses buts.
o L’intentionnalité : l’agent possède une représentation explicite de
ses états mentaux.
o La véracité : l’agent ne communique pas des fausses
informations.
La figure 2.3 présente les catégories principales des agents selon leurs
caractéristiques.
Caractéristiques Réactivité
Caractéristiques des
essentielles des agents Pro-activité
agents
intelligents Sociabilité
Les caractéristiques des agents citées dans la section précédente peuvent être
considérées comme des critères de classification des agents. En effet, on peut
classifier les agents aux agents mobiles et agents fixes selon le critère de la mobilité.
En plus, le critère de la communication peut être servi pour classifier les agents en
agents avec communication directe ou des agents avec communication indirecte
(appelés des agents situés). On peut, aussi, choisir le niveau de coopération des
agents comme un critère de classification. Dans ce cas, nous trouvons des classes
d’agents allant des agents totalement coopératifs aux agents totalement
antagonistes. Dans cette section nous allons détailler une classification basée sur le
critère de la granularité des agents parce qu’elle est la classification la plus adoptée
par les chercheurs de domaine. Par la granularité, nous entendons la complexité des
comportements et des connaissances des agents. Dans cette section nous ne
présentons que les principes des diverses classes d’agents. La présentation des
modèles d’agents de chaque classe fera l’objet de troisième chapitre. Sous ce critère,
nous trouvons trois classes des agents :
Les agents cognitifs : cette classe des agents fait partie de l’intelligence
artificielle symbolique. Ainsi, l’agent possède une représentation
symbolique de son environnement, des autres agents, des actions et des
états internes de l’agent. Sachant que les buts de l’agent sont modélisés
comme des états internes, le raisonnement de l’agent consiste à trouver
l’ensemble des actions possibles pour satisfaire ses buts. Ainsi, le
problème essentiel dans cette catégorie des agents devient un problème de
planification. Bien entendu, il est possible de prendre en compte plusieurs
attributs dans le processus de raisonnement comme les croyances de
l’agent sur les croyances des autres agents ou l’historique de l’exécution
de l’agent. Cependant, l’intégration de divers attributs dans le processus
de raisonnement peut compliquer ce dernier. En conséquence, la
performance devient une question pertinente dans cette classe d’agents.
Finalement, on note qu’un système multi-agent de cette catégorie est
composé d’un petit nombre d’agents hétérogènes.
Les agents réactifs : les agents réactifs sont basés sur l’intelligence
artificielle réactive. Cette école de l’intelligence artificielle est basée sur la
possibilité de concevoir des comportements intelligents à partir de
comportements simples. En effet, l’intelligence est un phénomène
émergent de l’interaction des entités simple. L’exemple de fourmis est un
exemple typique dans ce cas. En fait, le comportement des fourmis est un
comportement simple qui n’est pas doté d’une vraie intelligence.
Cependant, l’interaction des fourmis produit des comportements
intelligents. En conséquence, les agents réactifs sont des agents qui ne
possèdent ni une représentation de leur environnement ni un vrai
mécanisme de raisonnement. En plus, leur comportement est modélisé par
des règles de type stimulus-réponse qui produisent des actions à partir de
perceptions. Ce comportement est souvent modélisé par des machines à
états finis. A l’inverse des agents cognitifs, un système multi-agents basé
sur les agents réactifs est constitué d’un grand nombre d’agents
homogènes.
Les agents hybrides : la division des agents en deux classes ne représente
qu’un vue idéaliste. En fait, ces deux classes ne présentent que les cas
extrêmes. En réalité, un agent nécessite des capacités réactives et des
Dr. Toufik MARIR 2016-2017 p. 33
Systèmes Multi-Agents – Principes Généreux
Un agent, par définition, est une entité qui agit sur un environnement. En effet,
l’environnement est un composant important dans les systèmes multi-agents. Par
environnement on entend les objectifs passifs qui composent le monde de
l’environnement. Généralement, l’agent évolue dans ce monde. Par exemple,
l’environnement d’un joueur est le terrain dans lequel le jeu se déroule. De point de
vue abstrait, ce terrain peut être modélisé par l’ensemble des objets passifs qui le
compose (les tribunes, le ballon,…etc.). Il est important de noter que la passivité des
objets de l’environnement ne signifie pas que ce dernier est aussi passif. En fait,
l’environnement peut être considéré comme une entité active et dynamique. Par
exemple, des lois de l’environnement peuvent permettre le changement de l’état de ce
dernier sans l’influence d’un agent. Dans le cas de notre exemple (football), le ballon
peut changer son état (changer son mouvement ou sa direction) sans l’influence d’un
joueur.
Afin de limiter cette confusion, un environnement peut être modélisé par une
architecture en trois couches. Ainsi, la couche la plus basse représente l’infrastructure
matérielle comme l’espace mémoire, les processeurs et les réseaux informatiques
utilisés pour le fonctionnement du système. Dans la deuxième couche, nous pouvons
trouver la plateforme logicielle utilisée pour la mise en œuvre de ce système. Cette
plateforme peut être composée par le système d’exploitation, la machine virtuelle ou
le middelware qui assurent la bonne exécution du système développé. La troisième
couche représente l’environnement logique du système. Cet environnement logique
est composé de l’ensemble des objets passifs qui modélisent le système. La figure 2.4
donne une présentation de cette modélisation en couche d’environnements multi-
agents.
Système d'exploitation
Environnement Plateforme logicielle Machine virtuelle
Middelware
5. L’organisation
terme, en adoptant la vue macro nous devrons traiter la question qui fait quoi mais pas
comment.
Le modèle AGR est basé sur trois concepts centraux : Agent, Groupe et Rôle. Ce
modèle ne pose aucune contrainte sur l’architecture d’un agent. Un agent est
simplement une entité interagissant autonome qui exerce des actions dans un contexte
social. Cet agent appartient à un ou plusieurs communautés appelées des groups. Un
groupe. Un groupe est le terme générique utilisé pour désigner une communauté
d’agents en relation. En plus, un agent peut jouer un rôle qui est une représentation
abstraite d’une fonction du groupe. La figure 2.5 présente le modèle AGR.
* Agent *
1..*
1..*
Groupe Rôle
Appartient à 1..*
agrégation d’agents en présentant les missions autorisées et les relations entre les
différents rôles. Il est important de noter que le modèle MOISE+ a adopté l’idée de
distinction entre la structure organisationnelle et l’organisation concrète. Ainsi, une
structure organisationnelle est définit par l’ensemble des groupes, l’ensemble des
liens organisationnels et l’ensemble des rôles. Par contre, l’organisation concrète
(appelé dans le modèle MOISE+ l’entité organisationnelle) est une instance de la
structure organisationnelle et elle est définie par la structure organisationnelle, les
instances de groupes, les instances des relations organisationnelles et les couples
agent-rôle.
6. L’interaction
Dans son livre, Ferber a présenté une description détaillée de différentes formes
d’interaction. Sa classification est basée sur trois critères : la compatibilité de buts, la
suffisance de ressources et la suffisance de compétences. La compatibilité des buts
désigne la possibilité d’atteindre les différents buts des agents. Par contre, si deux buts
sont incompatibles, les agents peuvent atteindre seulement un seul but. En plus, cette
classification fait la différence entre les ressources et les compétences. Les ressources
désignent les différents moyens utilisés pour réaliser une tâche. Par contre, les
compétences sont les attitudes d’un agent pour la réalisation d’une tâche. Le tableau
2.1 résume les formes d’interaction proposées par Ferber.
6.2. La communication
Avant Austin, la linguistique étude la capacité de décrire la réalité par les mots et
le degré de la véracité d’un énoncé. Par exemple, si on dit qu’il fait froid, le but est de
vérifier à quel point le terme « froid » décrit la réalité. Cependant, Austin a remarqué
que cet énoncé « il fait froid » possède pratiquement trois actes élémentaires.
Le langage KQML (la version 1997) propose 37 performatives réparties sur trois
catégories :
La sémantique de FIPA-ACL est définit par un langage modal (appelé SL). Ainsi,
le modèle mental de l’agent est basé sur la représentation de trois attitudes primitives:
En plus, les opérateurs Feasible, Done et Agent sont introduit pour raisonner sur
les actions des agents. La sémantique de ces opérateurs est définit comme suite :
Le langage FIPA-ACL est formalisé par l’association à chaque acte une pre-
condition de faisabilité et l’effet rationnel. Comme exemple, la figure 2.7 montre la
sémantique formelle de la performative inform. En fait, un agent i informe un agent j
par une proposition P si (la pre-condition de la faisabilité) l’agent i croit la proposition
P (il est évident qu’un agent ne peut pas informe un autre agent par une proposition
sauf s’il a cette proposition) et l’agent i croit que l’agent j n’a pas ni cette proposition
ni sa négation de façon sûre ou façon incertaine. L’effet rational de l’envoie de ce
message est que l’agent j va croire la proposition P.
P
Figure 2.7 : La sémantique formelle de l’acte inform.
Bien entendu, l’interaction entre les agents ne se limite pas au simple échange
d’un message. L’interaction représente un enchaînement conversationnel combiné de
plusieurs messages. La modélisation de cet enchaînement est basée sur l’une de deux
approches :
Dans ce chapitre nous avons présenté les concepts de base des systèmes multi-agents.
En fait, les systèmes multi-agents, en tant qu’une interaction de plusieurs domaines,
proposent plusieurs concepts. Le problème de base est comment peut-on représenter
ces concepts dans un seul framework. L’approche voyelle adopté ici, permet de
représenter les systèmes multi-agents en utilisant quatre concepts de base : l’agent,
l’environnement, l’interaction et l’organisation. Ce chapitre est consacré à la
présentation de ces concepts.
8. Questions de compréhension
a) Présenter des exemples de systèmes multi-agents.
b) Classifier les exemples présentés selon le critère d’ouverture.
c) A votre avis, quelle est la caractéristique la plus importante pour les agents
intelligents ?
d) Supposant qu’une application de jeux football a été développée en utilisant le
paradigme agent, quel est l’environnement dans ce cas ?
e) Quel est la différence entre l’environnement d’un agent et l’environnement
d’un système multi-agent ?
f) Pourquoi l’interaction est importante pour les systèmes multi-agents ?
g) Formaliser les actes de langages Request et Cancel.
h) Donner des exemples de situations d’interaction selon la classification de
Ferber.
i) Modéliser l’organisation du département d’informatique selon le modèle
AGR.
L’agent est un concept central dans le domaine des systèmes multi-agents. Cependant,
ce concept est caractérisé par plusieurs caractéristiques avec des degrés d’importances
différents. Dans certains cas, ces caractéristiques peuvent même être contradictoires.
Par exemple, la pro-activité désigne la capacité de l’agent de rechercher la réalisation
de ses objectifs. Cependant, un agent de cette caractéristique peut ignorer des
événements importants provenant de son environnement. C’est la réactivité qui assure
le traitement de ces événements. En conséquence, l’intégration de ces caractéristiques
dans une seule entité (l’agent) n’est pas une question simple. En fait généralement
recours au modèle (ou les architectures) pour présenter les composants essentiels d’un
agent.
Une architecture d’un agent est la structure logicielle (ou matérielle) qui, à partir
d’un ensemble d’entrées, produit un ensemble d’action sur l’environnement ou sur les
autres agents. En d’autre terme, une architecture d’un agent est une méthodologie
particulière pour la construction d'un agent. Elle spécifie comment les agents peuvent
être décomposés à une construction d'un ensemble de modules et comment ces
modules interagissent. L'ensemble total des modules avec leurs interactions détermine
comment les données perçues et l'état interne actuel de l'agent déterminent ses actions
et ses états futurs.
Par une architecture abstraite, nous désignons une architecture qui ne présente pas des
modules concrets pour l’implémentation de l’agent. Ces architectures sont,
généralement, représentées par des spécifications algébriques ou logiques.
L’ensemble des exécutions possibles d’un agent sont représenté par un ensemble
R. Dans cet ensemble, on peut distinguer deux sous ensembles spécifiques RAC
(ensemble de séquences d’exécution qui se terminent par des actions) et RE (ensemble
de séquences d’exécution qui se terminent par des états).
L’environnement est défini donc par le triple Env=(E, e0, τ) où E est l’ensemble
des états de l’environnement, e0 est l’état initial et τ est la fonction de transformation
de l’environnement.
Formellement, un agent est défini comme une fonction qui donne une action à
partir d’une séquence qui se termine avec un état.
Ag = RE Ac.
Formellement, une séquence d’exécution (e0, a0, e1,….) est une séquence
d’exécution possible de l’agent Ag dans l’environnement Env si:
Exemple illustratif
Afin de montrer cette architecture, nous présentons un exemple d’une salle avec
deux lampes électriques manipulées par deux interrupteurs. Supposant que la
première lampe (L1) est une lampe ordinaire alors que l’autre lampe (L2) est une
lampe colorée (elle donne des lumières avec des couleurs différentes, par exemple :
jaune, orange et rouge). La manipulation du premier interrupteur (I1) permet de
contrôler la première lampe. La manipulation du deuxième interrupteur (I2) permet de
manipuler la deuxième lampe. A chaque manipulation de l’interrupteur (I2), la lampe
deuxième change son état selon le cycle: éteint, jaune, orange, rouge, orange, jaune,
éteint.
Allumée, J pour Jaune, O pour Orange et R pour Rouge). En plus, l’ensemble des
actions possibles dans ce système sont Ac={I1, I2} pour la manipulation de
l’interrupteur I1 et I2 respectivement.
On note que cet exemple nous montre que le résultat de la fonction est un seul
état parce que l’environnement est déterministe. Dans d’autres cas, il est possible de
trouver plusieurs états possible à l’issu de l’exécution d’une fonction de
transformation de l’environnement.
Un environnement est maintenant spécifié par, l’état initial (par exemple e0= (T,
T)), l’ensemble des états possible de l’environnement (E) et la fonction qui transforme
l’état de cet environnement τ. On représente cet environnement par Env=(E, e0, τ).
Agent
voir action
Environnement
Supposant maintenant le cas d’un agent qui prit en considération son historique
lors de prise de décision. Comment peut-on modéliser l’architecture abstraite de cet
agent ?
En fait, l’historique de cet agent peut être sauvegardé dans un état interne. En
conséquence, les perceptions et l’état actuel influent sur l’agent en engendrant un
nouvel état interne. La fonction de décision « action » devient donc basée sur cet état
interne. La figure 3.2 montre cette architecture.
Agent
voir action
suivant état
Environnement
Après la présentation des architectures abstraites d’agents, nous présentons dans cette
section quelques architectures concrètes. Les architectures concrètes présentent les
choisir parmi les intentions générées une intention à poursuivre. Le choix est effectué
par le processus filtre en utilisant les croyances, les désires et les intentions de
l’agent. Finalement, l’agent va transformer cette intention à un plan en utilisant une
bibliothèque de plan si elle existe. Bien entendu, les croyances de l’agent doivent être
prises en considération lors de la planification parce que les plans sont généralement
représentés sous formes des plans partiels qui nécessitent des détailles pour être
exécutables. Par exemple, un plan déplacement d’un objet de la position (x, y) vers la
position (w, z) est constitué des actions suivant : déplacer à la position (x, y), prendre
l’objet, déplacer à la position (w, z) et mettre l’objet. Maintenant, si l’agent veut
déplacer un objet de la position (x1, y1) vers la position (x2, y2) alors il doit prendre en
considération la position réelle de l’objet et la position de but. Ces dernières positions
sont sauvegardées dans les croyances de l’agent. Naturellement, l’exécution des
actions de l’agent vont mettre à jour les croyances de ce dernier.
Plusieurs exemples réels peuvent être appliqués sur les agents BDI. On peut
considérer tous les êtres humains comme des agents cognitifs. A titre d’exemple, un
joueur de football professionnel est un agent BDI. Ce dernier possède plusieurs
objectifs : des objectifs humains de base (garantir sa santé, sécurité,…etc.), des
objectifs sociaux (garantir les besoins de sa famille, préserver et enrichir les relations
humaines,…etc.) et des objectifs professionnels (faire évoluer ses compétences,
consacrer pour son équipe, jouer pour sa sélection nationale,…etc.). Bien entendu, ces
objectifs n’ont pas le même degré d’importance. A chaque instant, le joueur va
prendre en considération des nouvelles croyances pour choisir parmi ses objectifs, les
buts les plus pertinentes. Ensuite, il va construire des plans pour la réalisation de ces
buts.
Environnement
Révision des
croyances
Croyances
Processus de
décision
Désires Intentions
Filtre
Bibliothèque Plan
de Plan
Exécution
Environnement
Supposant qu’on a un joueur attaquant qui estime que son intention est
d’exploiter une tentative d’attaque pour marquer un but. La question pertinente dans
le modèle BDI c’est combien de temps l’agent doit accrocher à cette tentative ou
intention ? Supposant que l’adversaire a exploité cette tentative d’attaque pour faire
une contre-attaque, est ce que l’attaquant dans ce cas doit retourner à la zone de son
équipe pour aider les défenseurs ou bien il attend dans la zone de son adversaire en
estimant qu’il y a un espoir pour compléter sa tentative initiale. La réponse de cette
question est liée à la stratégie d’obligation. En fait un agent qui suit une stratégie
d’obligation aveugle, il maintient ses intentions jusqu’elles soient réalisées. Par
contre, un agent avec une stratégie d’obligation limitée va maintenir ses intentions
jusqu’elles soient réalisées ou bien qu’elles soient impossible. Dans la troisième
stratégie (stratégie d’obligation ouverte), l’agent va maintenir ses intentions tant
qu’elles sont encore des désires.
Nous avons expliqué dans le chapitre précédent que les agents réactifs sont des
entités faisant des comportements simples. Généralement, ces comportements sont de
type stimulus-réponse. L’intelligence émerge de l’interaction entre les agents et
l’environnement. Brooks, l’un des chercheurs les plus connus dans l’école réactive de
Cette architecture est composée d’un ensemble de modules sachant que chacun
est responsable de la réalisation d’une tâche simple. On appelle ces modules des
modules de compétence parce que chaque module est responsable de l’exécution d’un
comportement spécifique. La figure 3.5 présente cette architecture. On peut remarquer
que les modules sont organisés en couches tel que chaque inferieure à une priorité
plus élevée que les couches supérieures. En fait, chaque couche a une tâche plus
simple et plus urgente par rapport aux tâches de couches supérieures. Pour assurer un
tel contrôle de couches, une couche inferieure peut supprimer les entrées d’une
couche supérieure pour inhiber son exécution.
Couche_3
Couche_2
Couche_1
Couche_0
Chaque tâche est décrite par un ensemble de règle de comportement. Une règle de
comportement est spécifiée par une condition et une action. La condition est activée
par la perception de l’environnement et l’action change l’état de cet environnement.
Une architecture hybride est une architecture qui combine les comportements
pro-actifs de l’agent et les comportements réactifs. Les comportements pro-actifs sont
des comportements exécutés lorsque l’agent prend l’initiative. Ils sont donc des
comportements dirigés par des buts. Par contre, les comportements réactifs sont des
comportements dirigés par les changements de l’environnement. Combiner les deux
comportements peut nous donner un agent avec plus de capacités. En fait, la
décomposition des agents aux agents cognitifs et agents réactifs est une
décomposition irréaliste. Un être humain comme un exemple d’un agent est un agent
à la fois cognitif et réactif.
Couche de modélisation
Couche de planification
Couche réactive
Module de contrôle
Perception-Action
Bien que DIMA a été proposé initialement comme un agent hybride, il a été
étendu ensuite avec des capacités d’adaptation. L’approche adoptée dans ce modèle
consiste à l’utilisation d’un niveau méta-comportement capable de contrôler
l’exécution des comportements de l’agent. Ainsi, ce module permet d’une part de
gérer les interactions entre les modules qui composent l’agent, et d’autre part
d’adapter le comportement de l’agent en temps réel aux changements apportés par
l’environnement. La figure 3.8 présente une vue abstraite de l’agent DIMA.
Le niveau méta-comportement
Agent
Environnement
qui exige une réponse avant certain temps appelé deadline. Afin de satisfaire les
contraintes temps réel, en estime généralement le temps d’exécution du programme au
pire de cas. Nous devrons concevoir un système dont son exécution au pire de cas est
inferieur au deadline. Cependant, cette technique est infaisable dans les systèmes
basés sur l’intelligence artificielle à cause de l’impossibilité de prévoir le temps
d’exécution d’un système intelligent. Les systèmes multi-agents en tant qu’un
paradigme de l’intelligence artificielle souffrent aussi de cet inconvénient. Ainsi,
plusieurs modèles d’agent ont été proposés pour prendre en considération les
contraintes temps réel. L’agent ARTIS est l’un de ces modèles.
Le modèle ARTIS présente une extension de modèle tableau noir adapté pour
des environnements temps réel stricts. L'architecture de cet agent est constitué de
deux niveaux des agents : des agents nommés ARTIS Agent (AA) et un ensemble des
agents nommés in-agent (pour Internal Agent).
En accord avec la définition des agents due à Russell, ARTIS est un agent
autonome, réactif, proactif avec continuité temporelle. Autres caractéristiques
(comme la communication) peuvent influencer sur le comportement temps réel strict
de cet agent. Cependant, c'est le concepteur qui décide les caractéristiques de l'agent
selon l'application visé.
Le fonctionnement d'un in-agent est présenté dans la Figure 3.10. En effet, après
la perception de nouvelles informations provenant de l’environnement, un agent
interne va mettre à jour ces connaissances. Ensuite, il va activer le niveau de contrôle
réflexe afin de choisir une action de réflexe à exécuter. Après la spécification de
l’action de réflexe, l’agent va essayer d’améliorer son raisonnement en exécutant le
contrôle cognitif. Ce niveau a pour but de choisir des actions cognitives de meilleure
qualité. A la fin de deadline, l’agent va exécuter l’action cognitive si le raisonnement
de ce niveau a été terminé, sinon il exécute l’action réflexe. Sachant que l’exécution
des agents internes est périodique, l’agent interne va reprendre ce cycle après une
période D.
5. Conclusion
Dans le chapitre suivant, l’interaction entre les agents va être abordée. Ainsi, on
va présenter des modèles de coordination d’agents cognitifs.
6. Questions de compréhension
a) Modifier la définition abstraite de l’agent (présentée dans la section 2) pour
proposer une architecture d’un agent indépendant de son historique avec un
comportement déterministe.
b) Proposer une architecture abstraite d’un agent rationnel.
c) Prenant l’exemple d’un étudiant avec les besoins d’assister au cours, au TD,
au TP, d’amuser, de faire ses devoirs et de satisfaire ses besoins de base
(manger par exemple), modéliser cet agent par le modèle BDI.
d) Donner des exemples de situations où certains états de l’environnement soient
indiscernables pour l’agent.
e) Modéliser un robot explorateur comme un agent InteRRaP.
f) Pourquoi l’agent DIMA est un agent adaptatif ?
g) Est-ce qu’on peut considérer DIMA comme un agent temps réel ?
L’interaction entre les agents est une dimension importante dans les systèmes
multi-agents. En fait, un agent est conçu souvent avec des capacités limitées. En
conséquence, un agent sans interaction sera une entité handicapée dans le sens qu’elle
ne peut pas atteindre tous ses objectifs. Cependant, l’intégration de l’interaction entre
les agents n’est pas une tâche simple. Sachant que les objectifs des agents d’un
système peuvent être incompatibles ou contradictoires, l’interaction de ces derniers
peut créer des situations chaotiques ou des comportements nuisibles. Ce chapitre est
consacré à la présentation des formes de l’interaction et les techniques qui peuvent
assurer une meilleure interaction en éliminant les situations indésirable. Dans la
première section de ce chapitre nous allons présenter les différentes formes de
l’interaction entre les agents. Ensuite, nous présentons dans les sections 3 et 4 les
techniques de la négociation et de la coopération respectivement. Finalement, nous
allons finir ce chapitre par une conclusion.
Malgré l’importance de l’interaction entre les agents, mais comme presque tous
les concepts de ce domaine il n’existe pas une classification unique aux formes
d’interaction des agents. En fait, nous avons présenté dans le deuxième chapitre de ce
cours plusieurs situations d’interaction en prenant en compte trois critères : la
compatibilité des buts, la suffisance des ressources et la suffisance des compétences.
Cependant, ces formes peuvent être groupées dans un nombre limité de classes. Une
simple analyse de ces situations montre que certaines formes sont en fait des formes
complexes composées de formes plus primitives. A titre d’exemple, une situation de
compétition collective pure est en fait une situation où l’agent est d’une part en
relation conflictuelle avec certains agents et en situation de coopération avec d’autres
agents d’autre part. L’exemple de la bataille militaire présentée dans le chapitre
deuxième montre cette situation. L’agent est en fait en deux relations différentes avec
les autres agents. En conséquence, il est possible de classifier les interactions entre les
agents en formes primitives.
Il est important de noter que ce chapitre est consacré est la coordination des
agents cognitifs. En conséquence, l’interaction est un processus conscient effectué par
les agents impliqués. Suivant ce critère, ce chapitre va omettre les formes
d’interaction chez les agents réactifs. En fait, l’interaction entre les agents réactifs
n’est pas intentionnelle mais c’est le résultat des traces laissés involontairement sur
leur environnement.
3. La négociation
Comme nous avons vu aux chapitres précédents, les agents sont des entités
autonomes en interaction. En conséquence, chaque agent va essayer de satisfaire ses
buts. Cependant, l’incompatibilité des buts des agents peut empêcher tous les agents
d’atteindre leurs buts. Par exemple, dans un système économique, le but de vendeur
est vendre sa marchandise avec le prix le plus élevé. En même temps, le client
cherche à acheter cette marchandise avec le prix le plus bas. Il est impossible dans ces
cas de satisfaire le client et le vendeur en même temps. On appelle cette situation, une
situation conflictuelle. La négociation est un mécanisme inspiré du modèle des
humains pour la résolution des conflits.
d’améliorer les gains d’un agent dans une stratégie alternative, alors un
autre agent va perdre de son gain précédent.
L’équilibre : nous avons dit auparavant qu’un agent en situation
d’interaction doit être capable de raisonner sur les actions possibles des
autres agents. Dans les guerres, les jeux stratégiques, l’économie ou le
football, un agent doit mettre en considération les stratégies possibles de
son adversaire pour augmenter ses bénéfices. Cependant, la question
pertinente est comment-peut on identifie les stratégies des adversaires.
La réponse de cette question est proposée dans le domaine de théorie de
jeu dans le théorème de l’équilibre de Nash. On dit que deux stratégies
sont en équilibre de Nash, si le choix de la première stratégie par un
agent rend la deuxième stratégie le meilleur choix pour le deuxième
agent. Par contre, si un agent a choisi la deuxième stratégie, alors la
première stratégie sera le meilleur choix pour l’autre agent. Par exemple,
dans le cas d’un match de football, si une équipe battue a décidé
d’adopter une stratégie d’attaque pour marquer des buts, la deuxième
équipe doit adopter une stratégie de défense pour garder ce résultat. Une
situation d’équilibre est importante parce qu’il n’existe pas d’intention
de changer l’équilibre par n’import quel agent. Cependant, le problème
posé dans les interactions entre les agents est l’existence des scénarios
qui n’acceptent pas un équilibre de Nash ou l’existence des scénarios qui
acceptent plusieurs situations d’équilibre de Nash.
La simplicité et efficacité de calcul : un protocole est implémenté sous
forme d’un programme distribué. Le raisonnement sur toutes les
situations et les stratégies possibles peut compliquer les calcules. Il est
même possible dé générer des situations d’explosion combinatoire dans
le but de chercher une stratégie optimale. Ainsi, l’un des critères
d’évaluation des protocoles de négociation, on trouve la simplicité. Par
la simplicité on entend la facilité des agents d’identifier la meilleure
stratégie. En plus, les ressources de calcul (temps de calcul, espace de
mémoire,…etc.) utilisées pour déterminer la stratégie optimale doivent
être raisonnables.
entend parfois dans les médias qu’un supporteur ait acheté des chaussures de son
joueur préféré par des millions de dollars. Réellement, la valeur de cet objet est
estimée de cette façon juste par l’agent concerné. Les autres agents peuvent même
considérer ce comportement comme absurde. Finalement, il existe des objets avec des
valeurs corrélées. Dans ce cas l’objet possède une valeur privée et commune à la fois.
Par exemple, un collectionneur d’objets rares peut acheter un objet qui entre dans son
centre d’intérêt en estimant de le vendre ensuite s’il trouve une affaire qui mérite.
Dans ce cas, le collectionneur doit prendre en compte la valeur privé de l’objet mais il
ne doit pas aussi d’ignorer sa valeur commune.
ou entre dans ses capacités, alors il annonce qu’il achète l’objet. Ainsi,
l’initiateur déclare cet agent vainqueur avec le prix de ce tour. Ce protocole
est équivalent d'enchère premier-prix offre-cachée. Dans notre exemple
précédent de ente des téléphones portables, l’initiateur commence par
l’annonce de l’objet et un prix (par exemple « type = Galaxy S4, prix =
2000 »). Ensuite, il va diminuer progressivement le prix à chaque tour (par
exemple, 1900, 1850, 1800, 1700, 1600,..etc). Quand l’initiateur propose un
prix intéressant pour un participant, ce dernier annonce qu’il achète l’objet.
Par exemple, au tour « i » l’initiateur propose un prix « 1200 » qui est
intéressant pour le participant p2. En conséquence, p2 annonce qu’il a
acheté l’objet et il paye 1200. Comme dans le cas du protocole précédent, il
n’existe pas une stratégie dominante. Un participant en écoutant un prix
intéressant peut se comporter de deux différentes manières. Premièrement,
il annonce qu’il achète l’objet mais dans ce cas il est possible que les prix
intéressants des autres agents sont encore loin. Donc, il aura pu patienter
pour acheter l’objet avec un prix inférieur. Par exemple p2 peut acheter
l’objet par un prix de 1200, mais p1 peut l’acheter par 900 et p3 par 850.
Pourquoi le participant achète l’objet par 1200, alors qu’il aura pu l’acheter
par 950 ou 1000 en attendant seulement les tours suivants ? Dans le
deuxième cas, le participant choisi de patienter, mais comme il ignore les
ressources et les valeurs privées des autres agents, il pourra perdre l’objet.
Dans notre exemple, l’initiateur annonce le prix 1200 qui intéressant pour
le participant p2, mais ce dernier va choisir de patienter. Ensuite, à chaque
prix, le participant décide de patienter en souhaitant que les prix
intéressants pour les autres participants sont loin. En arrivant au prix 900, le
participant p1 peut annoncer qu’il achète l’objet. En conséquence, le
participant p2 perd l’objet malgré qu’il a pu l’acheté.
Enchère Vickery (deuxième-prix offre-cachée) : ce protocole est
similaire au protocole de premier-prix offre cachée, sauf que le gagnant ne
paye pas le prix qu’il proposé mais il maye le prix de deuxième proposition
reçue par l’initiateur. Ainsi, un initiateur commence par l’annonce de
l’objet et la valeur de réservation (par exemple, « type= Galaxy S4, prix =
1000 »). Ensuite, il commence la réception des propositions. Supposant
qu’après le deadline l’initiateur a reçue les propositions des participants p1,
Dr. Toufik MARIR 2016-2017 p. 86
Les Systèmes Multi-Agents
p2 et p3 avec les prix 1100, 1150 et 1050. Dans ce cas, l’initiateur annonce
que p2 est le vainqueur parce qu’il a proposé le plus grand prix. Mais p2
doit payer 1100 (le deuxième prix proposé) au lieu de payer sa proposition.
Malgré que ce protocole semble illogique pour les communautés humaines
mais il porte une avantage importante qui le rendre le plus adéquat pour les
agents. En fait, en appliquant ce protocole, un agent doit adopter la stratégie
suivante : il propose toujours la valeur privée de l’objet. Si sa proposition
est gagnante, alors le participant n’estime pas qu’il ait surévalué l’objet
parce que réellement il va payer un prix moins de sa proposition. Si la
proposition d’un participant est battue, alors il ne peut pas estime qu’il a pu
gagner en proposant un prix plus élevé parce qu’il a proposé son grand prix
possible. Cependant, ce protocole souffre aussi de problème concernant la
confiance à l’initiateur. Ce dernier peut annoncer que le gagnant est p2 mais
le prix à payer est 1145 parce que les offres sont cachées et le participant p2
ne sait pas la deuxième proposition.
3.2. L’allocation des tâches par redistribution
Afin de distribuer les tâches sur l’ensemble des agents ont définit une rencontre
dans un domaine orienté tâche. Une rencontre est un ensemble des ensembles de
tâches sachant chaque ensemble représente les tâches alloués à un agent spécifique.
Formellement, on écrit une rencontre R = {E1, E2,…En} tel que Ei est l’ensemble des
tâche allouées à l’agent Agi.
Le problème posé dans une telle rencontre est la possibilité de redistribuer les
tâches pour trouver une distribution plus intéressante pour les agents. Par exemple,
dans l’exemple des voisins la rencontre est R {E1={T1, T3}, E2{ T2, T4, T5}} tel que Ti
représente l’accompagnement de l’enfant Ci. Supposant que l’école C3 est dans le
route de l’école C1. Dans ce cas, il sera plus intéressant pour les agents de redistribuer
les tâches tel qu’un voisin accompagne les enfants C1, C3 et C5 aux écoles S1 et S3
respectivement et le deuxième enfant accompagne le reste des enfants à l’école S2.
Ainsi, les agents doivent négocier entre eux pour arriver à cette réallocation.
On appelle une réallocation des tâches une affaire. Ainsi, une affaire dans un
système composé de deux agents est A = {D1, D2}, sachant que cette redistribution ne
doit pas omettre n’importe quelle tâche. En conséquence, D1 U D2 = E1 U E2.
Pour les deux agents, le bénéfice d’adopter une affaire A1 est au moins
égale au bénéfice d’adopter l’affaire A2
Bien entendu, un agent ne propose pas une affaire qui n’est pas utile pour lui. Donc, si
l’autre agent trouve que cette proposition est bénéfique pour lui que son propre
affaire, il va adopter cette proposition. Si chaque affaire proposée par un agent et plus
bénéfique à l’autre agent que sa propre proposition donc on adoptera une au hasard. Si
aucun accord n’est atteint, alors on passe au tour suivant. Dans ce nouveau tour aucun
agent n’a le droit de faire une proposition qui est moins préférée par l’autre agent que
l’affaire qu’il a proposé au tour précédent.
4. La coopération
Les relations entre les agents ne sont pas toujours des relations conflictuelles.
Au contraire, les relations des agents peuvent être aussi des relations positives. Par
des relations positives, on entend l’augmentation de synergie des agents ou la gestion
des interdépendances des tâches de l’agent. En fait, l’existence de ces relations est
justifie par l’inexistence d’un agent qui possède toutes les capacités et les
connaissances pour la résolution du problème. Les agents dans ces situations font
recours aux techniques de coopération. Généralement, on parle de coopération quand
il n’existe pas une situation conflictuelle. Par exemple, afin de rédiger un papier
Plusieurs techniques ont été proposées pour assurer la coopération des agents.
Dans le reste de ce chapitre, nous présentons deux catégories de techniques largement
appliquées dans ce domaine : l’allocation des tâches par les réseaux contractuels et la
coopération par planification.
Les protocoles des réseaux contractuels sont des protocoles de haut-niveau pour
la coopération efficace à travers l’allocation des tâches. La proposition de ces
protocoles est basée sur la métaphore des organisations durant la réalisation des
contrats. En fait, dans une organisation il existe, généralement, un gestionnaire qui
décompose la tâche à réaliser à un ensemble de sous-tâches. Ensuite, il va attribuer
ces tâches à un ensemble de contractants selon un protocole spécifique. Après,
l’exécution de sa tâche, le contractant annonce au gestionnaire le résultat de son
exécution. A titre d’exemple, dans le cadre de la formation doctorale, un directeur de
recherches peut décomposer un projet de recherche à un ensemble de sous-problèmes.
Ensuite, il attribue ces sous-problèmes à l’ensemble de doctorant. Chaque doctorant
va ensuite traiter son sous-problème. Après la proposition de différentes solutions, le
directeur de recherches peut synthétiser les résultats pour former la solution de
problème de recherche initial.
Dans le cadre des systèmes multi-agents, les réseaux contractuels (Contract Net)
sont considérés parmi les premières techniques de coopération des agents.
L’organisation FIPA a standardisé le protocole FIPA-Contract-Net. Comme il est
présenté dans la figure 4.1, le gestionnaire commence par l’annonce de la tâche en
utilisant la performative CFP (Call-For Proposal). Ensuite, les contractants peuvent
accepter la participation au protocole en faisant une proposition (prix de la tâche,
qualité de la tâche, durée d’exécution,…etc.) ou refuser la participation. Après la
réception des réponses de différents contractants, le gestionnaire va évaluer leurs
offres. En conséquence, il va choisir la meilleure proposition en envoyant un message
d’acceptation de la proposition au contractant propriétaire de la proposition, et il
envoie un message de rejeter la proposition aux autres contractants. Après l’exécution
de la tâche par le contractant, il va envoyer le résultat de l’exécution de la tâche ou il
informe tout simplement le gestionnaire qu’il a réalisé la tâche demandée. Dans
certains cas, le contractant peut rencontrer des problèmes qui l’empêchent de la
réalisation de la tâche. En effet, il doit informer le gestionnaire de cette situation.
la soumission est effectuée une seule fois) ou des actions qui doivent être synchronisé
avec d’autres actions (par exemple, un auteur spécifie qu’il va formater le papier selon
le modèle du journal, mais cette action doit être effectuée après la rédaction de toutes
les parties de l’article). En conséquence, chaque auteur va changer son plan afin
d’améliorer la coopération.
5. Conclusion
6. Questions de compréhension
a) Quelle la différence entre la coordination et la coopération ?
b) Pourquoi les techniques présentées dans ce chapitre sont destinées seulement
aux agents cognitifs ?
c) Quels sont les problèmes d’application des enchères ?
d) Modéliser le processus de distribution des projets de fin de cycle appliqué
dans votre département par le langage AUML ?
e) Dans quelle catégorie peux-tu classifier ce processus ?
Références
Livres
Articles
Thèses
Notes de cours
Normes