• Aucun résultat trouvé

Automates temporis´es

2.1 Mod`eles du temps

2.1.1 Automates temporis´es

Les automates temporis´es [AD94] forment sans doute le mod`ele le plus r´eput´e, ou en

tout cas le plus utilis´e. Il en existe de nombreuses variantes [Pett99] ; nous en pr´esentons

une que nous utiliserons au chapitre 5.

Un automate temporis´e se compose d’un ensemble d’´etats, de transitions entre eux et

d’un ensemble de chronom`etres permettant de mesurer le temps. (On parle plus

tradi-tionnellementd’horloges mais nous avons pr´ef´er´e marquer la diff´erence avec les horloges

causales.) L’ex´ecution d’une transition est soumise `a une condition portant sur les

chro-nom`etres ; lorsque la garde est vraie, la transition peut avoir lieu et assigner de nouvelles

valeurs aux chronom`etres tout en ´emettant des actions visibles. Dans certaines versions

du mod`ele, les ´etats portent des invariants qui doivent rester vrais tant que l’automate

est dans l’´etat ; les invariants servent le plus souvent `a forcer l’ex´ecution d’une transition.

L’´echelle du temps est suppos´ee continue : les valeurs des chronom`etres sont donc

des nombres r´eels. De plus, les transitions sont instantan´ees. Le s´ejour dans les ´etats

peut aussi ˆetre instantan´e mais il peut durer, ce qui est le cas le plus souvent. Une

ex´ecution d’un automate temporis´e est, `a l’instar de celle d’un automate fini classique,

un mot form´e par la suite des actions ´emises par les transitions. La diff´erence est que

le passage de chaque transition est dat´e par rapport au d´emarrage de l’automate. Une

autre diff´erence notable est qu’on s’int´eresse le plus souvent `a des ex´ecutions infinies

(et donc `a des mots infinis) puisque la plupart des syst`emes temps-r´eels sont suppos´es

fonctionner sans s’arrˆeter.

La figure 2.2 donne deux automates temporis´es. Celui de gauche d´emarre dans son ´etat

initialFar (marqu´e en gras) ; la transition vers l’´etat Beforese fait sans condition : elle

´emet une action app! et remet le chronom`etre t `a z´ero. L’automate peut ensuite rester

dans l’´etatBefore tant que t ne d´epasse pas la valeur 5. De plus, il ne peut ex´ecuter la

transition vers l’´etatInsideque si t≥4 et donc, cette transition doit avoir lieu dans un

intervalle [4,5] apr`es le franchissement de celle qui a remis t `a z´ero.

.

.

Far

t≤5

Before

t≤6

Inside

·|app!|t:=0

t≥4|·|t:=0

t≥4|exit!|·

clock t

.

.

Idle

c≤2 AppDown

c≤2 ExitUp

·|app?|c:=0 c≥1|down!|·

·|exit?|c:=0

c≥1|up!|·

clock c

Figure 2.2 — A gauche, un automate temporis´e `a trois ´etats utilisant un`

chronom`etret. `A droite, un autre automate utilisant un chronom`etrec.

L’automate `a gauche de la figure 2.2 peut avoir une ex´ecution correspondant au mot

temporis´e suivant :

(app!, z)(·, z+ 4,2)(exit!, z+ 5,1)(app!, z+ 42)(·, z+ 47)(exit!, z+ 51)· · ·

o`u z est la date de la premi`ere transition (qui n’est pas forc´ement l’origine de l’axe du

temps) et·repr´esente une transition silencieuse. L’automate a donc attendu zunit´es de

temps dans son ´etatFar, puis il est pass´e dans l’´etatBeforeo`u il a s´ejourn´e 4,2 unit´es de

l’automate a franchi la transition Before → Inside au plus tard et ensuite Inside→ Far

au plus tˆot.

Afin de faciliter la d´ecomposition de syst`emes complexes, les actions sur les transitions

peuvent ˆetre exploit´ees pour calculer leproduit synchronis´ede plusieurs automates. Cette

op´eration cr´ee un nouvel automate dont les ex´ecutions correspondent aux entrelacements

des ex´ecutions de ses op´erandes dans lesquelles les paires d’actions telles queapp! etapp?

surviennent en mˆeme temps (et silencieusement). Les ´etats de l’automate synchronis´e

sont form´es par le produit cart´esien des ´etats des automates op´erandes et les transitions

sont calcul´ees en fonction des ´etats, en respectant la synchronisation des actions. La

figure 2.3 montre le produit synchronis´e des deux automates de la figure 2.2.

.

.

Far.Idle

t≤5

c≤2

Before.AppDown

·|·|t:=0,c:=0

t≤5

Before.Idle

c≥1|down!|·

t≤6

Inside.Idle

t≥4|·|t:=0

c≤2

Far.ExitUp

t≥4|·|c:=0

c≥1|up!|·

clock c,t

Figure 2.3 —Le produit synchronis´e des automates de la figure 2.2.

Le produit synchronis´e de plusieurs automates ´etant lui mˆeme un automate, s´equentiel

par nature, il devient clair que ce mod`ele propose une vision entrelac´ee du parall´elisme.

Lorsque plusieurs chronom`etres sont pr´esents dans un automate (comme dans celui de

la figure 2.3), ils ´evoluent au mˆeme rythme.

Les automates temporis´es sont analys´es le plus souvent par v´erification de formules

de logiques temporelles [Alu+93] (voir aussi plus bas la section 2.1.4). Pour cela, on

associe des pr´edicats aux ´etats (par exemple, dans l’´etat Far.ExitUp de l’automate de

la figure 2.3, les pr´edicats Far et ExitUp sont vrais) et on v´erifie la formule sur toutes

les ex´ecutions possibles de l’automate. On ne peut pas le faire directement car l’´echelle

de temps ´etant continue, la plupart des transitions peuvent ˆetre dat´ees d’une infinit´e

de fa¸cons. Par exemple, la transition de Before `a Inside de l’automate de gauche de la

figure 2.2 peut (et doit) ˆetre franchie dans un intervalle de 4 `a 5 unit´es de temps apr`es

que l’automate arrive dans l’´etatBefore, or cet intervalle contient une infinit´e de points.

Afin de permettre la v´erification d’une formule sur un automate, on calcule au

pr´ea-lable legraphe des r´egions de l’automate qui regroupe tous les ´etats temporis´es (c’est `a

dire les ´etats de l’automate associ´es `a des valeurs de chronom`etres) qui permettent les

mˆemes ´evolutions. La figure 2.4 donne le graphe des r´egions de l’automate de gauche

de la figure 2.2. La taille de ce graphe d´epend exponentiellement du nombre de

chrono-m`etres utilis´es par l’automate et du nombre de constantes distinctes auxquelles ils sont

compar´es. (C’est pour cette raison que nous n’avons pas pr´esent´e le graphe des r´egions

de l’automate de la figure 2.3.)

.

.

t≥0

Far 0≤t<4

Before

4≤t≤5 Before

0≤t<4 Inside

4≤t≤6

Inside

Figure 2.4 — Le graphe des r´egions correspondant `a l’automate temporis´e

`a gauche de la figure 2.2. Les nœuds sont ´etiquet´es par les pr´edicats vrais et

nous avons indiqu´e `a l’int´erieur les valeurs possibles du chronom`etret.