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 intervenir 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 scientifique 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édération internationale de football.
Plusieurs catégories de
rencontres existent actuellement: les robots de petite taille, les robots
de taille moyenne, les robots quadrupèdes et enfin les programmes
informatiques de simulation. Chaque catégorie fournit une base commune
d'expérimentation pour toutes les équipes. Les trois premières
catégories mettent en uvre des robots autonomes et se focalisent
principalement sur des problèmes physiques (robotiques).
La dernière catégorie se focalise elle sur les problèmes
d'intelligence artificielle et met les différents programmes informatiques
concourant en
relation au moyen d'un serveur de simulation et d'un
protocole réseau de communication spécifique à la compétition.
Les contraintes de l'implémentation (pour la RoboCup) d'une équipe simulée par
des programmes informatiques restent proches de celles de
l'implémentation d'une équipe de robots réels afin d'avoir la
simulation la plus réaliste possible. En effet l'environnement dans
lequel les programmes évoluent est fortement dynamique (il évolue de
manière asynchrone par rapport à l'agent) et bruité
(les capteurs de l'agent sont imparfaits et incomplets). L'équipe
simulée est donc confronté aux mêmes problèmes d'imperfection et
d'incomplétude des capteurs que l'équipe réelle.
De même, la communication entre agents est
coûteuse et non fiable. L'implémentation décrite dans ce mémoire
prend en compte ces paramètres et propose un mécanisme de
contournement des problématiques de communication.
La motivation de la mise en place d'une simulation de robots
footballeurs est l'abstraction des contraintes matérielles (financières
ou techniques) de conception et d'implémentation de robots. De même,
l'utilisation d'une simulation logicielle de robots permet
d'expérimenter des techniques d'intelligence artificielle plus
profondément que ne le permet la technologie robotique actuelle.
Le choix de la RoboCup comme base d'expérimentation tient à ce que la
RoboCup est un
terrain d'application remarquable des technologies multi-agents. En
particulier, elle offre de
nombreuses possibilités d'expérimentation: la conception
de paradigmes robustes
de coopération en milieu dynamique, le développement de
protocoles de tolérance de pannes, l'adoption d'un comportement
consistant, etc. La simulation d'une équipe de football permet
de se confronter notamment aux
nombreuses contraintes dynamiques et aux forts besoins d'interactions
entre agents logiciels se partageant une faible bande passante.
Ces problèmes sont ceux auxquels nous nous intéressons dans cette
implémentation.
L'architecture du système multi-agents détaillé dans ce mémoire est
basée sur la coopération de plusieurs agents. Son implémentation
repose sur les processus des systèmes d'exploitation de type UNIX:
chaque agent sera contenu dans un
processus UNIX différent et sera donc autonome et distinct. Les interactions
entre processus sont assurés par le serveur de simulation, qui
contient une référence de l'état réel du monde et qui gère les
communications entre agents.
Le comportement des agents est basé sur l'exécution de plans.
Un plan est un enchaî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é avec l'exécution du programme).
L'utilisation d'un agenda permet d'exécuter le plan
le plus important (c'est-à-dire en première position dans l'agenda)
à chaque cycle d'exécution de l'agent.
De plus, chaque plan comporte des informations visuelles lui
permettant de produire une représentation symbolique à destination de
l'opérateur en se basant sur l'affichage des symboles utilisés pour
l'exécution du plan.
Cette représentation est rendue possible par la
définition d'une couche graphique de haut niveau, indépendante du
support d'affichage.
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.
Les instances de plans en cours permettent de plus à un agent d'estimer
le comportement de ses coéquipiers par l'utilisation d'une heuristique
de classe. Cette heuristique reproduit l'exécution
réelle d'un plan tel que l'ensemble de l'équipe l'exécute.
L'implémentation d'un tel mécanisme d'évaluation comportementale
structurellement partagé permet l'économie de communications
(coûteuses en milieu dynamique bruité) au profit d'une synchronisation
implicite basée sur des connaissances déduites.
En outre, nous proposons un mécanisme de contrôle du comportement des agents implémentés par l'exécution de scripts administratifs. Ces scripts sont écrits en langage Scheme et sont évalués à l'initialisation de l'agent ainsi qu'à la demande de l'opérateur.