Développement de modèles atomiques

Description du développement d'un modèle atomique DEVS

Lien entre DEVS et VLE
VLE implémente les simulateurs abstraits de DEVS et plus spécialement la spécification DSDE, qui implique l'utilisation de Parallel DEVS et de DS-DEVS pour respectivement la gestion du parallélisme des simulateurs et la gestion des structures dynamiques..

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


 * Les fonctions issues de DEVS trouvent leurs représentations dans VLE :


 * Les fonctions ajoutées par VLE au formalisme DEVS et les impératifs techniques :
 * Les constructeurs et destructeurs, imposés par la vision objet et par le C++.
 * Les fonctions finish, d'initialisation paramétrée, d'observation et de question-reponse proposées par VLE en plus d'aider le modélisateur.

L'API du modèle atomique VLE
Un modèle atomique DEVS est représenté dans la VLE par le modèle devs::Dynamics. Nous pouvons définir l'interface fonctionnelle de cette classe en six parties.

- constructeur - destructeur -
 * La première partie de l'interface fonctionnelle repose sur des méthodes de VLE et du langage de programmation C++ : le constructeur et le destructeur. Obligatoires pour chaque modèle.

- init -  finish -
 * Les fonctions init et finish sont appelées, quant à elles, respectivement à la création ou à la destruction du modèle.

- transition interne -
 * La gestion de l'autonomie du modèle est gérée par la fonction de transition interne.

- avancement du temps -
 * L'avancement du temps, seule fonction permettant de faire avancer la simulation en indiquant la durée dans laquelle un modèle reste dans un état :

La première est la fonction de transition externe qui réagit aux perturbations, la seconde résout le problème lorsqu'un événement interne et un ou plusieurs événements externes arrivent sur un modèle à la même date. Enfin, la fonction de sortie permet d'émettre des événements à l'attention des modèles connectés. - transition externe - sortie - conflit -
 * La gestion des événements externes et donc du couplage entre différents modèles est géré par les trois fonctions suivantes.

- initialisation - observation - question-reponse -
 * DEVS est une spécification d'un formalisme à événement discret. Nous avons ajouté à cette spécification des fonctions supplémentaires pour aider le modélisateur dans sa tâche de modélisation en lui épargnant la gestion des plans d'expériences, de l'observation et des fonctions des questions réponses.

Ensemble de l'API de la classe devs::Dynamics : constructeur, destructeur, init, finish, initialisation, transition interne, avancement du temps, transition externe, sortie, conflit, observation, question-reponse