next up previous contents
suivant: Bibliographie monter: memoire précédent: La programmation orientée équipe   Table des matières


Conclusion

Ce mémoire décrit la conception et l'implémentation d'une équipe de robots footballeurs simulés. Cette simulation est réalisée par un système multi-agents dans lequel chaque agent modélise un robot footballeur. Son implémentation tient compte des problématiques du milieu (fortement dynamique et bruité) dans lequel les agents évoluent. Elle fournit de plus un mécanisme pour contrôler les erreurs dans l'exécution des plans des agents, ainsi qu'un mécanisme de visualisation des actions en cours et un mécanisme de modélisation par hypothèses du comportement des coéquipiers.

Notre équipe est basée sur l'implémentation de l'équipe CMUnited 2000 (CMU-2000) décrite dans [#!riley-2000!#,#!stone-1998!#,#!stone-1999!#]. L'équipe CMU-2000 est développée à l'université Carnegie 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, repré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écanisme 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 de ressources proche de celui des ordonnanceurs de systèmes d'exploitation multi-tâches préemptifs permettrait une réelle exécution concurrente des tâches en cours.

De même, l'extension du mécanisme des plans serait une chose tout à fait souhaitable. 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'invalidation 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 données arbitraires. Nous comptons de plus développer des périphériques de visualisation 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 comportementale 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 comportemental. 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 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 heuristiques 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 repré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 ainsi de manière privilégiée et pourrait leur permettre de s'échanger des plans et d'estimer ce à quoi les autres sont occupés.

Cette technique se base cependant sur l'hypothèse que la modélisation du comportement utilisée est bien identique aux fonctions comportementales des agents simulés. Ainsi, la simulation des adversaires par cette technique serait approximative car elle se baserait sur des prédicats comportementaux différents. Cependant, une telle solution permettrait d'approximer la modélisation du comportement des adversaires en se basant sur l'hypothèse que les primitives comportementales (aller vers la balle, envoyer la balle dans les buts, etc.) des adversaires sont proches des primitives comportementales de notre équipe.

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$ simulera 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 simuler 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 volontairement 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 estimation comportementale silencieuse et donc d'une synchronisation implicite. Le coût de l'attente d'une information ou d'une réaction de la communication entre agents pourrait être limité en mettant en place un paradigme de communication informative à « sens unique. » C'est-à-dire un paradigme dont les messages émis n'attendraient pas de réponse mais auraient pour but d'informer les coéquipiers. Par exemple, un agent décidera d'annoncer le déclenchement d'une action importante pour les buts globaux de l'équipe (heuristique rigide) ou il décidera de communiquer à un agent une information invalidant le plan en cours d'exécution. L'utilisation du coach et de la simulation des agents de l'équipe au sein de l'agent coach réel permettrait de tester un tel paradigme de communication.

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 simplifiant l'intégration d'informations au sein des instances de nos agents.

Nous avons été confrontés à la problématique des actions complexes en milieu bruité, notamment pour les « effecteurs » non atomiques (tourner la balle, dribbler avec elle jusqu'à un point, etc.). Actuellement, ces effecteurs sont écrits de manière heuristique. Nous envisageons une réécriture de ces effecteurs de manière non statique en nous basant sur des algorithmes d'apprentissage automatique, par exemple en utilisant les algorithmes génétiques. Cette approche a par exemple déjà été étudiée et utilisée avec succès dans [#!andre-1998!#,#!stone-1998!#].


next up previous contents
suivant: Bibliographie monter: memoire précédent: La programmation orientée équipe   Table des matières
Benjamin DRIEU 2001-10-12