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 verication 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 verication des specications 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 dierence constante entre eux. On a reduit ce probleme a une propagation de constantes, en introduisant des nouvelles variables, celles-ci re-presentant la dierence 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)2a3]^(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 generalite de l'approche on considere seulement le cas de la semantique pares-seuse ou les actions temporisees peuvent s'executer 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 die-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 dierences 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 denition 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 denition 5:1p:97].
Dans la suite on utilise le predicat Use :H ($%(H)2HZ)! f
t
f
g avec la denition suivante:Use(ha) =
t
() (9(xv))((xv)2a3]^h=x))_Use0(ha2]) =t
. Le predicat Use0 :H%(H)!ft
f
gest deni 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:4p:124], 5:5p:125], 5:6p: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 signie qu'on a examine les premieres i;1 horloges de Orol initiale (celle de la ligne dans la table 5:4p: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:5p:125] a pu trouver, pour chaque transition ou l'horloge etait utilisee, une autre horloge t.q. entre elles il y avait une dierence 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:6p: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 9p: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:2p:121] et 5:3p:121]. La preuve complete se trouve dans l'annexeBp:187].
Theoreme 5.4
L'algorithme 9p:122] fournit un automat temporise A0 qui est une solution du pro-bleme 5:1p:121].
Preuve
Dans la lemme precedente on a montre que Ach Ac0
.
Dans la procedure Recouvrement de la table 5:4p: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 rw2]+rw3]=rw1]]a n h ;! :=rw2]+rw3]=rw1]]a n h ;! f(qq0)g endif endwhile end.
Tab. 5.6 { Application des regles