Executive model development

Développer un modèle exécutif
La plate-forme VLE implémente le simulateur DSDE publié par B.J. Barros. Ce simulateur permet de coupler les avantages de P-DEVS ('Parallel DEVS') et DS-DEVS (Dynamic Structure DEVS). Ce simulateur propose ainsi la possibilité aux modèles de faire évoluer leur structure, c'est-à-dire, les modèles couplés, les connexions, etc.

l'API d'un modèle exécutif
Avant tout, un modèle de type exécutif est un modèle DEVS classique, c'est-à-dire, il possède toutes les méthodes classiques :

$$ M_{\chi} = \langle X, Y, S, \mathit{init}, \delta_{int}, \delta_{ext}, \delta_{conf}, \mathit{ta}, \lambda \rangle $$

Comme pour la classe devs::Dynamics, la classe devs::Executive propose un comportement par défaut qui est celui d'un modèle sans autonomie et qui ne réagit pas aux perturbations externes.

L'API de la classe devs::Executive propose plusieurs méthodes pour manipuler le graphe :


 * Ajouter des modèles atomiques ou instancier des classes de modèles, ou supprimer des modèles :


 * Des méthodes pour manipuler le graphe de connexions, et les ports des modèles :


 * Et des méthodes pour ajouter dynamiquement des dynamiques, conditions et observateurs en vue d'une utilisation lors de la création d'un modèle. Ces méthodes retournent des références sur des objets issus du fichier VPZ chargé. Il est nécessaire de lire l'API de la bibliothèque VPZ pour ajouter, supprimer des objets.

First example
The first example show the use of the vle::devs::Executive model. This model build a model each even date and remove this model at the next odd date.

Exemple simple utilisant le MatrixTranslator
Ce second modèle montre l'utilisation d'un modèle de type devs::Executive qui crée à l'initialisation une grille de modèles atomiques.

Ce modèle attend des conditions particulières dans le vpz pour lui spécifier les caractéristiques de la grille:
 * connectivity: donne le type de voisinage des cellules. moore (4 voisins Est-Ouest-Nord-Sud), von neumann (8 voisins E-O-N-S plus les diagonales)
 * library: le nom de la library contenant le modèle à instancier.
 * model: le nom du modèle dans la library (si plusieurs modèles dans la même library).
 * prefix: le nom que porteront en prefix les modèles instanciés par l'executive.
 * symmetricport: si true alors les ports de sorties sont identiques aux ports d'entrée, sinon il y a un unique port de sortie.
 * grid: le nombre de lignes et colonnes de la grille de simulation