Simulation Multi agent

Sommaire

1. Introduction
2. Simulation informatique
3. Pour aller plus loin...

Introduction

La simulation orientée agent est aujourd’hui utilisée dans un nombre croissant de secteurs, où elle remplace progressivement les différentes techniques de micro simulation et de simulation orientée objets. Ceci est dû, pour une part, à sa capacité à appréhender des modèles très différents d’individus, depuis des entités très simples jusqu’à des entités plus complexes (sous la forme d’agents cognitifs). La facilité avec laquelle différents niveaux de représentation peuvent être manipulés par le modélisateur est également une de ses qualités souvent mise en avant par rapport à ce qu’offrent les automates cellulaires. Cette versatilité apparente fait du SMA le support de choix pour la simulation de systèmes complexes et elle se diffuse dans un nombre croissant de domaines : sociologie, biologie, physique, chimie, écologie, économie, etc.

Simulation informatique

Général

La simulation informatique peut être assimilée, d'après Fishwick, à l'association des trois activités suivantes :

La conception du modèle associe la réalité à une représentation de celle-ci, en utilisant des données la plupart du temps formalisées. Il peut s'agir d'observations réelles (valeurs numériques) ou de connaissances sur le sujet. Ces entrées sont traduites en algorithmes qui seront exécutées dans le but de produire des données compatibles avec les observations.


Vue de la simulation par Fishwick

Le problème que pose cette approche est liée à traduction du modèle initial en un modèle exécutable par l'ordinateur. En effet aucune une phase intermédiaire entre la phase de conception et d'implémentation.

C'est pourquoi Gilbert et Troitzch ont cherché à raffiner un peu ce diagramme. Ils mettent en évidence le fait qu'à l'heure actuelle, aucun langage de programmation n'est capable de fournir suffisamment de guides pour la construction du programme de simulation (structuré, efficace, compréhensible aussi bien par le modélisateur que par l'informaticien...). Ils ajoutent l'étape intermédiaire de construction informatique du modèle qui n'est pas si triviale que le suggère Fishwick.


Proposition de Gilbert et Troitzch

Ces propositions sont orientées tâches, et ne sont pas vraiment spécifiques à la simulation multi agent. Dans la partie suivante, nous allons présenter la façon dont les agents sont réellement utilisés dans les simulations multi agents.

Simulation orientée agent

Les agents n'étant pas définis dans le même langage au moment de la conception et au moment de l'implémentation, des différences dans la sémantique se dessinent. Il devrait pourtant être possible, grâce aux langages de manipulation d'abstractions (comme UML par exemple), de tracer un parallèle entre l'usage des agents dans les SMA et l'utilisation des objets dans la programmation orientée objet. Comme les informaticiens préfèrent les langages orientés objets aux langages orientés agents, les agents ne sont pas vraiment pas présents dans les modèles opérationnels. Ils sont définis en tant que tel dans le modèle du domaine, comme métaphore des individus, ou dans le modèle de conception comme support conceptuels pour formaliser la définition des individus.
Cela signifie que nous n'utilisons pas d'agents pour implémenter les simulations multi agents, mais simplement pour les concevoir à cause de leur simplicité pour le modélisateur, bien que beaucoup de méthodologies et de langages aient été proposés.

Les agents computationnels ont un fort potentiel à devenir le futur de l'informatique, mais ils ne sont pas utilisés pour implémenter les agents conceptuels. Dans le but de concrétiser les possibilités qu'offriraient les agents computationnels dans la simulation orientée agent, nous présentons les quatre grandes classes d'applications :

Conception participative de simulations
La formalisation des comportements des agents décrits par les observations ou les théories est une opération d'extraction de connaissance difficile, qui peut nécessiter plusieurs itérations avant que son résultat ne soit satisfaisant. La conception participative invite experts et non experts à définir interactivement ces comportements. Des agents dotés de capacité d'apprentissage et d'une certaine autonomie décisionnelle pourraient automatiser le processus d'extraction des connaissances. Ils auraient un rôle de passerelle, entre les abstractions computationnelles et l'expert, afin qu'ils puissent ajuster, en itérant les interactions, les comportements pertinents et les contextes associés. L'expert approuverait les comportements observés par l'agent. Cela permet à l'agent d'apprendre de façon progressive, en impliquant l'expert dans le processus d'apprentissage.
Ce modélisateur du futur s'appuiera sur les domaines de recherche en apprentissage (par imitation, par démonstration, interactif situé, social, etc.), qui sont très actifs, mais il est encore très difficile d'imaginer des techniques génériques.

Interprétation assistée par agents
La dynamique de la simulation peut parfois être aussi compliquée à comprendre que le système modélisé, surtout quand celle-ci fait intervenir des milliers ou des millions d'agents de façon probabiliste. Pour faciliter l'analyse, il faudrait fournir aux agents des capacités d'abstraction pour leur permettre, en plus de leur comportement, d'interpréter des phénomènes locaux. Grâce à cette capacité d'introspection collective, les macro connaissances des thématiciens seraient distribuées. Comme l'a montré le travail de Servat, un ensemble d'interprétations locales réalisées par les agents de la simulation s'avère pertinent et utile.

Adaptation au niveau du système
La puissance de calcul grandissant au fur et à mesure que la SMA aborde des systèmes cibles complexes, il semble primordial d'envisager une simulation distribuée sur plusieurs machines. Cette approche n'est pas sans apporter de nouveaux problèmes, comme par exemple la nécessité de maintenir un état global cohérent, de répartir la charge entre les noeuds, de rendre le système tolérant aux pannes...
Les agents étant, par nature, distribués, ils permettraient de distribuer de façon adaptative et automatique des simulations, pas forcément conçues avec cet objectif. Si les agents ont une connaissance de l'état actuel de la simulation et éventuellement de l'état futur, alors ils pourraient être capables de gérer la distribution physique de la charge.

Calibration assistée par agents
Il est envisageable pour des agents computationnels de fournir une assistance intelligente à la calibration de la simulation. En effet, il s'agit de l'une des tâches les plus difficiles à réaliser, dans la mesure ou le thématicien ne fournit que des échantillons de la population réelle (moyennes, distributions par rapport à certains paramètres...). Le but de cette calibration automatique est de faire en sorte que la population artificielle résultante satisfasse, à la fois les critères locaux et globaux. C'est un problème comparable à la résolution de contraintes, aux problèmes d'optimisation multicritères et qui utilise la recherche opérationnelle ou l'IA.
La travail de Ben Saïd fournit un exemple de génération de population, dans lequel les agents meurent, survivent ou se reproduisent. Ils font converger la population résultante vers une population conforme à partir de laquelle la simulation peut se dérouler. 

Pour aller plus loin...

Pour en savoir plus sur la simulation à base de systèmes multi-agents, quatres sujets ont été appronfondis :

Algorithmes issus de la nature
Simulation de phénomènes naturels (éco-systèmes physiques)
Simulation en biologie (croissance de cellules, bioinformatique)
Simulation en socio-ethnologie (migration de population, changement d'opinion)