• Aucun résultat trouvé

Automates cellulaires

3.2 Description formelle

3.2.1 Mod`ele atomique

Les ´el´ements de base d’un mod`eledevssont les mod`eles atomiques. Un mod`ele atomique devs M se d´efinit formellement par l’ensemble suivant :

M =hX, Y, S, δint, δext, λ, tai o`u :

X est l’ensemble des ´ev`enements d’entr´ee (dits aussi externes), Y est l’ensemble des ´ev`enements de sortie,

S est l’ensemble des ´etats, ´eventuellement infini, δint est la fonction de transition interne,

δext est la fonction de transition externe, λ:S→Y est la fonction de sortie, taest la fonction d’avance du temps.

Sest l’ensemble des ´etats du syst`eme : typiquement, un ´etat va correspondre au n-uplets des valeurs prises par les diff´erentes variables d’´etat du syst`eme. Ces variables peuvent ˆetre de type tr`es diff´erent : `a valeur dansRpour repr´esenter une caract´eristique continue du syst`eme,

`a valeur dansZpour repr´esenter une caract´eristique discr`ete, ou encore un ´el´ement pris dans un ensemble quelconque, fini ou infini (p. ex. une couleur). Qest l’ensemble des ´etats totaux (total states) du syst`eme : un ´etat total correspond `a la donn´ee d’un ´etatsdu syst`eme plus la dur´eeependant laquelle le syst`eme s’est trouv´e dans cet ´etat, ce qui permet au mod´elisateur de sp´ecifier un changement d’´etat non seulement en fonction de l’´etat courant du syst`eme, mais aussi en fonction du temps pass´e dans cet ´etat. Le temps devient ainsi explicitement une partie int´egrante de l’´etat du syst`eme. L’ensemble des ´etats totaux se d´efinit ainsi :

Q={ (s, e)|s∈S, 0 ≤ e ≤ ta(s)}

Le formalisme devs d´ecompose la fonction de transition du syst`eme en deux fonctions distinctes et ind´ependantes, l’une charg´ee de r´epondre aux influences de l’environnement, qui

3.2. Description formelle 45 se manifestent par les ´ev`enements externes, l’autre charg´ee de l’´evolution interne, autonome, du syst`eme. Ce principe simple se r´ev`ele ˆetre un atout majeur du formalismedevs, puisqu’il permet de mod´eliser un syst`eme ouvert sur l’ext´erieur mais qui poss`ede ´egalement ses propres r`egles de changement internes.

Figure 3.1 – Fonctionnement du mod`ele atomiquedevs.

La figure 3.1 repr´esente de fa¸con sch´ematique le fonctionnement d’un mod`ele atomique devs que nous allons d´etailler. La fonction de transition externe δext :Q×X → S est d´e-clench´ee par l’arriv´ee d’un ´ev`enement externex, et elle fait passer le syst`eme dans un ´etat s0 = δext(s, e, x) en fonction de cet ´ev`enement externe et de l’´etat total du syst`eme (donc du tempse ´ecoul´e dans l’´etat courant s), ce qui permet de d´ecrire une large classe de com-portements existants dans les mod`eles `a ´ev`enements discrets : synchronisation, pr´eemption, suspension, r´eactivation (Vangheluwe, 2000, p. 71).

Lorsqu’aucun ´ev`enement externe ne survient, c’est la fonction d’avancement du temps ta : S → R+ qui d´ecide de la dur´ee ∆t = ta(s) que doit passer le syst`eme dans l’´etat s.

Cette fonction est ´evalu´ee `a l’entr´ee du syst`eme dans un nouvel ´etats. Deux cas particuliers sont envisageables : une dur´ee infinie, dans ce cas l’´etat s tel que ta(s) = ∞ est dit passif (le syst`eme ne va ´evoluer que si un ´ev`enement externe survient) ; ou bien une dur´ee nulle, et dans ce cas l’´etat stel que ta(s) = 0 est dit transitoire (le syst`eme ´evolue tout de suite).

Notons que cette fonction d´efinit une base de temps r´eelle et que donc le temps simul´e est continu. En prenant ta `a valeurs dans N on peut se ramener `a un temps discret sans rien enlever aux autres caract´eristiques du formalisme. La seule condition pour la base de temps est qu’elle soit un ensemble muni d’une relation d’ordre strict total.

La dur´ee ∆t = ta(s) ´etant ´ecoul´ee, deux fonctions sont appel´ees successivement. Tout d’abord est appel´ee la fonction de sortie λ : S → Y ∪ {∅} qui va d´eterminer l’´ev`enement de sortie y = λ(s) `a g´en´erer selon l’´etat courant s du syst`eme. Cette fonction peut per-mettre l’observation du syst`eme, et une fonction triviale de sortie est l’identit´e : λ(s) = s, qui transmet directement `a l’environnement du syst`eme son ´etat courant. Ensuite est appel´ee la fonction de transition interne δint : S → S qui va faire passer le syst`eme dans un ´etat s0 = δint(s) en fonction de son ´etat courant s. Les sorties du syst`eme ne sont donc pos-sibles que lors de l’occurrence de transitions internes, elles-mˆemes d´eclench´ees par les dur´ees

46 Chapitre 3. DEVS pendant lesquelles le syst`eme reste dans un mˆeme ´etat et en l’absence d’´ev`enement externe.

Cette contrainte peut sembler ˆetre une limitation au mod`ele, puisqu’il semble impossible de provoquer une sortie en r´eponse `a l’arriv´ee d’un ´ev`enement externe. En fait, pour obtenir ce r´esultat il suffit de faire passer le syst`eme dans un ´etat transitoire lors de l’arriv´ee de l’´ev`enement externe, et de d´efinir la valeur de la fonction de sortie d´esir´ee pour cet ´etat.

L’´etat transitoire va d´eclencher une transition interne, synonyme de sortie, aussitˆot l’arriv´ee de l’´ev`enement externe.

3.2.2 Mod`ele coupl´e

Nous disposons donc avec le mod`ele atomique devs d’un syst`eme capable d’´evolution autonome et de r´eponse `a des stimulus externes. Le couplage des mod`eles atomiques, apport fait par Zeigler en 1984 au mod`ele classique datant de 1976, va ajouter deux notions fonda-mentales pour la mod´elisation : la modularit´e et la construction hi´erarchique. Un syst`eme va pouvoir ˆetre d´ecompos´e en sous-syst`emes plus simples qui seront coupl´es de mani`ere `a reconstituer le comportement du syst`eme original, et qui au besoin pourront ˆetre `a leur tour d´ecompos´es en sous-syst`emes.

Le couplage des mod`eles atomiques impose une communication entre mod`eles, c’est pour-quoi le mod`ele atomique subit une l´eg`ere transformation : l’ajout de ports d’entr´ee et de sortie, associ´es respectivement aux ´ev`enements d’entr´ee et de sortie (figure 3.2). Un port d’entr´ee prend une valeur lors de l’´emission d’un ´ev`enement attach´e `a ce port. Un port de sortie prend une valeur lorsque la fonction de sortie prend une valeur pour ce port.

X={(p, v) |p∈Pin, v∈Vp } est `a pr´esent l’ensemble des ´ev`enements d’entr´ee, `a port p dans l’ensemble des ports d’entr´eePin et `a valeurv dans l’ensembleVp des valeurs d’entr´ee possibles sur le port p.

Y ={(p, v) |p∈Pout, v∈Vp }est `a pr´esent l’ensemble des ´ev`enements de sortie, `a port p dans l’ensemble des ports de sortiePout et `a valeur dans l’ensembleVp des valeurs de sortie possibles sur le port p.

Figure 3.2 – Repr´esentation d’un mod`ele atomique devs avec ports. Ici les ensembles des ports d’entr´ee et des ports de sortie sont Pin={pI1, pI2 }et Pout ={ pO1, pO2}.

Cette nouvelle d´efinition des mod`eles atomiques devs avec ports autorise le couplage, c’est-`a-dire la connexion de deux mod`eles atomiques, lesquels deviennent alors des compo-sants du mod`ele coupl´e. Une propri´et´e fondamentale des mod`eles devsest la fermeture par couplage, d´emontr´ee par Zeigler (1984) : un mod`ele coupl´e peut ˆetre consid´er´e comme un mo-d`ele atomique (une d´emonstration peut en ˆetre trouv´ee dans la th`ese de Vangheluwe, 2000, p. 75). D`es lors, le couplage de mod`eles coupl´es devient possible, ainsi que le couplage d’un mod`ele coupl´e avec un mod`ele atomique, ce qui autorise une vue hi´erarchique d’un syst`eme, et sa d´ecomposition en sous-syst`emes en interaction (figure 3.3).

3.2. Description formelle 47

Figure 3.3 – Illustration du couplage et de la hi´erarchisation d’un mod`ele rendus possibles par la propri´et´e de fermeture par couplage : un mod`ele coupl´e peut ˆetre consid´er´e comme un mod`ele atomique.

Un mod`ele coupl´edevs M C se d´efinit formellement par cet ensemble : M C =hXself, Yself, D,{Md},{Id},{Zi,d},selecti

o`u :

Xself est l’ensemble des ´ev`enements d’entr´ee, Yself est l’ensemble des ´ev`enements de sortie,

Dest l’ensemble des identifiants des composants du mod`ele coupl´e, {Md} est l’ensemble de ces composants,

{Id}est l’ensemble des influences entre composants,

{Zi,d} est l’ensemble des fonctions d’interpr´etation sortie-entr´ee entreietd, select est la fonction de s´election.

Dans cette d´efinition,self repr´esente le mod`ele coupl´e lui-mˆeme. Comme pour un mod`ele atomique, Xself (respectivementYself) est l’ensemble des valeurs d’entr´ee (respectivement de sortie) possibles du mod`ele coupl´e, chacune ´etant attach´ee `a un port d’entr´ee (respectivement de sortie).Dest l’ensemble des identifiants des composants du mod`ele coupl´e,self ne pouvant pas ˆetre ´el´ement de D. L’ensembles des composants est { Md | d∈ D }, chaque composant devant ˆetre un mod`ele atomiquedevs:

Md=hXd, Yd, Sd, δint,d, δext,d, λd, tadi

Idest l’ensemble des composantsinfluenc´es par le composant d’identifiantd∈D∪{self}. L’ensemble de toutes les influences{Id|d∈D∪ {self} }repr´esente la structure du mod`ele coupl´e. Les influences correspondent `a trois types de couplage qui sont explicit´es dans la figure 3.4. Pour respecter le principe de modularit´e, un composant du mod`ele coupl´e ne peut influencer un composant ext´erieur au mod`ele coupl´e, cependant il peut influencer le mod`ele coupl´e, c’est dans ce cas un couplage externe de sortie (voir figure 3.4) :

∀d∈D∪ {self} Id⊆D∪ {self}

48 Chapitre 3. DEVS Une deuxi`eme restriction est ajout´ee, de mani`ere `a ´eviter toute boucle infinie, un composant ne peut s’influencer lui-mˆeme :

∀d∈D∪ {self} d /∈Id

Figure 3.4 – Les trois types de couplage (ou influence) dans un mod`eledevscoupl´e.

Pour pouvoir traduire un ´ev`enement de sortie provenant d’un composantMi, en un ´ev`e-nement d’entr´ee du composant Mj qu’il influence (Mj ∈Ii), pour chaquej de Ii, on d´efinit la fonction Zi,j qui est charg´ee de cette interpr´etation entre Mi etMj. La donn´ee desId et des Zi,j permet ainsi de sp´ecifier compl`etement la structure et le comportement du mod`ele coupl´e. Comme le montre la figure 3.4, les couplages peuvent ˆetre internes au mod`ele coupl´e, c’est-`a-dire entre deux composants, mais il peut exister ´egalement des couplages externes d’entr´ee (le mod`ele coupl´e influence un de ses composants) et des couplages externes de sor-tie (un des composants influence le mod`ele coupl´e). Il est n´ecessaire de pr´evoir des fonctions sp´ecifiques pour les composants influenc´es par le mod`ele coupl´e, ou qui influencent le mod`ele coupl´e, ainsi qu’il est montr´e dans le d´etail de l’ensemble{ Zi,j |i∈D∪ {self}, j ∈Ii } :

∀i, j ∈D |j∈Ii, Zi,j : Yi→Xj

∀j∈Iself, Zself,j : Xself→Xj

∀i∈D|self ∈Ii, Zi,self : Yi→Yself

Lors d’une simulation, `a cause du couplage des composants, il peut arriver que des tran-sitions doivent intervenir `a un instant t identique. Pour r´esoudre ces probl`emes de collision, il est n´ecessaire d’op´erer un choix parmi les composants en concurrence. C’est le rˆole de la fonctionselectdu mod`ele coupl´e, qui doit donc pouvoir s’appliquer `a tout sous-ensemble non videE de D:

select: 2D r∅ →D

Si E correspond au sous-ensemble de D des composants qui ont `a op´erer une transition simultan´ement, la fonction select doit permettre de choisir lequel parmi ces composants doit appliquer sa transition :

select(E)∈E

Ce choix op´er´e par la fonction select introduit un biais par la s´equentialisation entre ´ev`ene-ments `a l’origine simultan´es. Ce d´efaut sera supprim´e par le formalisme Parallel-devsqui est d´ecrit dans la section suivante.

3.2. Description formelle 49 3.2.3 Parallel-DEVS

Afin d’´etendre les capacit´es de mod´elisation dedevs, le formalisme original a ´et´e ´etendu en un formalisme appel´e Parallel-devs(oup-devs) par Chow et Zeigler (1994). Les objectifs poursuivis ´etaient de rendre possible le contrˆole des collisions entre transitions par le mod´e-lisateur ainsi que d’autoriser le parall´elisme en ´eliminant toute trace de s´equentialisation des

´ev`enements produite par le choix op´er´e par la fonctionselectdans le mod`ele coupl´edevs. Le mod`ele atomiquep-devsM P se d´efinit ainsi :

M P =hX, Y, S, δint, δext, δcon, λ, tai

Le comportement d’un mod`ele atomique p-devs (voir figure 3.5) est tr`es semblable `a celui du mod`ele atomique devs. La diff´erence majeure provient de l’apparition d’une nouvelle fonction : la fonction de conflit (confluent transition function) qui est charg´ee de r´esoudre localement l’ambigu¨ıt´e g´en´er´ee par l’occurrence simultan´ee d’une transition interne et d’une transition externe (autrement dit lorsque le temps ´ecoul´eedans l’´etat s marquant l’arriv´ee de l’´ev`enement externe, est ´egal `a la dur´eeta(s) = ∆t impartie avant la transition interne).

δcon:S×Xb →S

On note que cette fonction utilise le concept de sac (bag) d’´ev`enements, un sac ´etant un en-semble d’´ev´enements non tri´es provenant d’une ou plusieurs sources diff´erentes. Cette fonction peut avoir un comportement par d´efaut qui choisit d’abord la transition interne, ou l’inverse :

δcon(s, e, xb) =δext δint(s),0, xb ou δcon(s, e, xb) =δint δext(s, ta(s), xb)

Figure 3.5 – Fonctionnement du mod`ele atomiquep-devs.

La fonction de transition externe, devant pouvoir g´erer un nombre d’´ev`enements externes quelconque, fait appel aussi `a ce concept de sac :

δext:Q×Xb→S

50 Chapitre 3. DEVS Enfin, derni`ere diff´erence avec le mod`ele atomique devs, la fonction de sortie peut g´en´erer un sac d’´ev`enements :

λ:S →Yb∪ {∅}

Les mod`eles atomiquesp-devsrespectent la propri´et´e de fermeture par couplage, la mo-d´elisation modulaire et hi´erarchique est donc toujours possible. Le mod`ele coupl´e p-devs est identique au mod`ele coupl´e devs, `a la seule diff´erence que la fonction select n’est plus n´ecessaire :

M CP =hXself, Yself, D,{Md},{Id},{Zi,d}i

Bien ´evidemment, les composantsMdde ce mod`ele coupl´e doivent ˆetre des mod`eles atomiques p-devs.

3.2.4 Simulateurs abstraits et impl´ementations

devs est un formalisme qui permet de sp´ecifier rigoureusement une mod´elisation d’un syst`eme, tirant parti de la modularit´e et de la d´ecomposition hi´erarchique, mais il offre ´egale-ment une s´emantique op´erationnelle, par le biais de simulateurs abstraits fournis par Zeigler et coll. (2000). Ces simulateurs abstraits peuvent ˆetre consid´er´es comme des algorithmes, ind´ependants de tout langage de programmation, qui permettent une formalisation sans am-bigu¨ıt´e de la dynamique du simulateur associ´e au mod`ele devs. Comme il existe deux types de mod`eles, il existe deux types de simulateurs abstraits : lessimulateurs, correspondant aux mod`eles atomiques, et lescoordinateurs, correspondant aux mod`eles coupl´es (voir figure 3.6).

Pour chaque extension dedevs, Parallel-devspar exemple, il existe des simulateurs abstraits correspondants.

Figure 3.6 – Structure hi´erarchique d’un mod`ele devscoupl´e sous forme d’un arbre, avec la cor-respondance entre les mod`eles atomiques et coupl´es d’une part, et les simulateurs et coordinateurs d’autre part. Le coordinateur racine est responsable de la boucle g´en´erale de simulation (d’apr`es Zeigler et coll., 2000).

L’existence de ces simulateurs a facilit´e l’apparition de nombreuses impl´ementationsdevs, qui ont b´en´efici´e ´egalement de l’approche objet de ce formalisme. Ainsi, le concept de mod`ele hi´erarchique se traduit par celui de composition (un mod`ele coupl´e est compos´e – au sens objet – d’autres mod`eles), les mod`eles atomiques et coupl´es se traduisent ais´ement en classes