• Aucun résultat trouvé

5.3 Applications

5.3.2 Recouvrement des variables temporisees

Une application interessante de la propagation de constantes permet la diminution du nombre de variables temporisees dans les automates temporises (AD94]). Concernant les automates temporises il existe aujourd'hui plusieurs outils (academiques: kronos Yov97], uppaalABB+01] ou industriels:ObjectgeodeTel]) pour la veri cation et la validation des systemes contenant des variable temporisees (horloges et/ou temporisa-teurs).

Dans la presentation des resultats ci-dessous on a opte pour une variante d'automate temporise qui a ete implemente dans if (Boz99]): il s'agit des automates temporises avec echeances23 (BS97]).

Il faut mentionner que, en raison de la semantique des variables temporisees, celles-ci ont une contribution importante dans l'augmentation des ressources de calcul (me-moire, temps) demandees pour la veri cation des speci cations contenant tel type de variables. Pour les automates temporises il existe une analyse d'activite et d'egalite des horloges (DY96]). Notre but et de detecter dans chaque etat quelles sont les variables temporisees qui gardent une di erence constante entre eux. On a reduit ce probleme a une propagation de constantes, en introduisant des nouvelles variables, celles-ci re-presentant la di erence entre chaque paire de variables temporisees. Ensuite, pour ces variables on a applique la propagation des constantes. L'invariant ainsi calcule permet le recouvrement des variables temporisees.

Automates temporises

Denition 5.4 (Syntaxe)

Un automate temporiseest un ste: (HQ$%(H)2HZf

a

;!ja2$%(H)2HZ

gq0), ouH est l'ensemble des variables temporisees (ou horloges), %(H) est l'ensemble de toutes les contraintes de la formech, hc, :, ^, ou c2

Z

, h2H,  2%(H).

Sia2$%(H)2HZalorsa3]H

Z

est l'ensemble des horlogesarmeesdans la transition;!a . On impose sura3] la restriction suivante: (8(h1c1))(8(h2c2))((h1c1)2

a3]^(h2c2)2a3])h1

6

=h2).

Denition 5.5 (Semantique)

La semantique paresseuse de l'automate temporise (HQ$%(H)2HZf

a

;!ja2$%(H)2HZ

gq0) est le ste

23:Sans restreindre la g en eralit e de l'approche on consid er e seulement le cas de la s emantique pares-seuse ou les actions temporis ees peuvent s'ex ecuter a n'importe quel moment

5.3. APPLICATIONS 121 b A= (Qb $bf a % ;!ja 2 b

$gq^0), ou 2

Z

est la constante de la progression du temps,

b

$ = $ftickg et les ensemblesQbQ(H !

Z

) et ;a%! sont obtenus inductivement en appliquant les regles suivantes:

; ^ q0 = (q00jHj)2 b Q (5.1) (q)2 b

Q q (ag(hi1ci1):::(hijcij))

;! q0 (g) =

t

^

q0 = (q0ci1=hi1:::cij=hij])2 b Q (q) ;%a! q^0 (5.2) (q)2 b Q ^ q0 = (q+)2 b Q (q) ;tick%!q^0 (5.3) Ci-dessus + est une fonction de H !

Z

, (+)(h) =(h) +,8h2H.

Observation 5.7

Si deux horloges sont armees dans la m^eme transition alors elles gardent une di e-rence constante entre elles dans toute execution du systeme.

Recouvrement des horloges

Probleme 5.1

Soit A = (HQ$%(H)2HZf

a

;!ja2$%(H)2HZ

gq0) un automate temporise. On voudrait obtenir un nouvel automate temporise

A0 = (H0Q$%(H0)2H0 Zf a n h ;!ja2$%(H0)2H0 Z gq0), avec H0  H et na h

;! obtenue de ;a! en recouvrant les horloges de H par ceux de H0 et cA et cA0



soient bisimilaires.

Soient les ensembles des horloges H = fh1:::hng et des di erences entre elles

Hd=fhi;hj jhihj 2H^1i < j ng.

Soit nd = jHdj. Soient fg deux fonctions bijectives: f : f(ij) j (ij) 2

N

2

^1 

i < j ng!f1:::ndg etg :f1:::ndg!f(ij)j(ij)2

N

2

^1i < j ng. On considere atempun pfd, instance deconst:

1. S = (Q$%(H)2HZf

a

;! ja2$%(H)2HZ gq0). 2. L=Hd!const.

4. Les fonctions de transfert T : $%(H)2HZ

!F ont la de nition suivante:

T(ag(hi1ci1):::(hijcij)) =f:(ci`;cim=hf(i`im))1`<mj]. 5. L'operateur de combinaison ] est l'operateur tL.

6. Le probleme de ot est en avant ( =!).

7. L'approximation initiale estConst0 :Q!L, t.q.:Const0(q0) = #>LetConst0(q0) = #

?L, pour tout q0

6

=q0.

8. L'operateur de ot est Const : (Q!L)!(Q!L) ou, pour toutq2Q:

Const(Z)(q) =Const0(q)tL G a2 q0 2 Prea(q) L T(a)(Z(q0)):

Lemme 5.18

atemp est unpfdmonotone et l'espace des fonctions F a les proprietes demandees dans la de nition 5:1 p:97].

Dans la suite on utilise le predicat Use :H ($%(H)2HZ)! f

t



f

g avec la de nition suivante:

Use(ha) =

t

() (9(xv))((xv)2a3]^h=x))_Use0(ha2]) =

t

. Le predicat Use0 :H%(H)!f

t



f

gest de ni inductivement:

1. Use0(hcx) =

t

() x=h, 2. Use0(hxc) =

t

() x=h, 3. Use0(h:) =:Use0(h), 4. Use0(h1

^2) = Use0(h1)^Use0(h2).

Algorithme 9 (Recouvrement des horloges)

Entree :

A, un automate temporise,Const, la solution du probleme de ot de donneesatemp et Use, le predicat ci-dessus.

Sortie :

A0, un automate temporise.

5.3. APPLICATIONS 123 La procedure Recouvrement (tables 5:4 p:124], 5:5 p:125], 5:6 p:126]). On commence par le calcul des regles de reecriture. Celles-ci sont stockees dans les les du vecteurRW (qui associe a chaque transition une le avec les regles de reecriture a appliquer). Les horloges de l'automate temporiseA sont introduites dans la leOrol et ensuite dans jA:Hjpas on essaie d'exprimer un horloge avec les horloges de Orol: supposons qu'on est au pas

i. Cela signi e qu'on a examine les premieres i;1 horloges de Orol initiale (celle de la ligne dans la table 5:4 p:124]). Une partie d'entre elles sont stockees dans l'ensemble

Elim et cela parce qu'au moment de leur traitement on a pu les reecrire dans chaque transition par une horloge trouvee dans Orol (c.a-d. la procedure CalculRegles de la table 5:5 p:125] a pu trouver, pour chaque transition ou l'horloge etait utilisee, une autre horloge t.q. entre elles il y avait une di erence constante - cf. Const). Les horloges qui n'ont pas pu ^etre reecrites sont reintroduites dans Orol mais elles serviront seulement au calcul d'eventuelles regles de reecriture, elles ne seront pas examinees a nouveau. A la n de cette etape on applique les regles calculees (table 5:6 p:126]) et le nouvel ensemble des horloges est Orol.

Lemme 5.19

Soient A un automate temporise etA0 l'automat temporise fournit par l'algorithme 9 p:122] avec l'entree A. Soient cA = (Qb1$bf

a ;! 1 ja 2 b $gq^1 0) et c A0  = (Qb2$bf a ;! 2 ja 2 b $gq^2 0). La relation h= f(p1p2) j (p1p2) 2 b Q1  b Q2 ^pi = (i)1i2^(8h)(h2H0

)1(h) =2(h))g est une relation de bisimulation. Preuve

Pour montrer le resultat on utilise une induction structurelle en fonction de l'etiquette

a et des regles 5:2 p:121] et 5:3 p:121]. La preuve complete se trouve dans l'annexeB p:187].

Theoreme 5.4

L'algorithme 9 p:122] fournit un automat temporise A0 qui est une solution du pro-bleme 5:1 p:121].

Preuve

Dans la lemme precedente on a montre que Ach Ac0

.

Dans la procedure Recouvrement de la table 5:4 p:124] la relation Elim Orol = H

est un invariant et a la n de la procedure on obtient H0 H.

procedure Recouvrement (A: auttemp

Const :A:Q!(A:Hd!const)

Use :A:HA:$!bool

var A0: auttemp)

type

rule=A:HA:Hconstfnilg rules=file de rule

trans=f

a

;! ja2A:$g

var

Orol :file de A:H

Elim :ensemble de A:H

RW :trans!rules rw :trans!rule iN :int x:A:H contradictions :bool procedure CalculRegles procedure ApplicationRegles begin A0:Q:=A:QA0:q0 :=A:q0 foreach(x2A:H) Orol:Push(x)  N =jOroljElim := i:= 0

while (iN ^:Orol:Empty())

x:=Orol:Pop()

i:=i+ 1

contradictions :=

f



CalculRegles(xrwAConstUse)

if(:contradictions) Elim :=Elimfxg foreach(q ;a!q0) RW(q;a!q0):Push(rw(q;a!q0)) else Orol:Push(x) endif endwhile ApplicationRegles(ARWA0) A0:H :=Orol end.

5.3. APPLICATIONS 125

procedure CalculRegles (x:A:H

var rw :trans!rule

A:auttemp

Const :A:Q!(A:Hd !const)

Use :A:HA:$!bool)

var nd :bool begin foreach (a2A:$) if (Use(xa)) foreach (q;a!q0) nd :=

f

 foreach (y2Orol) if (Const(q)(x;y)2= f>?g) rw(q ;!a q0) := (xyConst(q)(x;y)) nd :=

t

 break endif endfor if (: nd) contradictions :=

t

 endfor else foreach (q;a!q0) rw(q ;!a q0) :=nil endif end.

procedure ApplicationRegles (A:auttemp

var RW :trans!rules

var A0 :auttemp) var rw :rule begin foreach (a 2A:$) foreach (q ;a!q0) while (:RW(q;a!q0):Empty()) rw :=RW(q ;a!q0):Pop() if(rw 6=nil) A0:$ := A0:$frw2] +rw3]=rw1]]ag rw 2]+rw 3]=rw 1]]a n h ;! := rw 2]+rw 3]=rw 1]]a n h ;! f(qq0)g endif endwhile end.

Tab. 5.6 { Application des regles