Modèles de visualisation à base d’agents
Organisation d’un modèle
Définir un modèle en GAML revient à définir une espèce modèle, ce qui permet ensuite d’instancier un agent modèle (une simulation), qui peut ou non contenir des micro-espèces, et qui peut contenir des plans d’expérience pouvant être simulés. Cette structure conceptuelle est respectée dans la définition de fichiers de modèles, qui suit un schéma similaire : 1. Définition des espèces globales, précédée par un en-tête, afin de représenter les espèces du modèle. 2. Définition des di↵érentes micro-espèces (soit imbriquées dans les espèces globales ou au même niveau). 3. Définition des di↵érents plans d’expérimentation qui ciblent ce modèle. En-Tête L’en-tête (header) d’un fichier GAML commence avec la déclaration obligatoire du nom du modèle qui servira aussi de nom pour définir l’espèce du modèle. Un modèle est lui même considéré comme étant un agent. La déclaration du modèle est éventuellement suivie de fichiers pointant vers d’autres modèles. Les variables et actions globales y sont définies. Un bloc d’initialisation permet d’instancier les agents et d’initialiser les variables globales. Species (Entité) L’en-tête est suivi par la déclaration des di↵érentes espèces qui seront présentes dans le modèle. Une espèce est un objet représentant une catégorie, qui est instanciée en un ou plusieurs agents qui hériteront de ses attributs et de ses propriétés. Cela rappelle la conception de programmation orientée objet mais la di↵érence la plus notable réside dans la définition des réflexes. On définit un comportement que chaque agent instancié va pouvoir exécuter, que ce soit indépendamment ou en relation avec les autres. Une espèce peut contenir plusieurs éléments : – Attributs : définit l’état des agents. – Action : définit une capacité des agents. Une action est un bloc d’instructions exécutées lorsque l’action est appelée. – Reflex : définit le comportement par défaut des agents. Ces deux déclarations contiennent des instructions qui sont exécutées, respectivement, une fois lorsque l’agent est créé pour les états d’initialisation, et à chaque étape de simulation ou selon une condition facultative.
Environnement 3D immersif
Dans un modèle de visualisation à base d’agents, les agents sont spatialisés et possèdent donc une position dans un monde 3D, utilisant des coordonnées cartésiennes et dans lequel il est possible d’utiliser la plupart des techniques modernes de visualisation réaliste en 3D. Initialement seule la 2D était prise nativement en compte dans la plateforme GAMA. Cet environnement immersif, développé au cours de la thèse, s’articule autour d’une librairie graphique dédiée, OpenGL 4. OpenGL a été choisie pour di↵érentes raisons notamment son caractère multi-plateformes et non propriétaire. Cette librairie dispose de nombreuses fonctionnalités utiles à l’élaboration d’un laboratoire immersif telles que la possibilité de créer des objets 3D, de définir des caméras, d’utiliser des textures et di↵érentes sources lumineuses 5. Comme le souligne [Allan, 2010] et [Railsback et al., 2006], l’usage de la 3D est encore peu courant dans le monde de la simulation multi-agent et il existe peu de méthodes pour enrichir visuellement les simulations [Crooks et al., 2011].
Introduction à OpenGL
Nous décrivons dans cette partie les possibilités d’OpenGL afin de mieux comprendre le fonctionnement et les capacités des modèles de visualisation que nous proposons. OpenGL (Open Graphics Library) est donc une bibliothèque graphique permettant de développer des applications 2D ou 3D. De nombreux jeux et applications utilisent OpenGL pour leur rendu (Google Earth, Blender, AutoDesk, etc). Cette librairie fournit des fonctions 3D devant être exécutées dans un contexte graphique. Il est donc nécessaire de choisir un système de fenêtrage afin de permettre à l’utilisateur d’interagir via un clavier et un dispositif de pointage comme une souris avec plusieurs applications graphiques visibles simultanément. Une scène 3D est essentiellement formée de polygones, le polygone le plus souvent utilisé est le triangle. Même un modèle 3D extrêmement complexe est souvent composé essentiellement de triangles. Pour dessiner un polygone en OpenGL il faut définir tous les sommets qui le composent et indiquer à OpenGL comment il doit interpréter ces sommets. On parle plus souvent du terme anglais vertex (vertices au pluriel). Une fois les polygones définis, les transformations vont permettre de placer ces polygones à n’importe quel endroit d’une scène 3D. Parmi ces transformations on trouve la translation, la rotation et le changement d’échelle. Ces transformations sont gérées en OpenGL à l’aide de matrices. L’utilisation géométrique de ces matrices permet de prédire numériquement le résultat d’une transformation. Ces matrices sont rarement manipulées directement mais nous rappelons simplement qu’il en existe trois : la matrice de projection dans laquelle le type de projection est défini (orthogonale ou perspective), la matrice ModelView permettant de positionner les objets dans la scène 3D (caméra, vertices, lumières, etc), et enfin la matrice de texture permettant de faire des textures animées. Lorsque l’on décrit un ensemble de polygones à l’aide de vertex, on définit la scène 3D ”telle qu’elle est dans l’absolu”. Pour passer du monde ”réel” à l’écran, il est nécessaire de (1) définir la zone de la fenêtre qui servira pour le rendu, (2) le mode de projection et de (3) placer une caméra dans le monde ”réel”. Ces trois informations vont permettre à OpenGL de calculer les transformations à faire subir aux objets du monde ”réel” pour qu’ils apparaissent sur un écran à 2 dimensions. En d’autres termes, pour passer des vertices dans le monde ”réel” au pixels dans le monde ”écran” comme le montre la figure 2.5
Modèle de visualisation
Cette partie vise à expliciter les concepts exposés dans la partie précédente en les appliquant au modèle de visualisation à base d’agents. Certains concepts seront directement empruntés à la technologie de rendu OpenGL, d’autres seront spécifiques à la méthodologie à base d’agents. Cette syntaxe permet de (1) faciliter la création de scène 3D pour le modélisateur et (2) conserver la même méthodologie orientée agent. Nous rappelons qu’il faut voir un modèle de visualisation à base d’agents comme une collection d’agents ayant chacun un ou plusieurs aspects, chacun de ces aspects pouvant être utilisé dans differents
Conséquences de l’approche agent
De le même manière qu’en modélisation à base d’agents la programmation individuelle permet de représenter et étudier des phénomènes émergents, on montre dans cette partie que en programmant des agents graphiques dans des modèles de visualisation nous pouvons reproduire de fa¸cons simples des processus d’abstraction graphiques, réaliser des activités analytiques de bases et enfin disposer d’une certaine forme d’interactivité avec l’utilisateur.
Abstraction
En visualisation, l’abstraction joue un rôle majeur dans la perception. L’abstraction consiste à réduire la quantité d’information la plupart du temps en cachant des éléments ou en rendant l’information moins détaillée [Saitta and Zucker, 2001]. Kandinsky est un des premiers à proposer une approche scientifique de l’abstraction [Kandinsky, 1991]. Bertin se penche sur la fa¸con de découvrir les relations, l’ordre et la proportionnalité dans les données qualitatives et quantitatives. Dans la sémiologie graphique, qu’il formalise, il étudie comment produire des graphiques utiles en identifiant leurs variables visuelles et en proposant des règles pour les construire [Bertin, 1981].
1 Visualisation à base d’agents |