Memoire
Memoire
Memoire
Université Paris 8
Benjamin D RIEU
11 octobre 2001
<[email protected]>
2, rue de la Liberté
93526 - Saint-Denis
France
c 2001 Benjamin Drieu
Ce document peut être copié, distribué selon et/ou modifié sous les termes de la
GNU Free Documentation License version 1.1. Ce document a pour parties inva-
riantes la couverture, la section « Remerciements » ainsi que cette présente notice
de copyright. Une copie de cette licence est normalement fournie dans la section
« Conditions de distribution », si ce n’est pas le cas, vous pourrez trouver une copie
des conditions d’utilisation à l’URL http://www.gnu.org/copyleft/fdl.html.
Résumé
1 Introduction 5
1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Organisation de ce mémoire . . . . . . . . . . . . . . . . . . . . . . . . . 8
1
TABLE DES MATIÈRES 2
7 Conclusion 78
Remerciements
Nous souhaitons également remercier chaleureusement tout ceux qui ont rendu ce
travail possible par leurs conseils, remarques et encouragements. Plus spécialement,
un grand merci à Vanessa C ONCHODON, à Mathieu I GNACIO, à Christelle K LOCK,
à Arnauld M ICHELLIZA et à Moïse VALVASSORI pour les relectures de ce mémoire à
différentes étapes de son accomplissement et pour leurs témoignages d’amitié.
4
Chapitre 1
Introduction
1.1 Présentation
La simulation décrite dans ce mémoire d’une équipe de football par un système
multi-agents fait intervenir des agents autonomes et coopératifs, dont l’activité est
tournée vers un but commun par l’accomplissement d’objectifs intermédiaires (nous
parlerons en fait de plans intermédiaires). Le système multi-agents défini fait inter-
venir un mécanisme de coopération volontaire entre les agents d’une équipe, par le
biais d’actions concertées.
Le cadre dans lequel cette simulation a lieu est celui d’un projet de recherche scien-
tifique mondial : la Robocup. Le but de celle-ci est d’arriver à développer d’ici 2050
une équipe de football constituée de robots humanoïdes totalement autonomes et
capable de battre l’équipe humaine championne du monde selon les règles de la fé-
5
CHAPITRE 1. INTRODUCTION 6
Le comportement des agents est basé sur l’exécution de plans. Un plan est un en-
chaînement d’actions atomiques exécutées par un agent dans le temps et dans un
objectif précis. Chaque instance de plan fait partie d’une classe de plans et définit
des tâches qui sont exécutées selon une heuristique de classe. Les plans sont dans
notre architecture des modules distincts, placés dans un agenda. Ces plans sont des
processus capables de contrôler leur exécution et d’invalider leur existence. L’exé-
cution des plans est effectuée sur un mode asynchrone (c’est-à-dire non synchronisé
CHAPITRE 1. INTRODUCTION 8
Prenons pour exemple un agent ayant le plan de prendre la balle. À chaque cycle
d’exécution, il met à jour l’état du monde en fonction des informations reçues par le
serveur de la RoboCup. Puis il exécute un plan, qui produit une action atomique le
rapprochant de la balle, en utilisant un effecteur de déplacement (avancer d’un pas,
par exemple). Enfin, il met à jour la visualisation de son plan à destination de l’opé-
rateur.
– le chapitre 2 présente les particularités d’un milieu fortement dynamique tel que
CHAPITRE 1. INTRODUCTION 9
celui dans lequel nos agents évoluent. La nature asynchrone de la relation des
agents à leur environnement leur impose un traitement partiel des informations
perçues ainsi que des stratégies d’action se basant sur des connaissances incom-
plètes ou des croyances non vérifiées. Nous commençons par décrire la nature
dynamique du jeu d’équipe et en quoi une approche multi-agents peut aider à
résoudre ses contraintes. Puis nous introduisons les différentes problématiques
inhérentes au jeu d’équipe dans un milieu dynamique ainsi que les différentes
solutions couramment apportées ;
– enfin, le chapitre 6 décrit les différents aspects d’une activité coordonnée entre
agents (communication, compréhension et modélisation du partenaire, partage
de buts, partage de tâches, planification, adoption d’une attitude, tolérance aux
pannes). Il présente ensuite les aspects sociaux propres au jeu d’équipe ou par-
ticulièrement cruciaux pour les applications basées sur le jeu d’équipe ;
– enfin, nous concluons par l’analyse de notre implémentation et par le détail des
perspectives envisagées et des issues des expérimentations conduites.
Chapitre 2
Les contraintes d’un agent (qui est processus autonome) situé dans milieu dyna-
mique sont particulières. La nature asynchrone de sa relation à l’environnement lui
impose un traitement partiel des informations perçues, notamment en raison de leur
obsolescence rapide. De même, les connaissances partielles et les croyances non véri-
fiées sur leur milieu mènent les agents situés dans un milieu dynamique à formuler
des stratégies d’actions incomplètes ou basés sur des hypothèses.
11
CHAPITRE 2. CONTRAINTES D’UN ENVIRONNEMENT DYNAMIQUE 12
Au sein d’un milieu dynamique, une approche distribuée, qui consiste à répartir
les organes de traitement de l’information au sein d’un système (ici, l’équipe), offre
plusieurs avantages non négligeables par rapport à une approche purement centrali-
sée, qui centralise les organes de traitement à un point donné du système :
2.2 Problématiques
Les milieux dynamiques apportent des contraintes de conception ou de fonction-
nement supplémentaires au développement de systèmes multi-agents y agissant.
Cette section va identifier des problématiques courantes, liées en partie à la dyna-
mique de l’environnement et à son caractère bruité, ainsi que les moyens de les ré-
soudre.
Pour résoudre ce problème, une des solutions possibles est la mise en place d’un
mécanisme de quantification de la validité de croyances (connaissances non véri-
fiées) : l’agent décide que les informations sensitives reçues ne sont pas sûres et
convergera vers une valeur précise et sûre au fur et à mesure que des informations
sensitives confirment sa mesure initiale. Cette solution règle en partie le problème de
l’imprécision des récepteurs.
seuil en dessous duquel l’agent supprime cet objet de sa mémoire. C’est le cas des in-
formations potentiellement changeantes comme la position de la balle sur le terrain
dans le cas de la RoboCup. Les propriétés invariantes, telles que la taille d’un terrain
de football dans l’exemple de la RoboCup, n’ont bien évidemment pas besoin d’un tel
mécanisme de contrôle. De plus, une clause d’invalidation peut permettre de consi-
dérer une information comme obsolète et de supprimer l’objet de sa mémoire. C’est
par exemple le cas de la trajectoire estimée d’un mobile sorti du champ de vision :
si l’agent calcule que la trajectoire estimée de ce mobile devrait le faire réapparaître
dans son champ de vision mais que ce n’est pas le cas, il en conclut donc que la tra-
jectoire a été modifiée et que cette information n’est plus consistante. On trouve un
exemple de ce mécanisme dans [29].
Le problème du temps réel est résolu par des méthodes logicielles de développe-
ment rigoureuses : l’utilisation d’une horloge envoyant des signaux (impulsions) ré-
guliers à l’agent permet par exemple de cadencer son cycle de traitement. De même,
l’agent peut tirer profit du parallélisme de leur architecture s’il en est pourvu et exé-
cuter plusieurs tâches indépendantes simultanément (effectuer un long calcul ou une
CHAPITRE 2. CONTRAINTES D’UN ENVIRONNEMENT DYNAMIQUE 15
robustes (c’est-à-dire qu’ils sont sensibles aux pannes), ce qui implique un coût de
communication important (par exemple, un agent peut être amené à effectuer des
traitements supplémentaires pour émettre ou recevoir une information). Ces deux
problèmes rendent non fiables les stratégies de coopération et de synchronisation
fortement basées sur la communication. En effet, le coût de la dépendance à une in-
formation provenant de la communication entre agents augmente avec la non fiabilité
de la communication. Des stratégies reposant sur l’autonomie totale ou partielle sont
préférables.
On trouve dans [27] une méthode où les agents d’un système peuvent évoluer en
quasi totale autonomie et utiliser des périodes courtes où ils disposent d’une bande
passante totale pour se synchroniser et mettre à jour leurs plans. Notamment, pour
s’assurer que les buts suivis par les agents sont tous compatibles. Cette méthode, ap-
pelée Periodic Team Synchronisation (PTS), a été développée à l’origine dans le cadre de
la catégorie simulation de la RoboCup et prend tout son sens dans le jeu d’équipe :
pour que l’attente de périodes de synchronisation à forte bande passante soit une
stratégie réaliste, il est nécessaire que les rencontres durent suffisamment longtemps.
La technique du set-play est une alternative qui consiste à factoriser les efforts de
coordination nécessaires au traitement des situations répétitives (dans le cas de la
simulation de matchs de football, cela peut être le coup d’envoi, le hors-jeu, le déga-
gement, la touche, etc.). Il est payant de déterminer à l’avance des stratégies globale-
ment optimales. Les set-plays sont des ensembles de rôles prédéterminés que chaque
agent se chargera de remplir s’il le peut (un rôle est comportement guidé par des
buts définis s’insérant dans la stratégie du groupe). Afin d’éviter les problèmes in-
troduits par la communication non fiable, les set-plays doivent pouvoir se déclencher
sans nécessiter de communication de la part des agents concernés. Ils peuvent donc
être exécutés par le biais d’une condition activatrice, qui doit être connue par tous les
agents du système et déterminée avant le début de la rencontre ou lors de la dernière
période de synchronisation (locker-room agreement).
Chapitre 3
17
CHAPITRE 3. LA ROBOCUP : UN TERRAIN D’APPLICATION DE LA
PROGRAMMATION AGENT 18
concert avec d’autres agents dans des actions coordonnées, mais aussi capables
de prendre des décisions autonomes ;
Afin d’éprouver l’avancement des travaux sur la RoboCup, des rencontres ont lieu
tous les ans pour confronter les différentes équipes robotiques des participants au
projet. Ces rencontres sont accompagnées de conférences permettant d’établir l’état
de l’art et de décider des évolutions futures du projet. Les rencontres sont organi-
sées sur le modèle d’une vraie compétition sportive et donnent lieu à la publication
d’un palmarès. La compétition mettant en œuvre des programmes informatiques im-
pose de plus que les participants rendent disponibles les sources de tout ou partie
de leur programme à la suite de la compétition (nous souscrivons à cette approche et
considérons que la disponibilité du code source d’un programme est la meilleure do-
CHAPITRE 3. LA ROBOCUP : UN TERRAIN D’APPLICATION DE LA
PROGRAMMATION AGENT 19
cumentation qui existe et la meilleure manière de faire évoluer la science tout entière).
La RoboCup n’est pas une compétition figée. D’une manière générale, la philoso-
phie de la RoboCup est de complexifier graduellement les règles et les principes de
la compétition au fur et à mesure que les techniques de base sont maîtrisées. Ainsi,
en 1998, la compétition s’est étendue pour faire concourir des robots quadrupèdes,
développés par Sony. La mise au point d’une compétition de robots bipèdes est en
cours et le nombre de robots impliqués dans chaque aspect de la compétition aug-
mente graduellement au fil des ans, jusqu’à atteindre le nombre de onze par équipe.
– la catégorie des petits robots (moins de 180 centimètres carrés), comportant jus-
qu’à cinq robots par équipe ;
– la catégorie des robots Sony quadrupèdes, comportant trois robots par équipe ;
– la mise à l’épreuve des architectures d’agents dans des milieux multi-agents for-
tement dynamiques.
3.2.1 Le simulateur
Les équipes de programmes footballeurs s’affrontent par le biais d’un serveur de
simulation développé par Itsuki N ODA, [20]. Chacune des équipes est distribuée en
plusieurs processus et est composée d’autant de programmes que de joueurs, se
connectant tous sur le serveur par le biais de connexions de type UDP/IP. Chaque
joueur est donc un processus isolé des autres, n’ayant aucun moyen de communi-
quer directement avec les autres ni de partager sa mémoire. Chacun des joueurs est
représenté identiquement par le serveur, sauf le gardien de but qui possède un effec-
teur supplémentaire pour pouvoir attraper la balle. Un agent spécial est également
disponible, l’entraîneur. L’entraîneur a une vision extérieure du jeu mais ne peut pas
y agir physiquement.
Les agents connectés sur le serveur de simulation reçoivent régulièrement des in-
formations visuelles (en moyenne toutes les cent cinquante millisecondes) des in-
formations sur leur état corporel (en moyenne toutes les cent millisecondes) et des
informations auditives (dès qu’une telle information est disponible, c’est-à-dire lors-
qu’un autre agent s’exprime ou lorsque l’arbitre fait circuler un message).
CHAPITRE 3. LA ROBOCUP : UN TERRAIN D’APPLICATION DE LA
PROGRAMMATION AGENT 22
F IG . 3.1 – Le moniteur
Les informations visuelles reçues sont relatives et leur précision décroît linéaire-
ment en fonction de la distance à un objet perçu (il est par exemple possible de ne
pas reconnaître le numéro d’un coéquipier éloigné). Les informations visuelles sont
composées de l’ensemble des coordonnées polaires des objets se situant dans le cône
de vision de l’agent. Ce mécanisme reproduit assez fidèlement les contraintes d’une
vision réelle et impose l’utilisation de mécanismes de mémorisation des informations
perçues tout comme de suivi d’objets mobiles.
Les informations auditives ne sont pas circonscrites à une direction mais sont de
portée limitée (50 mètres). De plus, l’utilisation concurrente du canal sonore introduit
une incertitude sur la destination d’un message : seul un message (déterminé aléatoi-
rement parmi les messages émis concurremment) est entendu par les agents présents
dans un cercle d’audition. Cette problématique implique une bande passante très
faible pour le transfert d’informations, tout comme une fiabilité très relative de ce
canal de communication.
CHAPITRE 3. LA ROBOCUP : UN TERRAIN D’APPLICATION DE LA
PROGRAMMATION AGENT 23
Le joueur reçoit régulièrement des informations sur son propre corps : la position
de sa tête par rapport à son corps (il est possible de faire tourner sa nuque) et surtout
son état de fatigue. L’efficacité des mouvements des joueurs est en effet pondérée par
la quantité de fatigue physique accumulée. Dans la pratique, les joueurs se fatiguent
d’autant plus vite qu’ils accomplissent des efforts soutenus. Il est donc important
pour chaque joueur d’avoir une idée assez précise de son propre état de fatigue : les
informations corporelles envoyées au client sont des informations de première im-
portance pour l’établissement d’une politique de gestion des efforts et du passage de
la balle.
Il est à noter que le serveur de simulation discrétise le temps en cycles d’un dixième
de secondes. Un agent ne doit normalement effectuer qu’une action par cycle. Si un
agent tente d’exécuter plusieurs actions par cycle, le serveur en choisit une aléatoi-
rement parmi celles envoyées et exécute uniquement celle dernière sans prévenir le
client.
Les agents simulés de la RoboCup disposent des effecteurs suivants pour manipu-
ler le monde qui les entoure ou se déplacer au sein de leur environnement :
– attraper la balle (uniquement pour le gardien de but). Le gardien de but est ca-
pable de déterminer une zone rectangulaire en face de lui, dans laquelle il a une
certaine probabilité d’attraper la balle ;
CHAPITRE 3. LA ROBOCUP : UN TERRAIN D’APPLICATION DE LA
PROGRAMMATION AGENT 24
– avancer d’un pas. Les agents peuvent avancer vers la direction dans laquelle ils
sont tournés. Cette avancée est fonction d’un paramètre (de vitesse) spécifié lors
de la transmission de la requête au serveur. De la fatigue est produite à chaque
utilisation de cet effecteur et elle dépend de la vitesse utilisée. Plus un joueur est
fatigué, moins il avancera vite et moins il sera efficace dans la manipulation de
la balle ;
– frapper la balle. Si la balle est dans une zone proche du joueur (qui est représen-
tée par un cercle centré sur le joueur), il peut la manipuler et lui imprimer une
accélération dans une direction spécifiée. L’accélération apportée est spécifiée au
serveur par un paramètre et dépend de la fatigue du joueur ;
– émettre un message sonore (parler). Le message est entendu par défaut dans un
rayon de 50 mètres, y compris par les adversaires ;
– tourner le corps dans une direction. Lorsque le joueur avance, il le fait vers la
direction dans laquelle il est tourné. Pour modifier la direction de sa course, il
est donc nécessaire de faire tourner le corps ;
– tourner la tête vers une direction. Tourner la tête dans une direction qui n’est
pas celle du corps permet de suivre un objet à la trace tout en avançant dans une
direction différente (par exemple dans le cas d’une interception de balle).
peut de plus donner des ordres aux joueurs afin de les diriger, tout comme le ferait
un véritable entraîneur.
– en mode coach. Le coach a simplement une vision plus large et non bruitée du
jeu et peut envoyer des indications, des conseils et des ordres aux joueurs (via
l’utilisation d’un langage de communication généraliste et indépendant de la
structure et de la conception de l’équipe). De plus, il peut nommer des zones de
la surface de jeu et les communiquer aux clients ;
– en mode entraineur (ou coach off-line). L’entraineur a les mêmes options que le
coach mais peut intervenir sur le déroulement du jeu, siffler les pénalités au
même titre que l’arbitre et peut déplacer les joueurs où bon lui semble lors de la
partie (ce qui est très utile pour entraîner les joueurs en dehors du terrain, par
exemple pour les équipes utilisant l’apprentissage automatisé ou machine lear-
ning).
y a hors-jeu (passe à un joueur trop avancé sur le terrain), lors qu’un but est marqué,
etc.
L’arbitre est secondé par un humain, qui peut décider de placer la balle à un en-
droit déterminé du terrain ou d’accorder une pénalité à un joueur (à cause d’un com-
portement de son adversaire que l’arbitre informatique ne peut pas automatiquement
déterminer, par exemple l’obstruction de la balle). Lorsque l’arbitre prend une déci-
sion, le serveur notifie tous les joueurs de son effet via le protocole de communication.
Ces décisions peuvent entraîner le déplacement de joueurs sur le terrain ou l’inter-
diction de s’approcher de la balle pour une équipe tant que l’autre équipe n’a pas
remis la balle en jeu.
Les premières rencontres de la RoboCup ont été caractérisées par une évolution
importante des activités basses des agents footballeurs (par exemple, une équipe a
acquis un avantage énorme lors d’une des premières confrontations en mettant au
point un mécanisme de contrôle de balle lui permettant de la manipuler comme si
ses joueurs la tenaient entre leurs mains), jusqu’à atteindre un niveau d’équilibre. À
partir de 1998, les principales évolutions ont eu lieu dans les aspects coopératifs et de
représentation des connaissances. L’utilisation d’un mécanisme de modélisation de
l’adversaire et du coéquipier (voir [30]) a par exemple permis à l’équipe CMU-2000
de marquer des buts dans des conditions où la prise de décision est déterminante.
3.4 La RescueCup
La RescueCup est un projet dérivé de la RoboCup. Son origine est tirée de la
constatation de l’inefficacité des secours actuels en cas de désastre naturel important,
comme cela a été illustré lors de la catastrophe de Kobé au Japon (où un tremblement
de terre à causé la mort immédiate de plus de 6000 personnes). Notamment, les li-
mites suivantes ont été identifiées dans la technologie de l’information telle qu’elle
est appliquée aux situations d’urgence :
Ces problèmes sont très proches de ceux auxquels sont confrontés les systèmes
multi-agents en milieu fortement dynamique. Le projet de simulation RoboCup-Rescue
est une tentative de résolution de ces problèmes. Il se concentre principalement sur :
Notre équipe est basée sur l’implémentation de l’équipe CMUnited 2000 (CMU-
2000) décrite dans [25, 28, 29], développée à l’université Carnegie Mellon et vainqueur
des compétitions de 1998 et de 1999. En tant que programme vainqueur, l’équipe
CMUnited a eu l’obligation de fournir une partie de son code source tout comme un
manuel détaillant les techniques utilisées et les domaines de recherche explorés par
l’équipe. Notre choix est motivé par le fait que l’équipe CMU-2000 et ses versions
précédentes se sont distinguées des autres équipes par une série d’effecteurs et de
capacités bas niveau conçue de manière efficace. De plus, CMU-2000 est développé
avec une volonté de réutilisation et une architecture modulaire, ce qui facilite son
intégration dans un programme quelconque. Nous avons utilisé les couches basses
(couche et protocole réseau, analyse des informations sensorielles, effecteurs bas ni-
veau, exécution temporelle asynchrone) de CMU-2000 afin de nous concentrer sur les
parties comportementales du programme.
30
CHAPITRE 4. UNE IMPLÉMENTATION D’ÉQUIPE POUR LA SIMULATION
ROBOCUP 31
Opérateur
Horloge
Interface Scheme
Agent
Plan Croyances
Effecteurs Récepteurs
Environnement
mations sensorielles, il met à jour l’état du monde qu’il avait maintenu jusque là,
réévalue son action actuelle en fonction du nouvel état obtenu et exécute une action
en fonction de ses buts mis à jour. Il s’agit d’une contrainte de programmation assez
forte, qui oblige à maintenir d’un cycle à l’autre des informations dans un contexte
global. Ainsi, les méthodes utilisées pour accomplir une action doivent se passer au
maximum de résultats intermédiaires, être réentrantes (pouvoir s’exécuter plusieurs
fois dans des conditions différentes) autant que possible. Cette problématique est par-
ticulièrement cruciale et limitante pour le mécanisme d’extension basé sur l’inclusion
d’un interpréteur Scheme (voir la section 4.1, page 31), que nous avons développé au
sein de notre agent. Cependant, elle peut être limitée par l’utilisation de variables
d’instances afin de sauvegarder les états intermédiaires des plans de l’agent et ainsi
limiter les problèmes de l’exécution sans état.
Les effecteurs définis sont des actions atomiques calquées sur le protocole de com-
munication du serveur de la RoboCup. En effet, toutes les primitives d’action définie
dans le protocole sont considérées comme un effecteur. Les différentes primitives
disponibles sont détaillées dans la section 3.2.3, page 23. Comme le serveur ne ren-
voie pas d’information sur l’effet de l’action d’un effecteur, c’est à l’agent d’estimer
la réussite de l’action d’un effecteur en fonction de l’évolution d l’état du monde.
Les récepteurs définis sont eux aussi calqués sur les primitives définies dans le
protocole. Ainsi, les informations perçues sur l’environnement sont de type visuelles
et sonores. Ces sources d’information sont bruitées, comme décrites dans la section
3.2.2, page 21.
Enfin, une interface avec l’opérateur permet à l’agent d’exécuter des instructions
CHAPITRE 4. UNE IMPLÉMENTATION D’ÉQUIPE POUR LA SIMULATION
ROBOCUP 35
écrites en langage Scheme. Cette interface textuelle est assurée par l’entrée clavier des
processus des agents. L’opérateur peut ainsi contrôler l’exécution du comportement
de l’agent a tout moment.
– des pointeurs vers les différents objets représentant les joueurs et le ballon (cer-
tains de ces objets pouvant ne pas être identifiés en raison de l’imprécision des
récepteurs) ;
Object
+type: ObjType
+get_x(): float
+get_y(): float
+pos_valid(): float
+update(): void
StationaryObject MobileObject
+object_id: int #conf_decay: float
#motion_decay: float
#max_speed: float
+get_abs_vel()(): Vector
+get_speed(): float
+moving(): bool
+estimate_future_pos(steps:int,extra_vel:Vector=0.0,extra_vel_per:Vector=0.0): Vector
BallObject PlayerObject
+side: char
+moving(): bool +unum: Unum
+kickable(buffer:float=0.0): bool
+catchable(): bool +get_neck_rel_ang(): AngleDeg
+get_rel_to_body_body_ang(): AngleDeg
+get_rel_to_body_neck_an(): AngleDeg
+get_rel_to_neck_body_ang(): AngleDeg
+get_rel_to_neck_neck_ang(): AngleDeg
de plus des prédicats plus complexes, utilisables directement pour faciliter l’évalua-
tion des actions en cours (par exemple le nombre de joueurs adverses dans un cône
donné, ce qui est utile pour évaluer les chances de réussite d’une passe).
4.5 La planification
Nous définissons une architecture d’agents basée sur l’exécution de plans, conçus
sous la forme de modules spécifiques. Leur exécution est autonome mais contrôlée
CHAPITRE 4. UNE IMPLÉMENTATION D’ÉQUIPE POUR LA SIMULATION
ROBOCUP 37
Marquer but
par un ordonnanceur. Ces plans sont des objectifs à atteindre pouvant contenir à leur
tour et de manière hiérarchique des sous-plans intermédiaires : nous représentons
ainsi l’enchaînement des étapes nécessaires à l’exécution d’un plan (voir la figure 4.3,
de la présente page). Les plans sont représentés par des objets de classes dérivant de
la classe Plan (par exemple, PlanTakeBall ou PlanWatch), comportant toutes les don-
nées attachées à un plan, notamment les données nécessaires à la visualisation. Nos
plans possèdent un mécanisme de contrôle d’exécution et sont capables de tolérer
des états inattendus (pannes) ou de déclencher des actions intermédiaires pour arri-
ver à leurs fins.
Nous considérons que les plans définis doivent prendre le plus d’initiatives qu’ils
peuvent et qu’ils doivent contrôler le déroulement de leur action, car ils sont en ef-
fet les plus à même de le faire. Déléguer le contrôle de l’exécution d’une action à un
autre organe équivaut à transporter une partie de la symbolique du plan vers ce der-
nier afin qu’il soit capable de modéliser et de comprendre le déroulement de cette
action. De même, cela nécessite la mise en place d’un mécanisme de contrôle par un
organe superviseur. La complexité induite est sensible aux pannes et alourdit le trai-
tement du contrôle des actions entreprises alors qu’elle n’est pas nécessaire. Nous
considérons les plans de notre architecture comme des effecteurs complexes et non
CHAPITRE 4. UNE IMPLÉMENTATION D’ÉQUIPE POUR LA SIMULATION
ROBOCUP 38
atomiques, leur exécution asynchrone étant très similaire à celle d’un effecteur ato-
mique.
Simulation
Opérateur
Horloge
Interface Scheme
Agent
Effecteurs Récepteurs
Environnement
Chacun des plans possède une clause d’invalidation qui est propre à une instance.
Il s’agit d’une condition qui invalide le plan et le rend obsolète. L’obsolescence d’un
plan peut être déclenchée par deux conditions : sa réussite (par exemple, atteindre la
balle pour le plan take-ball) ou l’existence de conditions rendant impossible son exé-
cution (par exemple, un autre joueur possède la balle pour le plan take-ball). Nous
considérons en effet qu’un plan doit être rendu obsolète et abandonné dès qu’une
clause rend son exécution difficile, quelle que soit la motivation existante à l’exécuter.
Cependant, les plans doivent être responsables de la maintenance ou de la création
des conditions nécessaires à leur bon fonctionnement : par exemple, le plan take-ball
est responsable de la maintenance de la connaissance de la position de la balle en
mémoire via l’exécution de plans intermédiaires. Les clauses d’invalidation sont des
méthodes évaluées à chaque cycle avant l’exécution de chaque instance de plan.
Les plans développés contiennent de plus une clause de validité. Cette clause per-
met de déterminer si une instance de plan est valide pour un joueur ou non, en se
CHAPITRE 4. UNE IMPLÉMENTATION D’ÉQUIPE POUR LA SIMULATION
ROBOCUP 40
basant sur son comportement apparent. Le mécanisme que nous proposons tente de
vérifier de manière asynchrone et par hypothèse si une instance de plan correspond
au comportement d’un joueur connu, c’est à dire si son état actuel correspond à une
phase du plan (par exemple, si un joueur est le plus proche de la balle et qu’il est
orienté vers elle, il peut être en train d’exécuter le plan take-ball). Ce mécanisme est
imparfait en plusieurs points : il est sans état, c’est-à-dire qu’il ne tient pas compte des
actions passées d’un joueur (ce qui interdit donc de dégager une intentionalité d’un
processus) et de plus, il nécessite une heuristique distincte de celle de l’exécution du
plan. Nous proposons une solution, qui serait d’abandonner la modélisation actuelle
des autres agents, incluse actuellement dans la base des croyances et accessible par le
biais de méthodes facilitatrices, au profit de la simulation de ces agents via une repré-
sentation mémoire similaire à celle de l’agent « réel » (l’agent exécuté par le processus
et communiquant avec le serveur de la RoboCup) et une exécution en parallèle des
modèles simulés. Voir par exemple la figure 4.5, page précédente, qui détaille le mé-
canisme de modélisation proposé. L’agent réel s’interfacerait avec les agents simulés
par des canaux de communication semblables et un protocole identique à celui uti-
lisé pour communiquer avec le serveur et se chargerait d’envoyer des informations
sensorielles aux agents simulés en se basant sur ses croyances propres. Ainsi, l’agent
réel simulerait par ce biais le comportement de ses partenaires en utilisant les heu-
ristiques même de leur comportement réel. Les actions des agents simulés seraient
perçues via leurs effecteurs et permettraient à l’agent réel de déterminer les actions
probables de ses coéquipiers et adversaires en se basant sur les heuristiques et la re-
présentation mêmes de leur exécution. La communication entre de tels agents n’étant
pas soumise à des contraintes de bande passante, elle pourrait se faire de manière pri-
vilégiée et pourrait permettre de s’échanger des plans et d’estimer le comportement
de ses coéquipiers (cette hypothèse assume cependant que la structure de tous les
agents simulée est connue et reproductible).
Chacune des instances de plan possède une représentation graphique propre, qui
utilise la couche graphique développée pour notre implémentation (voir la section
4.6, page suivante pour plus de détails sur l’implémentation graphique). Les ins-
tances de plans utilisent une table de hachage pour stocker les objets graphiques
utilisés et affichés à chaque cycle. À chaque exécution asynchrone du plan, les objets
graphiques sont mis à jour par l’instance elle-même afin qu’ils soient les plus proches
possible de la réalité et des symboles contenus dans l’état du monde.
CHAPITRE 4. UNE IMPLÉMENTATION D’ÉQUIPE POUR LA SIMULATION
ROBOCUP 42
4.6 La visualisation
Nous avons été assez rapidement confrontés au problème de la visualisation des
actions de nos agents : dans un milieu dynamique où les conditions de jeu sont rapi-
dement changeantes, il est nécessaire à l’expérimentateur de posséder une bonne idée
des buts de ses agents et des paramètres mis en œuvre dans les actions entreprises
(notamment, les paramètres physiques de localisation). Typiquement, il est nécessaire
de connaître le chemin qu’un agent désire emprunter pour se rendre à un point donné
et la représentation textuelle seule est insuffisante pour ce type d’informations. Dans
un univers discrétisé, la visualisation de telles informations est relativement aisée.
Mais dans un environnement non discrétisé comme c’est le cas pour la simulation
de la RoboCup, il est nécessaire d’opter pour une visualisation imparfaite (complé-
tée au besoin par des informations textuelles) et spécifique ou alors de développer
un mécanisme de visualisation vectorielle et symbolique (le symbolisme est notam-
ment nécessaire pour garantir la généricité de la visualisation et le maintien d’une
information dynamique). Nous avons opté pour l’implémentation d’un mécanisme
de définition, de maintenance et d’affichage d’objets vectoriels, qui peuvent être ini-
tialisés et utilisés par l’un ou l’autre des composants de notre agent.
GraphicObjectLine GraphicObjectPolar
#orig_x: float -x_ref: float
#orig_y: float -y_ref: float
#end_x: float +angle_ref: float
#end_y: float +GraphicObjecPolar(gd:GraphicDevice *,x:float,y:float,a:float)
+GraphicObjectLine(gd:GraphicDevice *,x1:float,y1:float,x2:float,y2:float) +move_ref(x:float,y:float): void
+display(): void +turn_ref(a:float): void
+draw_line(x1:float,y1:float,x2:float,y2:float): void
+display(): void
#abs_x(d:float,a:float): float
#abs_y(d:float,a:float): float
GraphicObjectPolarLine
+GraphicObjectPolarLine(gd:GraphicDevice *,rx:float,ry:float,ra:float,x1:float,y1:float,x2:float,y2:float)
+display(): void
chemins, vecteurs, angle de vision, etc.), nous avons mis en place deux systèmes de
coordonnées, le premier étant cartésien et absolu (l’origine étant le centre du terrain)
et le deuxième étant polaire et relatif à une origine. Un objet graphique utilisant des
coordonnées polaires doit hériter de la classe PolarObject, qui possède toutes les mé-
thodes nécessaires à la maintenance d’une origine et à la transformation des coordon-
nées relatives polaires en coordonnées absolues cartésiennes.
2. de définir des interfaces entre le support d’affichage (ou périphérique) et les pri-
mitives graphiques de bas niveau : nous avons défini des correspondances entre
les primitives d’affichage bas niveau et les primitives d’affichages spécifiques,
mais aussi des mécanismes d’initialisation du support graphique, d’allocation
et de cache de couleurs ;
Nous avons déjà implémenté un périphérique d’affichage basé sur les primitives
graphiques de la bibliothèque Xlib, qui permet de visualiser les objets graphiques
dans une fenêtre X11. Nous envisageons le développement d’un périphérique Post-
Script (dont l’utilité prend tout son sens dans la production de documents écrits),
d’un périphérique MPEG (par exemple en utilisant la bibliothèque libfame, disponible
sur le web à l’URL http://fame.sourceforge.net/libfame/overview/), afin
de produire de manière native des séquences animées (fichiers vidéo) et d’un péri-
phérique OpenGL, permettant une visualisation en trois dimensions.
Chapitre 5
Le mot agir possède quatre sens communs applicables à la définition que nous es-
sayons de donner d’un agent :
– agir, c’est accomplir une action, faire quelque chose (« il est temps d’agir »). Par
exemple, se déplacer dans son milieu ou transformer un objet ;
45
CHAPITRE 5. À LA BASE DU JEU D’ÉQUIPE, L’INDIVIDU 46
– agir, c’est se conduire d’une certaine façon (« agir en sage »). Par exemple, adop-
ter une attitude de coopération ;
– agir, c’est opérer un effet (« agir sur le moral du groupe »). Par exemple bloquer
le passage d’un agent ou rendre possible une action ;
– agir, c’est intervenir auprès d’une personne (« agir auprès d’un supérieur »). Par
exemple, demander des ressources à un agent.
– les agents d’interface [19]. Il s’agit de programmes qui coopèrent avec l’opéra-
teur dans son utilisation d’une application informatique. Leur interaction avec
l’utilisateur (ainsi qu’avec d’autres agents) leur permet de formuler des plans
dont la finalité est d’assister l’utilisateur dans son travail. Ces agents peuvent
par exemple se charger de filtrer les informations qui pourraient être utiles à
l’utilisateur ;
– les agents d’information [5]. Ces agents ont accès à une ou plusieurs sources
d’information, potentiellement distribuées et hétérogènes. Ils sont chargés de
répondre aux questions d’un utilisateur. Il peut s’agir d’agents chargés de par-
courir le web à la recherche d’informations sur un sujet précis ou d’agents collec-
tant et agrégeant des informations provenant de bases de données hétérogènes ;
– les agents « réalistes ». L’application de tels agents est directe dans le domaine
des jeux vidéo ou de la réalité virtuelle. L’inclusion de personnages réalistes
dans un monde simulé implique de leur insuffler un comportement proche de
celui des êtres réels, notamment par la simulation de « sentiments » et de buts.
L’abstraction agent et la définition de plans propres le permet de manière effi-
cace.
Agent
Base de croyances
Prise de décision
Désirs/Intentions
– les architectures dynamiques. Dans ces architectures, la liaison entre les récep-
teurs et les effecteurs est assurée par le biais d’équations logiques. Cette architec-
ture est typiquement utilisée en robotique pour contrôler l’inclinaison des roues
et la vitesse d’avancée en fonction de l’état de capteurs.
Les agents de type intentionnel ayant un but à accomplir, il leur est nécessaire de
connaître les actions à effectuer pour l’atteindre, c’est-à-dire de disposer d’objectifs
intermédiaires à accomplir. De tels agents ont donc besoin de conserver en mémoire
une image de leurs objectifs ou au contraire dont la validité n’est pas possible dans
l’état actuel du monde. En effet, les cogniticiens considèrent généralement que la dé-
cision d’adopter d’une attitude est le résultat d’un calcul basé sur la multiplication
de l’importance de cette attitude (selon les critères des motivations de l’agent) par
l’estimation des espérances de succès. Une telle base d’objectifs doit être mise à jour
de manière régulière pour correspondre à la réalité. Par exemple, une mise à jour est
nécessaire à chaque accomplissement d’un objectif intermédiaire ou lorsque la déri-
vation de la perception du monde dépasse un certain seuil par rapport à l’état du
monde lors de l’établissement des objectifs.
1
L’ordinateur de Von Neumann est l’architecture la plus couramment utilisée pour décrire le fonc-
tionnement d’un ordinateur moderne. Certains y voient des similitudes avec l’architecture d’un agent.
L’architecture de Von Neumann est formée de cinq composants qui interagissent les uns avec les
autres :
– l’unité arithmétique et logique (UAL) ou unité de calcul ;
– l’unité de contrôle ou unité de commande ;
– la mémoire centrale ou mémoire principale ;
– les unités d’entrée ;
– les unités de sortie.
CHAPITRE 5. À LA BASE DU JEU D’ÉQUIPE, L’INDIVIDU 52
Afin de connaître la pertinence d’un objectif, c’est à dire de vérifier s’il est tou-
jours valable en fonction de l’état du monde extérieur ou de l’état interne de l’agent
lui-même, un agent intentionnel a besoin de disposer d’une vision (ou modèle) sym-
bolique du monde. Ce modèle est une représentation interprétative du monde ob-
tenue à partir d’informations sensorielles ou de croyances structurelles. Il prend la
forme d’une base de données de symboles représentant chacun un aspect de l’envi-
ronnement (par exemple, des symboles décrivant la température, les coéquipiers, la
topologie du terrain, etc.) ou des relations entre symboles. Cette représentation étant
interprétative, elle peut dériver fortement de la réalité fonctionnelle extérieure. C’est
pour cette raison qu’elle est aussi parfois appelée base de croyances (nous considérons
ici l’adéquation physique et non opérationnelle avec la réalité). De plus, dans le cas
particulier d’un milieu dynamique (voir le chapitre 2, page 11), cette représentation
du monde doit être mise à jour de manière régulière, voire en temps réel, afin d’être
la plus consistante et pertinente possible.
Le planificateur est un organe qui met en place une succession d’opérations, dans
le but de remplir les objectifs, en se basant sur l’hypothèse que les actions plani-
fiées vont modifier l’environnement dans un sens positif. Le planificateur intervient à
deux niveaux dans le comportement d’un agent : à un niveau supérieur, il détermine
quels sont les comportements à suivre sur le long terme pour adopter une stratégie
efficace et à un niveau inférieur, il détermine les primitives d’action (actions atomiques)
nécessaires à l’accomplissement de la prochaine étape planifiée importante. Dans le
cas d’un système multi-agents, l’activité planifiée coordonnée nécessite de plus une
synchronisation entre les différents agents impliqués et un partage de plans afin d’ob-
tenir un ordonnancement efficace entre leurs actions en vue d’une résolution globale
de problèmes [9].
Un agent a besoin de connaître avec une précision suffisante l’état de son envi-
ronnement. Pour posséder un état du monde adéquat, il doit le percevoir directement
ou doit obtenir des informations sur celui-ci par le biais d’autres agents (des agents
facilitateurs par exemple). Dans les deux cas, il a besoin d’organes sensitifs ou per-
cepteurs, qui lui envoient des informations sur son environnement, en continu ou sur
des bases événementielles. Les récepteurs d’un agent sont typiquement des capteurs
CHAPITRE 5. À LA BASE DU JEU D’ÉQUIPE, L’INDIVIDU 53
dans le cas d’un agent robotique ou des canaux de communication avec son environ-
nement informatique dans le cas d’un agent purement logiciel (cela peut inclure des
canaux de communication avec d’autres agents ou des dispositifs de mesure). L’ac-
tion des percepteurs est renforcée par un travail de reconstruction d’informations à
un niveau symbolique ou logique.
De même, un agent doit avoir le pouvoir d’agir sur son environnement afin de
résoudre le problème pour lequel il a été créé ou afin de maintenir un équilibre ou un
état en fonction de la représentation qu’il se fait de son environnement. Par exemple,
il peut s’agir d’assurer sa propre survie ou de maintenir un facteur au dessus d’un
certain seuil. Les actions portant sur l’environnement de l’agent sont effectuées par
ses effecteurs, qui consistent en des dispositifs mécaniques dans le cas d’un agent
robotique (par exemple des roues, un bras articulé, un émetteur radio ou lumineux,
etc.) ou en des méthodes logicielles (canal de communication avec un processus, ap-
pel système, etc.). Le bon fonctionnement des plans de l’agent nécessite d’obtenir
des informations en retour de son action afin d’entreprendre une correction en cas
d’échec (par exemple, nos agents évaluent à chaque cycle l’adéquation de la situation
par rapport à l’action suivie). Certains effecteurs permettent l’évaluation de l’action
entreprise (mesure de la vitesse d’un moteur, code de retour d’une procédure, etc.)
ce qui permet d’obtenir immédiatement une mesure de l’incidence de l’action sur
l’environnement ou sur son issue. Dans le cas contraire, l’évaluation de l’action d’un
effecteur doit se faire par l’étude de l’environnement et de son évolution.
La structure des agents purement réactifs tend à la simplicité, mais ces derniers
peuvent être capables d’actions de groupe complexes et coordonnées. C’est le cas
d’une société de fourmis, dont la somme des membres est capable d’actions évo-
luées mais dont chaque individu pris séparément possède une représentation faible
de l’environnement et n’a pas de buts globaux. Les activités complexes et tournées
vers un but sont dans cette architecture d’agents une propriété émergente des inter-
actions sociales entre les agents constituant le groupe.
On trouve un exemple de définition d’une société d’agents réactifs dans [8]. Alexis
D ROGOUL y décrit notamment le mécanisme de la sociogénèse de colonies de four-
mis à travers une approche multi-agents. Une simulation (MANTA) met en évidence
l’émergence de stratégies à long terme complexes au sein d’une société d’agents pour-
tant non cognitifs. Cette émergence est aussi mis en exergue dans une simulation de
jeu d’échecs, où l’approche distribuée purement réactive produit cependant un com-
portement consistant sur le long terme.
Un modèle d’agent intentionnel est par exemple décrit dans [24] : le modèle BDI
(pour Beliefs Desires Intentions). Ce modèle définit trois composantes : les croyances,
les désirs et les intentions. Un agent BDI modélise dans un arbre les mondes pos-
sibles selon ses croyances et adapte les mondes possibles selon ses désirs ainsi que les
mondes possibles selon ses intentions en fonction des futurs probables. Ces mondes
sont modélisés sous forme hiérarchique en fonction d’hypothèses formulées sur le
futur de l’environnement. Plusieurs variantes de ce modèle sont proposées, parmi
celles-ci : les agents réalistes, qui désirent des propositions mais peuvent les considé-
rer comme irréalisables et les agents non réalistes (opiniâtres), qui refusent de consi-
dérer leurs désirs comme irréalisables, tout comme les informations déniant la vali-
dité de leurs désirs.
nement. L’autonomie d’un agent ne porte pas seulement sur son comportement mais
aussi sur ses ressources internes qui sont elles aussi autonomes : d’un point de vue
général et dans le cas d’un agent autonome situé, on définit un agent comme « tout
ce qui ne fait pas partie de l’environnement. »
Pour Jose B RUSTOLONI [3], un agent autonome doit savoir comment accomplir
ses buts en fonction de l’état de son environnement ou tout du moins, doit être ca-
pable de trouver un moyen pour accomplir ses buts. Ces capacités de connaissance
ou de recherche impliquent un traitement structurel (c’est le cas des architectures
connectivistes) ou symbolique (où l’agent manipule des symboles et détermine son
comportement en fonction de ces manipulations) des stimuli reçus.
Un agent robotique mobile peut se déplacer vers les ressources dont il a besoin, se
rapprocher d’un objectif à accomplir, fuir des prédateurs, etc. Un agent logiciel mo-
bile n’est bien entendu pas concerné par la problématique de la localisation physique,
mais en revanche, il peut tirer partie de la topologie du réseau informatique. Ainsi,
un agent mobile qui se rapproche d’une ressource (base de données, agent logiciel,
périphérique, etc.) pourra travailler de manière plus efficace : plutôt que d’accéder
à cette ressources travers un WAN2 , il peut se déplacer à travers le réseau de relais
en relais et accéder localement à la ressource désirée en utilisant une bande passante
maximale.
Les agents d’information (voir la section 5.1, page 47) sont la plupart du temps des
agents mobiles : leur rôle est de parcourir des sources d’information souvent distri-
buées et donc d’être amenés à se déplacer dans un réseau. Des agents d’information
mobiles permettent à l’utilisateur de s’abstraire de la nature des sources d’informa-
tion, à condition que l’agent mobile assure un rôle de passerelle et soit pourvu d’une
interface avec ces sources d’information [5]. De même, grâce à ses ressources et à ses
buts propres, un agent mobile peut effectuer sa recherche d’information de manière
2
WAN : Wide Area Network, il s’agit d’un réseau étendu physiquement, typiquement l’Internet. Un
WAN a généralement une bande passante limitée.
CHAPITRE 5. À LA BASE DU JEU D’ÉQUIPE, L’INDIVIDU 58
Les agents avec lesquels un agent social est en mesure d’avoir des interactions
peuvent être hétérogènes, c’est-à-dire qu’ils peuvent avoir des formes, des interfaces,
des buts ou des représentations de l’environnement différentes. La communication
est une forme d’interaction nécessitant un protocole et un langage commun aux dif-
férentes parties et indépendants des spécificités de ces dernières. De plus, un canal
de communication adapté à tous les agents l’utilisant et permettant de transporter les
messages échangés est requis [36].
3
Un script est une suite d’opérations décrites dans un langage textuel adapté à leur sémantique
opératoire.
CHAPITRE 5. À LA BASE DU JEU D’ÉQUIPE, L’INDIVIDU 59
Les interactions entre agents sont possibles sur une base bipolaire (micro-interactions)
ou sur une base faisant intervenir un grand nombre d’agents : c’est le cas des mes-
sages émis par un agent à destination de tous les agents de son environnement (macro-
interactions). Voir la section 6.1 page 61.
Une équipe est définie par le dictionnaire comme un « groupe de personnes col-
laborant à un même travail. » Dans le cas de systèmes multi-agents, cette collabora-
tion fait intervenir plusieurs agents sociaux, qui non seulement coopèrent et se coor-
donnent, mais axent aussi leurs efforts coopératifs vers l’atteinte d’un but commun.
Cette coopération implique des échanges d’informations, des partages de plans et
60
CHAPITRE 6. DÉCISIONS ET PLANS COOPÉRATIFS DANS LE JEU D’ÉQUIPE 61
Une des propriétés émergentes des micro-sociétés est de produire des fonctionna-
lités (actions de groupe, perceptions locales du problème, etc.) qu’une macro-société
peut utiliser pour résoudre un problème global : les agents d’un système se regroupent
dans le contexte d’un but plus global poursuivi par « l’entité » groupe. En revanche,
les macro-sociétés produisent des contraintes (explicitement décrites ou émergentes
elles aussi) à destination des agents et des micro-sociétés qui les composent (contraintes
des coordination, conflits, etc.). Ces contraintes tendent à encadrer les agents vers la
résolution du problème global et à utiliser leurs capacités de manière coordonnée
avec les autres agents du groupe. De telles contraintes décrivent la structure organi-
CHAPITRE 6. DÉCISIONS ET PLANS COOPÉRATIFS DANS LE JEU D’ÉQUIPE 62
– l’arbitrage. Les agents résolvent les conflits qui peuvent survenir entre eux. Cette
coordination peut faire intervenir une coordination volontaire ou un mécanisme
explicite de lois.
Communiquer, c’est avant tout émettre des signaux. La communication entre plu-
sieurs agents nécessite un mécanisme de transport de l’information ainsi qu’un sup-
port sur lequel l’agent émetteur peut écrire et sur lequel un ou plusieurs agents
peuvent recevoir des informations. On parle alors de support ou de canal de com-
munication. La définition de canaux de communication permet d’abstraire les pa-
ramètres physiques ou fonctionnels d’un médium de transport d’information. On
trouve par exemple un tel mécanisme d’abstraction dans [36].
V (x0 )
(6.1)
distance(x, x0 )n
– les canaux par voie d’affiche, où un agent désirant communiquer place son mes-
sage sur un espace accessible par l’ensemble des agents (tableaux noirs) et que
les agents concernés consulteront par la suite.
Communiquer, c’est aussi interpréter les signaux reçus. Un signal prend un sens
lorsqu’un agent réunit deux conditions : lorsqu’il perçoit le stimulus en question (son,
signal visuel, odeur, paquet TCP, etc.) et lorsque son système interprétatif transforme
le signal en sens (symbole) ou en comportement (réaction). Un tel processus d’abduc-
tion nécessite l’utilisation d’un formalisme déterminé à l’avance et compréhensible
par les deux parties pour décrire la nature des messages envoyés.
l’équipe. Un tel but est dit persistant car il est initié par plusieurs agents et sera main-
tenu tant que tous les agents participant à son accomplissement n’auront pas décidé
de son obsolescence. Milind TAMBE définit dans [34] une méthode appelée l’intention
jointe (joint intention), qui permet a plusieurs agents de se mettre d’accord sur un plan,
qui sera valide tant qu’une clause d’irrelevance reste invalide. Ce mécanisme est ap-
pelé le but persistant joint (Joint Persistent Goal).
On trouve aussi dans [15] un exemple de partage de buts. L’architecture qui y est
décrite est basée sur celle de R AO et de G EORGEFF [24] (il s’agit d’une architecture
BDI, voir la section 5.3.2, page 54). Les agents du système décrit partagent des buts
en partageant des éléments extraits des mondes désirés par chacun d’entre eux et leurs
intentions sont la garantie d’une activité jointe.
agent possède une matrice mettant en correspondance les compétences requises par
les tâches à effectuer et les agents possédant ces compétences. Lorsqu’un agent déter-
mine qu’un autre agent est capable de prendre en charge une tâche, il lui demande
de l’effectuer (allocation directe), ce que ce dernier peut refuser. Si un agent ne peut
déterminer de destinataire pour une de ses tâches, il délégue ce choix à son réseau
d’accointances, c’est-à-dire un ensemble d’agents qui à leur tour vont tenter de trou-
ver des agents pour effectuer cette tâche (allocation par délégation).
Un autre mécanisme dynamique est basé sur la métaphore du contrat, qui peut
être mise en œuvre pour partager les tâches. Un agent ayant besoin de voir une tâche
accomplie émet un appel d’offres à destination de tous les agents qu’il croit pouvoir
accomplir cette tâche. Les agents qui reçoivent cet appel et qui peuvent effectivement
y répondre envoient une proposition à l’émetteur, qui choisit la proposition la plus
adaptée à ses besoins. Ce système présente l’avantage de la simplicité mais multiplie
les échanges de messages entre les agents du système et implique un mécanisme de
comparaison et de choix des offres.
D URFEE et L ESSER proposent dans [9] un modèle apportant une dimension dyna-
mique et une approche à base de plans du mécanisme du contrat et du partage de
tâches. Ce modèle considère qu’un contrat n’est qu’un plan : l’engagement qui lie
deux parties lors de l’établissement d’un contrat est équivalent au partage d’un plan
dont l’objet serait celui du contrat. Ainsi, si l’un des agents d’un système à besoin
qu’une tâche soit accomplie (ce modèle s’applique aussi au partage de ressources), il
propose un plan à ses voisins. Si un voisin décide de lui venir en aide, il accepte le
plan et le partage avec l’émetteur. Les agents peuvent de plus proposer des aménage-
ments aux plans soumis (contre-plans), voir annuler un plan en cours d’exécution s’il
ne correspond plus à leurs buts internes (voir la section 6.2.5, de la présente page).
diates, les agents d’un système ont tout intérêt à estimer à l’avance l’évolution de
leurs actions et des actions de leurs partenaires afin de déclencher leurs actions au
moment opportun. De même, un agent doit être capable d’évaluer les actions futures
de ses partenaires pour adopter une bonne attitude passive.
(commit). Chaque agent ainsi engagé coopérera et partagera des buts jusqu’à l’accom-
plissement de son engagement.
male, un agent décide d’effectuer une action qu’un autre agent entame au même mo-
ment mais tous les deux renoncent à la continuer croyant que l’autre s’en chargera,
etc. Milind TAMBE décrit dans [34] quelques unes de ces problématiques appliquées
à la simulation militaire.
La détection des pannes est un problème qu’on peut en partie résoudre par une
analyse constante du système et par la mesure de ses performances (un agent du
système peut être dédié à la détection des pannes). En revanche, la prédiction des
pannes est structurellement difficile. En effet, une panne est par nature un échec non
prédictible. Ainsi, un système multi-agents aura tout intérêt à être muni d’un sys-
tème performant de récupération d’échecs et de pannes. Notamment, la granularité
du traitement des pannes est un paramètre à prendre en compte : selon la gravité de
la panne, un agent tente de la résoudre seul ou il décide que le système tout entier
est concerné et doit être mis au courant de la nature de la panne et des remèdes à y
apporter. D’une manière générale et à condition que le coût de la communication soit
inférieur au bénéfice, lorsqu’un agent du système est incapable d’exécuter sa part du
plan global, il est de sa responsabilité d’avertir le reste du système de la nature de
l’échec rencontré et ainsi d’initier un processus de recouvrement concerté. Si le coût
de l’annonce d’un échec est important, les agents d’un système doivent prendre eux-
mêmes en charge la surveillance des actions des membres de leur système.
incapable, il attend qu’un autre agent le fasse pour lui (et potentiellement, détruit
l’opérateur si aucun n’en est capable).
Dans [22], Lynne E. PARKER définit la méthode ALLIANCE, une méthode alterna-
tive. Chacun de ses agents passe en revue les comportements possibles et estime le
désir qu’il a d’adopter chaque comportement (en se basant sur les informations reçues
de ses récepteurs, de la communication avec les autres agents, des aspects inhibiteurs
de son propre comportement ainsi que de ses motivations et buts). Le désir de cha-
cun de ces comportements possibles augmente en fonction du temps et lorsque ce
désir dépasse un certain seuil, le comportement est activé. Dans le cas où un agent A
est en charge d’un comportement (ce qui est déterminé par la communication ou par
l’observation de son comportement), le désir de l’agent B de voir ce comportement
activé croît beaucoup plus lentement. Ainsi, si l’agent A est incapable d’accomplir le
comportement sélectionné, l’agent B finira par activer ce comportement. Ce méca-
nisme est appelé l’impatience et permet une résolution émergente de pannes dans un
système multi-agents.
Une équipe est un cas particulier d’organisation des systèmes multi-agents. Il s’agit
d’un système multi-agents coopératif dont les membres, coopèrent et se coordonnent
mutuellement et tournent de plus leurs efforts coopératifs vers l’accomplissement
d’un but commun. Former une équipe implique donc de partager des buts (voir la
section 6.2.3, page 66) et d’être capable de se mettre d’accord sur un plan commun.
Ainsi, raisonner sur une équipe implique l’hypothèse que les agents la composant
sont automatiquement amicaux et coopératifs entre eux et automatiquement hostiles
aux plans de l’équipe adverse. En effet, une autre des spécificités du jeu d’équipe est
l’existence d’une équipe adverse dont le but est d’empêcher le but partagé opposé de
s’accomplir. Nous allons traiter dans cette section des problématiques spécifiquement
inhérentes au jeu d’équipe.
Une solution adoptée couramment pour régler les conflits est la mise en place de
formations et de rôles : un rôle décrit un but et un comportement au sein d’une for-
mation dont tous les membres partagent les buts. La distinction de rôles permet de
limiter les conflits, notamment de localisation physique, ainsi que les redondances.
Les agents participant à une formation doivent tous en être conscients et connaître
leur rôle, ce qui implique l’échange de messages de synchronisation ou l’utilisation
de plans préétablis (par exemple via le locker-room agreement, voir la section 2.2.4,
CHAPITRE 6. DÉCISIONS ET PLANS COOPÉRATIFS DANS LE JEU D’ÉQUIPE 74
page 15). D’une manière générique, les équipes d’agents ont tout à gagner à privi-
légier des équipes flexibles par rapport à des équipes rigides, composées invariable-
ment des mêmes agents. Ainsi, le rôle d’un agent au sein d’une formation est flexible
et peut évoluer au fil du temps, en fonction de ses motivations à rester au sein de
la formation [27]. De même, une formation peut cesser d’exister lorsqu’une clause
d’invalidation est déclenchée (typiquement, lorsque la raison d’être d’une formation
a été atteinte ou lorsque son objectif n’est plus atteignable).
Une autre approche consiste à définir un capitaine. Le capitaine est un agent mem-
bre de l’équipe qui dispose de privilèges directifs particuliers. La désignation du ca-
pitaine peut faire partie de plans prédéfinis ou alors faire l’objet d’une élection en
cours de jeu. De même, une stratégie alternative consiste à définir des capitaines dont
l’autorité directive sera locale à une formation.
communication d’une équipe. Cette stratégie de contrefaçon est contrariée par des
mécanismes d’encryption ou de date des messages émis et reçus [28].
Conclusion
Notre équipe est basée sur l’implémentation de l’équipe CMUnited 2000 (CMU-
2000) décrite dans [25, 28, 29]. L’équipe CMU-2000 est développée à l’université Car-
negie Mellon et fût vainqueur des compétitions de 1998 et de 1999. Nous avons utilisé
les couches basses (couche et protocole réseau, analyse des informations sensorielles,
effecteurs bas niveau, exécution temporelle asynchrone, etc.) de CMU-2000.
L’activité comportementale de nos agents est basée sur l’exécution de plans, re-
présentés par autant d’instances différentes qu’il existe de plans en cours. Le choix
actuel de l’exécution d’un plan est laissé à l’ordonnanceur des tâches qui exécute la
plus prioritaire du cycle en cours. Ainsi, l’ordonnancement des tâches est le méca-
nisme qui permet de passer de l’exécution d’une tâche à une autre, ce qui produit
un mécanisme multi-tâches non préemptif. Un mécanisme plus fin serait l’affectation
de quantificateurs de priorité aux différentes tâches. Un algorithme de répartition
78
CHAPITRE 7. CONCLUSION 79
De même, l’extension du mécanisme des plans serait une chose tout à fait souhai-
table. Notamment, les conditions d’invalidation actuelles sont communes à toutes les
instances, ce qui pourrait être modifié au profit de la définition de conditions d’inva-
lidation propres à chaque instance. Ainsi, un agent pourrait déclencher un plan de
type « aller chercher la balle » sur la foi de l’analyse des intentions d’un autre agent
et abandonner ce plan lorsqu’il se rend compte que les intentions de cet agent ne sont
pas ce qu’il a évalué, bien que l’état du monde rende possible l’exécution du plan.
Les activités de visualisation de l’activité des agents implémentés est assurée par
une couche de primitives graphiques symboliques, qui permettent de visualiser et de
suivre l’évolution d’un symbole de la mémoire de l’agent. Il est de la responsabilité
des plans en cours de décider des symboles à afficher via la couche de primitives
graphiques. On peut imaginer l’extension de ce mécanisme : la conception de plans
de pure visualisation permettraient à l’opérateur de visualiser des structures de don-
nées arbitraires. Nous comptons de plus développer des périphériques de visuali-
sation supplémentaires, notamment un affichage PostScript et un affichage en trois
dimensions utilisant OpenGL.
Nous proposons une méthode de modélisation des agents de notre système qui se
baserait sur l’adoption de la même modélisation pour les agents de son système que
pour l’architecture interne de l’agent. En effet, le système mis en place souffre de la
séparation de l’heuristique d’analyse comportementale et de la fonction comporte-
mentale réelle. Ceci rend difficile l’analyse du comportement des agents du système,
puisque cette dernière se base sur une évaluation externe au processus comporte-
mental. Nous proposons la mise en place d’un mécanisme où l’agent « réel » (l’agent
exécuté par un processus UNIX et communiquant avec le serveur de la RoboCup)
simule par des structures identiques à la sienne les autres agents du système et les
exécute en parallèle à sa propre exécution. L’agent réel s’interfacerait avec les agents
simulés par des canaux de communication semblables et un protocole identique à
celui utilisé pour communiquer avec le serveur. Il se chargerait d’envoyer des infor-
CHAPITRE 7. CONCLUSION 80
mations sensorielles aux agents simulés en se basant sur ses croyances propres.
Une autre problématique est l’aspect récursif des simulations d’agents. Si nous
prenons l’hypothèse que l’agent A et l’agent B se simulent mutuellement, A simu-
lera le comportement de B sans tenir compte du fait que son propre comportement
est simulé et estimé par B, qui agit donc en conséquence (le même mécanisme est
valable pour l’agent B). Il serait donc nécessaire pour une réelle coordination de si-
muler récursivement les modèles des différents agents. La problématique de ce type
de solution est la rapide explosion combinatoire des modèles simulés. Ce problème
pourrait être résolu par le partage de modèles ou par un mécanisme de consultation
d’états mentaux privilégiés entre les agents simulés.
Le modèle utilisé pour implémenter les agents de notre système laisse de plus vo-
lontairement de côté les problématiques de la communication dans un milieu bruité
et non fiable comme celui de la simulation de la RoboCup au profit d’une estima-
CHAPITRE 7. CONCLUSION 81
Nous comptons explorer les possibilités de Scheme dans la modélisation des actes
de langage. Les performatifs du langage pourraient être facilement représentés par
des procédures Scheme : en effet, le mécanisme de l’analyse et le traitement d’un
performatif est très similaire à celui de l’analyse et de l’exécution d’une procédure
fonctionnelle. Ainsi, le protocole de communication développé à partir de Scheme
pourrait bénéficier de structures de données complexes et des facilités fonctionnelles
d’un langage fonctionnel. De même, l’utilisation de Scheme permettrait de factoriser
les fonctionnalités du moteur Scheme implémenté dans nos agents tout en simpli-
fiant l’intégration d’informations au sein des instances de nos agents.
82
BIBLIOGRAPHIE 83
[23] P YNADATH , D. V., TAMBE , M., C HAUVAT, N., AND C AVEDON , L. Toward team-
oriented programming. Tech. rep., Information Science Instritute and Computer
Science Department, 1999.
[24] R AO , A. S., AND G EORGEFF , M. P. Bdi agents : From theory to practice. Tech.
rep., Australian Artificial Intelligence Institute, April 1995.
[25] R ILEY, P., S TONE , P., M C A LLESTER , D., AND V ELOSO , M. ATT-CMUnited-
2000 : Third place finisher in the robocup-2000 simulator league. Tech. rep.,
Computer Science Department, Canegie Mellon University, 2000.
[26] R OBO C UP TEAM . Soccerserver Manual, 4.02 ed., 1999.
[27] S TONE , P., , AND V ELOSO , M. Task decomposition, dynamic role assignment,
and low-bandwidth communication for real-time strategic teamwork. Artificial
Intelligence (1999).
[28] S TONE , P., R ILEY, P., AND V ELOSO , M. The CMUnited-98 champion simulator
team. Tech. rep., Computer Science Department, Canegie Mellon University,
1998.
[29] S TONE , P., R ILEY, P., AND V ELOSO , M. The CMUnited-99 champion simulator
team. Tech. rep., Computer Science Department, Canegie Mellon University,
1999.
[30] S TONE , P., R ILEY, P., AND V ELOSO , M. Defining and using ideal teammate and
opponent agents models. Tech. rep., AT&T Labs, Carnegie Mellon University,
2000.
[31] S TONE , P., AND V ELOSO , M. Multiagent systems : A survey from a machine
learning perspective.
[32] S TROUSTRUP, B. Le langage C++, 3 ed. CampusPress France, 1999.
[33] TAMBE , M. Implementing agents teams in dynamic multi-agent environments.
Tech. rep., University of Southern California, 1997.
[34] TAMBE , M. Toward flexible teamwork. Journal of Artificial Intelligence Research 7
(1997).
[35] TAMBE , M., AND R OSENBLOOM , P. S. Architectures for agents that track other
agents in multi-agent worlds. Tech. rep., University of Southern California, 1995.
BIBLIOGRAPHIE 85