4.4 Modélisation de propagation d’interface
4.4.4 Fonctions spécifiques des modèles Vector-DEVS
4.4.4.1 Simulateurs de modèles Vector-DEVS
Les modèles Vector-DEVS sont décrits à l’aide de DSDEVS et peuvent donc être simulés grâce aux simulateurs abstraits définis par Barros dans [Barros, 1998]. Barros définit trois entités (synchronisateur, simulateur de réseau et simulateur) et trois types de messages (START,
TRAN-SITION et OUTPUT) pour la simulation de modèles DSDEVS. Deux autres messages sont aussi définis, le premier, ERREUR, pour permettre de détecter des problèmes, le second, RETURN, pour signaler une fin de fonction sans résultat.
Le synchronisateur coordonne toute la simulation, il est attaché au simulateur de réseau qui se situe au niveau le plus haut de l’arbre de simulation. Lorsqu’il reçoit le message START le
synchronisateurest chargé d’initialiser les modèles par l’envoi du message START à tous les sous-modèles (C) puis il déclenche les sorties des sous-sous-modèles par l’envoi du message OUTPUT et enfin les transitions par le message TRANSITION successivement jusqu’à la fin de la simulation. Par la suite, nous utiliserons les abréviations suivantes : T représente le temps courant, Tl le temps d’occurrence de l’événement précédent et Tn le temps à l’événement suivant. L’algorithme de simulation du synchronisateur est le suivant :
CHAPITRE 4 4.4. MODÉLISATION DE PROPAGATION D’INTERFACE
Quand reception(START,T) Debut
- Tant qu’un composant à une transition de prévue Tantque(Tn(C) 6= ∞)
- Tn = temps au prochain événement, C = index des composants Debut
- Tc, temps courant, prends la valeur du temps - de la transition la plus immédiate
Tc = min(Tn(C))
- Envoie le message OUTPUT aux composants devant s’activer à Tc Envoi(OUTPUT,Tn,C)
- Envoie le message TRANSITION aux composants devant s’activer à Tc Envoi(TRANSITION,Tn,C)
Fin Fin
Algorithme 2: Algorithme d’initialisation du synchronisateur
Un simulateur de réseau est attaché à chaque Réseau DSDEVS contenant les modèles DEVS basiques et l’exécutif de ce réseau. L’ensemble des modèles est noté C, ce même ensemble sans l’exécutif χ est noté D. L’algorithme d’initialisation du simulateur de réseau est le suivant : Quand reception(START,T)
Debut
- Envoie le message START a tous les composants de C Envoi(START,T) à {I|I ∈ C}
Tl ← T
Tn ← min(T n(C)) Fin
Algorithme 3: Algorithme d’initialisation du simulateur de réseau
Dans le cas de Vector-DEVS, lors de l’initialisation les agents vont calculer leurs vecteurs de progression en fonction du milieu dans lequel ils viennent d’être créés. Une fois les modèles initialisés la simulation peut s’effectuer. L’algorithme régissant la réaction du simulateur de réseau aux transitions est le suivant :
CHAPITRE 4 4.4. MODÉLISATION DE PROPAGATION D’INTERFACE
Quand reception(TRANSITION,T,χ) Debut
- Vérifie la validité du message Si T ∈ [Tl,Tn] alors ERREUR Fin Si/ Si T < Tn et χ = /0 alors RETURN Fin Si
- Stocke l’ensemble des sous-modèles courants dans D′ (ancien état)
D′← D
- Envoie TRANSITION à tous les sous modèles connectés à des entrées sauf χ
Envoi(TRANSITION,T,ZI(×j∈IIvj)) à {I|I ∈ D} - Envoie TRANSITION à χ
Envoi(TRANSITION,T,Zχ(×j∈Iχvj)) à χ
- Envoie START aux composants créés après un changement de structure Envoi(START,T) à {I|I ∈ D − D′}
Tl ← T
Tn ← min{T nI|I ∈ C} Fin
Algorithme 4: Algorithme de réaction à la transition du simulateur de réseau
Le simulateur de réseau déclenche les transitions de tous les modèles dans D avant de déclen-cher les transitions de χ pour que les changements de structures n’affectent que les transitions se déroulant après ce changement. Les modèles créés après le changement de structure sont initiali-sés par l’envoi du message START. Les sorties sont générées immédiatement avant la transition, tel que spécifié dans le formalisme DEVS, pour assurer que la sortie d’un modèle ne dépend pas d’une transition en cours. L’algorithme de réaction au message de sortie OUTPUT du simulateur
CHAPITRE 4 4.4. MODÉLISATION DE PROPAGATION D’INTERFACE
Quand reception(OUTPUT,T) Debut
Si T = Tn alors
Envoie(OUTPUT,T) à {I|I ∈ C}
- Génère la sortie de tous les composants ayant des connexions de sorties actives y ← ZN(×I∈INYI) Sinon y ← /0 Fin Si Fin
Algorithme 5: Algorithme de réaction au message de sortie du simulateur de réseau
Dans Vector-DEVS les agents sont modélisés par des modèles DEVS basiques. Ces modèles sont simulés grâce aux simulateurs associés. Le simulateur réagit au message d’initalisation START par l’algorithme suivant :
Quand reception(START,T) Debut T l ← T s ← s0 T n ← T + Ta(s) Fin
Algorithme 6: Algorithme d’initialisation du simulateur
L’agent prend d’abord son état initial avant de fixer son temps au prochain changement en programmant ses changements structurels. Le simulateur est aussi chargé de la simulation de χ. Dans ce cas, le temps au prochain changement est soit celui de la recomposition de la structure, soit 0 dans le cas d’une requête de changement de structure immédiate par un agent.
CHAPITRE 4 4.4. MODÉLISATION DE PROPAGATION D’INTERFACE
Quand reception(TRANSITION,T,χ) Debut
- Vérifie la validité du message Si T /∈ [T l, T n] alors ERREUR Fin Si Si T < T n et χ = /0 alors RETURN Fin Si
s ← δ(s,T − T l,χ) T n ← T + Ta(s)
Fin
Algorithme 7: Algorithme de réaction à la transition du simulateur
Après la vérification de validité du message, le simulateur met à jour les états du modèle par l’appel à la fonction de transition δ puis programme les prochains temps d’activation du modèle.
Enfin, le comportement en sortie d’un simulateur est donné par l’algorithme suivant : Quand reception(OUTPUT,T) Debut Si T = Tn alors y ← λ(s) Sinon y ← /0 Fin Si Fin
Algorithme 8: Algorithme de réaction au message de sortie du simulateur
La réception du message OUTPUT active le modèle immédiatement avant la transition. La fonction λ est alors appelée pour générer les sorties à partir des états courants.
Nous venons de presenter les simulateurs abstraits de modèles DSDEVS et leurs applications dans le cadre de Vector-DEVS. La section suivante présente rapidement une simulation de modèles à propagation d’interface pour illustrer ces algorithmes.