• Aucun résultat trouvé

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,ZIj∈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 ← ZNI∈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.