• Aucun résultat trouvé

Le temps dans un automate

CHAPITRE 3 : Vérification par Model Checking

1.2 Le temps dans un automate

Différents critères peuvent influencer la durée d’un traitement. Ainsi, des pannes sont possibles ou

encore les pertes de messages. Elles provoquent un ralentissement global du système ou perturbent

la terminaison du traitement en cours.

Afin de modéliser le temps, deux méthodes de modélisation s’opposent : le temps discret et le temps

dense. La notion de temps dense s’oppose à la notion de temps discret dans lequel un grain minimal

d’écoulement du temps est défini, c’est à dire que rien ne peut se passer dans une période de temps

plus petite. Ce point de vue, bien que souvent très proche de la réalité et bien adapté à de nombreux

cas, semble une hypothèse forte pour des systèmes distants ne partageant pas d’horloges au sens

synchrone. Notons que dans cette thèse, nous considérons que le temps s’écoule de façon continue.

Il existe cependant des travaux considérant une modélisation discrète du temps [55]. La sémantique

des modèles temporisés s’exprime en termes de systèmes de transitions temporisés (STT) où le

domaine de temps, que nous notons 𝕋, peut être l’ensemble des entiers naturels, l’ensemble ≥0

des rationnels positifs ou nuls, ou l’ensemble ℝ≥0 des réels positifs ou nuls. Nous supposons par la

suite que le domaine de temps 𝕋 est l’ensemble ℝ≥0. Nous donnons la définition suivante :

Définition 3.2 : Système de transitions temporisé

Un système de transitions temporisé (STT) est un quadruplet 𝒯 = (𝑆, 𝑠

0

, ⟶, ∑) où :

- 𝑆 est un ensemble d’états de contrôle ;

- 𝑠

0

est l’état de contrôle initial ;

- ⟶ ⊆ 𝑆 × (𝕋 ∪ ∑) × S 𝑒𝑠𝑡 𝑙𝑎 𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑖𝑡𝑖𝑜𝑛 ;

- ∑ est un ensemble d’actions.

97

- Les transitions →

𝑎

, avec 𝑎 ∊ ∑, qui correspondent à des actions au sens usuel et considérées

comme instantanées ;

- les transitions →

𝑑

, avec 𝑑 ∊ ∑, qui expriment l’écoulement d’une durée 𝑑 et vérifient les

conditions particulières suivantes :

o délai nul :𝑠→ 𝑠

0

si et seulement si 𝑠

= 𝑠 ;

o additivité : si 𝑠→ 𝑠

𝑑

et 𝑠

′ 𝑑

→ 𝑠

′′

, alors 𝑠

𝑑+𝑑

→ 𝑠

′′

o déterminisme temporel : si 𝑠→ 𝑠

𝑑

et 𝑠→ 𝑠

𝑑 ′′

, alors 𝑠

= 𝑠

′′

;

o continuité : si 𝑠→ 𝑠

𝑑

, alors pour tout 𝑑

et 𝑑

′′

tels que 𝑑 = 𝑑

+ 𝑑

′′

, il existe 𝑠

′′

tel

que 𝑠→ 𝑠

𝑑 ′′ 𝑑

→ 𝑠

′′

.

L’exécution d’un STT est une séquence finie ou infinie de transitions continues et discrètes de 𝑆. On

peut écrire une exécution 𝜌 d’un STT sous la forme suivante :.

𝜌 = 𝑞

0𝑑

→ 𝑞

0 ′ 0 𝑎0

→𝑞

1𝑑

→ 𝑞

1 ′ 1 𝑎1

→ …

𝑎

→ 𝑞

𝑛 𝑛𝑑

→ 𝑞

𝑛 ′ 𝑛

1.2.1 Les automates temporisés

Proposés par Alur et Dill [56], les automates temporisés étendent les automates finis classiques avec

la notion de temps. La notion de temps est alors ajoutée au modèle classique sous la forme d’horloges

qui évoluent de manière continue avec le temps. Ces horloges supportent l’application de prédicats

qui peuvent être de deux types :

– les gardes donnent des contraintes sur les horloges à respecter pour pouvoir exécuter

une transition d’action ;

les invariants donnent des contraintes à respecter pour rester dans un état.

On note 𝐶(𝑋) l’ensemble des contraintes d’horloges sur 𝑋, c’est à dire l’ensemble des combinaisons

booléennes de contraintes atomiques de la forme 𝑥~𝑐 où x est une horloge 𝑥 ∊ 𝑋, 𝑐 une constante

𝑐 ∊ ℕ et ~ un opérateur de comparaison (~ ∊ {=, <, >, ≤, ≥})

Formellement, un automate temporisé est défini comme suit :

Définition 3.3 : Automate temporisé

Un automate temporisé 𝒜 est un 6-uplet 𝒜 = (𝑄, 𝑋, 𝑞

0

, 𝑅, 𝐼𝑛𝑣, ∑) où :

- 𝑄 est un ensemble fini d’états de contrôle ou localités;

98

- 𝑞

0

est la localité initiale de l’automate ;

- 𝑇 ⊆ 𝑄 × C(𝑋) × ∑ × 2

𝑋

× Q est un ensemble fini de transitions;

- 𝐼𝑛𝑣: 𝑄 ⟶ 𝐶(𝑋) associe un invariant à chaque localité.

- ∑ est un ensemble d’actions.

La transition e, avec 𝑒 = 〈𝑞, 𝑔, 𝑎, 𝑟, 𝑞

〉 ∊ 𝑇, exprime un passage possible de 𝑞 à q

avec g la garde

associée, à l’étiquette 𝑒 et 𝑟 l’ensemble des horloges devant être remises à zéro. On note aussi cette

transition 𝑞

𝑔,𝑎,𝑟

→ 𝑞

Les contraintes d’horloges (gardes et invariants) sont interprétées sur des valuations d’horloges. Une

valuation 𝑣 pour 𝑋 est une fonction (𝑣: 𝑋 ⟶ ℝ

≥0

) qui associe à chaque horloge 𝑥 sa valeur (𝑥) . On

note ℝ

≥0𝑋

l’ensemble des valuations pour 𝑋. Chaque état d’un automate temporisé est alors une paire

(𝑞, 𝑣) ∊ 𝑄 × ℝ

≥0𝑋

où 𝑞 ∊ 𝑄 et 𝑣 est une valuation d’horloges satisfaisant l’invariant de la localité 𝑞.

La Figure 3-2 présente un exemple d’automate temporisé modélisant une porte qui s’ouvre lentement

(état Slow) lorsque l’interrupteur est appuyé (action modélisée par une transition étiquetée par

appui!). Cette action remet l’horloge h à zéro. Si l’interrupteur est appuyé une seconde fois dans les 5

secondes qui suivent (ℎ ≤ 5), la porte s’ouvre plus rapidement (état Speed ).

Les valeurs des horloges sont modifiées de deux façons :

– soit lors d’une transition continue (ou transition de temps). Si un certain délai 𝑑 ∊ 𝕋

s’écoule, alors les valeurs de toutes les horloges s’incrémentent de 𝑑. On note 𝑣 + 𝑑

la valuation qui associe à l’horloge 𝑥 la valeur (𝑥) + 𝑑 . L’automate passe alors de l’état

(𝑞, 𝑣) à l’état (𝑞, 𝑣 + 𝑑).

soit lors d’une transition discrète (ou transition d’action). Dans ce cas, les mises à jour

des horloges sont limitées à des remises à zéro. Pour 𝑟 ⊆ 𝑋, [𝑟 ← 0]𝑣 représente la

valuation 𝑣

définie par : 𝑣

(𝑥) = 0 pour tout 𝑥 ∊ 𝑟 et 𝑣

(𝑥) = 𝑣(𝑥) pour 𝑥 ∊ 𝑋\𝑟.

99

Définition 3.4 : Sémantique des automates temporisés

La sémantique d’un automate 𝒜 = (𝑄, 𝑋, 𝑞

0

, 𝑅, 𝐼𝑛𝑣, ∑) est définie par le STT 𝒯

𝒜

= (𝑆, 𝑠

0

, ⟶, ∑)

où :

- 𝑆 = {(𝑞, 𝑣) ∊ 𝑄 × ℝ

≥0𝑋

| v ⊨ 𝐼𝑛𝑣(𝑞)} est un ensemble fini d’états de contrôle ou localités;

- 𝑠

0

= (𝑞

0

, 𝑣

0

) avec 𝑣

0

(𝑥) = 0 pour tout 𝑥 ∊ 𝑋;

- la relation de transition ⟶ correspond à deux types de transitions :

– les transitions d’actions : (𝑞, 𝑣)→ (𝑞

𝑎

, 𝑣

) si et seulement s’il existe 𝑞

𝑔,𝑎,𝑟

→ 𝑞

∊ 𝑇

tel que v ⊨ g, 𝑣

= [𝑟 ← 0]𝑣 et v

⊨ 𝐼𝑛𝑣(𝑞

) .

les transitions de temps : si 𝑑 ∊ ℝ

≥0

,(𝑞, 𝑣)→ (𝑞, 𝑣 + 𝑑)

𝑎

si et seulement si 𝑣 + 𝑑 ⊨

𝐼𝑛𝑣(𝑞

).

Comme tout système de transitions temporisé, l’exécution d’un automate temporisé commence par

sa configuration initiale : à partir de son état initial 𝑞

0

avec toutes les horloges à zéro. Ensuite, il

effectue successivement des transitions qui peuvent être de deux types :

- les transitions d’actions qui remettent à zéro certaines horloges, si la valeur des horloges le

permet ;

- les transitions de temps qui incrémentent toutes les horloges d’une même durée en

respectant l’invariant associé à la localité courante.

Par exemple, l’automate temporisé 𝒜

1

de la Figure 3-2 peut évoluer à partir de sa configuration initiale

(Idle, 0) de la façon suivante :

(Ouverte, 0) → (Ouverte, 10)

𝐴𝑝𝑝𝑢𝑖?

→ (𝑆𝑙𝑜𝑤, 0) → (𝑆𝑙𝑜𝑤, 3)

𝐴𝑝𝑝𝑢𝑖?

→ (𝑆𝑝𝑒𝑒𝑑, 10)

𝐴𝑝𝑝𝑢𝑖?

→ (Ouverte, 0) …

Tous les automates s’exécutent en parallèle et à la même vitesse dans les réseaux d’automates

temporisés. Leurs horloges sont toutes synchronisées sur le même temps global et le partage

d’horloges entre plusieurs automates du réseau est tout à fait autorisé. On utilise la notation (𝑞⃗, 𝑣)

pour désigner la configuration d’un réseau où 𝑞⃗ est un vecteur de localités et 𝑣 une fonction associant

à chaque horloge du réseau sa valeur à l’instant courant. Le comportement d’un système complexe

peut être représenté par un unique automate temporisé qui résulte du produit synchronisé de

plusieurs autres (cf. Définition 3.5).

Définition 3.5 : Produit synchronisé

Soient 𝒜

1

= (𝑄

1

, 𝑋

1

, 𝑞

01

, 𝑇

1

, 𝐼𝑛𝑣

1

, ∑

1

) et 𝒜

2

= (𝑄

2

, 𝑋

2

, 𝑞

02

, 𝑇

2

, 𝐼𝑛𝑣

2

, ∑

2

) deux automates

temporisés avec 𝑋

1

∩ 𝑋

2

= ∅ ; alors la synchronisation de 𝒜

1

et 𝒜

2

est l’automate temporisé

𝒜

1

⨂𝒜

2

= (𝑄, 𝑋, 𝑞

0

, 𝑅, 𝐼𝑛𝑣, ∑) où:

100

- 𝑋 = 𝑋

1

∪ 𝑋

2

- 𝑞

0

= (𝑞

01

, 𝑞

02

)

- ∑ = ∑

1

∪ ∑

2

- Si 〈𝑞

1

, 𝑔

1

, 𝑎

1

, 𝑟

1

, 𝑞′

1

〉 ∊ 𝑇

1

et 〈𝑞

2

, 𝑔

2

, 𝑎

2

, 𝑟

2

, 𝑞′

2

〉 ∊ 𝑇

2

alors 𝑇 est défini par :

Si 𝑎

1

= 𝑎

2

= 𝑎 ∊ ∑

1

∪ ∑

2

alors 〈(𝑞

1

, 𝑞

2

), 𝑔

1

⋀𝑔

2

, 𝑎, 𝑟

1

∪ 𝑟

2

, (𝑞′

1

, 𝑞′

2

)〉 ∊ 𝑇

Si 𝑎

1

∊ ∑

1

\∑

2

alors 〈(𝑞

1

, 𝑞

2

), 𝑔

1

, 𝑎

1

, 𝑟

1

, (𝑞′

1

, 𝑞

2

)〉 ∊ 𝑇

Si 𝑎

1

∊ ∑

2

\∑

1

alors 〈(𝑞

1

, 𝑞

2

), 𝑔

2

, 𝑎

2

, 𝑟

2

, (𝑞

1

, 𝑞′

2

)〉 ∊ 𝑇

- ∀(𝑞

1

, 𝑞

2

) ∊ 𝑄

1

× 𝑄

2

, 𝐼𝑛𝑣(𝑞

1

, 𝑞

2

) = 𝐼𝑛𝑣

1

(𝑞

1

) = 𝐼𝑛𝑣

1

(𝑞

1

)⋀𝐼𝑛𝑣

2

(𝑞

2

);