• Aucun résultat trouvé

Simulation multi-niveaux et utilisation de données

complexité algorithmique de la recherche des interactions réalisables [28] : il faut donc d’abord évaluer le gain d’expressivité que l’on attend de tels ajouts.

Sémantique et interactions

En tant que méthode de conception de simulations, IODA a été conçue pour mini- miser le contact des thématiciens avec le code, tout particulièrement avec les parties les plus « sensibles » de ce code comme l’ordonnanceur de la simulation. En utili- sant JEDI-Builder ou IODA-NetLogo, il reste peu de choses à écrire : les primitives de chaque famille d’agents et de l’environnement. C’est peut-être encore trop car nombre de thématiciens sont peu ou pas formés à l’algorithmique.

Une piste serait de spécifier la sémantique des primitives d’une façon plus proche du langage naturel, pour ensuite les traduire de façon plus ou moins automatique dans un langage de programmation. Mais il me semble que les solutions les plus réa- listes sont plutôt de nature graphique et constructionniste. Ainsi, par exemple, Ber- sini [65] défend l’usage d’UML comme terrain commun pour définir non seulement les entités d’un modèle de simulation mais également leur comportement (notam- ment au moyen des diagrammes de séquences et d’états). On a lieu de craindre que la conception d’un modèle UML complet soit aussi difficile pour un thématicien que celle d’un modèle computationnel ; néanmoins la perspective change notablement s’il ne s’agit de définir que les primitives, dont la complexité individuelle est sans com- mune mesure avec celle de l’ensemble. Parmi d’autres alternatives intéressantes, le langage Scratch [147], conçu en vue d’enseigner la programmation et l’algorithmique à de jeunes enfants, fournit une syntaxe visuelle pour représenter des branchements, des boucles, des événements, des fonctions, etc. de sorte que l’on peut construire des programmes par assemblage et composition d’éléments visuels.

Dans un cadre plus spécifiquement multi-agents, la « programmation situation- nelle » proposée par Michel et al. [156] semble encore plus prometteuse : elle vise à se détacher de l’algorithmique en demandant au concepteur d’élaborer des situations à partir de percepts de bas niveau, et de paramétrer un plan, le tout sous une forme également graphique. Les limitations inhérentes à cette approche (notamment une as- sez forte dépendance au domaine) pourraient certainement être levées dans le cadre de la forte séparation déclaratif/procédural imposée par IODA.

6.2 Simulation multi-niveaux et utilisation de données

Au vu des recherches menées dans ce domaine depuis quelque temps, il me semble qu’on peut esquisser trois sujets majeurs qui se développent en parallèle, et dont l’interdépendance promet des avancées importantes pour la simulation multi-agents dans les années à venir :

1. D’abord, on peut signaler avec Morvan [163] l’explosion de l’intérêt (sinon des recherches) pour la simulation multi-niveaux. Cela tient à la nature même des phénomènes que la simulation multi-agents cherche désormais à étudier, mais il est certain que le « découpage » d’une simulation monolithique en sous- systèmes est en outre une bonne façon de réduire la complexité du phénomène

à modéliser, d’accroître la modularité des simulations et par là même la révisa- bilité des modèles — pour peu qu’on dispose de méthodes génériques pour ce faire.

2. Ensuite, il devient crucial, pour la calibration et le paramétrage des simulations, de disposer de techniques de recherche automatique d’informations dans les im- menses volumes de données issus de ces phénomènes. L’enjeu ne se réduit pas à l’extraction de statistiques simples, mais bien à l’identification et à la construc- tion de connaissances pertinentes dans un cadre multi-agents.

3. Enfin, on voit également se développer une étude détaillée des possibilités de distribution physique du calcul sur des architectures physiquement distribuées ou simplement parallèles [155, 80, 151]. Cela répond à la montée en échelle des calculs à effectuer, mais ouvre également des perspectives de modélisation de type « champ » [155] qui n’étaient guère abordables jusqu’à présent, et par suite la possibilité de jeter des ponts vers des approches utilisant le continu.

Ce n’est sans doute pas un hasard si ces trois sujets émergent de façon concomi- tante : ils naissent des mêmes besoins. Mais en outre, ils sont susceptibles de s’assister mutuellement :

— la simulation multi-niveaux utilise des techniques de comparaison et de classifi- cation des agents pour détecter les structures émergentes [209, 120, 160, 78, 77], de sorte que les travaux sur les informations qui peuvent être extraites des don- nées pour la calibration des comportements ne peuvent que faire progresser les recherches sur l’identification et l’agentification de macro-agents ;

— réciproquement, il est sans doute plus facile de traiter et de rendre intelligibles de grosses masses de données si l’on est capable de les projeter sur différents niveaux d’analyse ;

— au fur et à mesure que les simulations gagnent en complexité, elles sont elles- mêmes susceptibles de produire des volumes de données considérables, qu’il faut également être capable de représenter d’une façon synthétique et en rapport avec la forme multi-agents des modèles ;

— la simulation multi-niveaux nécessite souvent une montée à l’échelle, de sorte que l’utilisation de méthodes de calcul parallèle permet, comme le montre Mi- chel [155], de traiter des problèmes de grande ampleur en un temps raison- nable — de fait on commence à voir des plateformes de simulation « clas- sique » prendre le tournant du calcul haute performance (High Performance Com- puting) [82].

Le second volet de mon programme de recherche visera donc à prolonger les tra- vaux amorcés sur la simulation multi-niveaux, en y intégrant les problématiques d’ex- traction de connaissances à partir des données.

Problématiques liées au multi-niveaux

Pour ce qui est de la simulation multi-niveaux, nous disposons avec PADAWAN d’un cadre de modélisation tout à fait adéquat. Il reste maintenant à travailler sur les points suivants :

6.2 – SIMULATION MULTI-NIVEAUX ET UTILISATION DE DONNÉES

— se servir de régularités observées dans des groupes d’agents pour les agréger automatiquement en un agent compartiment, doter celui-ci d’un comportement macroscopique (sous la forme d’interactions) qui reflète le comportement collec- tif des agents qu’il héberge, qui eux-mêmes peuvent ensuite être éliminés si c’est nécessaire (par exemple pour réduire les coûts computationnels) — on notera que ces préoccupations rejoignent les travaux autour de la réification de struc- tures émergents mais supposent également un travail en amont sur l’expression d’une « sémantique » des interactions ;

— inversement, sur la base par exemple des techniques employées pour générer des populations diversifiées de clients (§5.3) ou pour anticiper l’évolution de structures agrégées [173], élaborer des méthodes qui permettent, à partir du comportement d’un agent, de recréer automatiquement le système sous-jacent, en générant des micro-agents qui reflètent un état possible de ce système et vont ensuite interagir pour produire collectivement un comportement équivalent.

Problématiques liées au traitement des connaissances

Jusqu’à présent nous avons posé une hypothèse forte sur la forme des données. En particulier, une transaction ne garde pas de trace de l’ordre dans lequel l’agent a satisfait (ou cherché à satisfaire) ses buts. Or, il arrive fréquemment dans les systèmes naturels qu’on dispose d’informations chronologiques : une séquence d’événements ac- complie par les agents. Les traces sont alors ordonnées, voire caractérisées par une durée. Dans les systèmes artificiels, ces informations peuvent évidemment être re- cueillies à des fins d’analyse.

Afin de généraliser l’approche que nous avons proposée, une prochaine étape consistera à mettre au point des méthodes capables de traiter des traces chronolo- giques. Un certain nombre de pistes sont envisageables pour cela, la plus promet- teuse étant semble-t-il à chercher du côté de l’analyse de processus (process analysis) ou de workflows [53, 52].

Synthèse

On voit ainsi se dessiner une double approche pour analyser des comportements collectifs et leurs rapports aux comportements individuels :

— une approche synchronique qui, étant donné une certaine fenêtre temporelle, détermine les propriétés et les buts de groupes d’agents similaires, de façon à pouvoir agréger un groupe en un macro-agent ou inversement, dissoudre un agent en un système d’entités plus fines ;

— une approche diachronique qui, pour un groupe d’agents donné, s’intéresse à la succession de ses actions pour identifier un comportement type, voire inférer les interactions sous-jacentes.

Sans vouloir à toute force laisser penser qu’il n’y point de salut en dehors de l’ap- proche orientée interactions, il me semble néanmoins qu’un tel programme ne peut être mis en œuvre sans s’appuyer sur des principes assez similaires, en particulier une séparation déclaratif/procédural et une séparation entre entités, comportements

et espaces (ce que nous traduisons dans IODA/PADAWAN par agents, interactions et environnements).

Pour rester dans la « ligne » IODA, nous pourrions appeler ce projet « KENOBI » (pour : Knowledge Extraction from Natural Observations to Build Interactions).