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 ;
- 𝑠
0est 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
- 𝑞
0est 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 𝑞
0avec 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é 𝒜
1de 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 𝒜
1et 𝒜
2est l’automate temporisé
𝒜
1⨂𝒜
2= (𝑄, 𝑋, 𝑞
0, 𝑅, 𝐼𝑛𝑣, ∑) où:
100
- 𝑋 = 𝑋
1∪ 𝑋
2- 𝑞
0= (𝑞
01, 𝑞
02)
- ∑ = ∑
1∪ ∑
2- Si 〈𝑞
1, 𝑔
1, 𝑎
1, 𝑟
1, 𝑞′
1〉 ∊ 𝑇
1et 〈𝑞
2, 𝑔
2, 𝑎
2, 𝑟
2, 𝑞′
2〉 ∊ 𝑇
2alors 𝑇 est défini par :
– Si 𝑎
1= 𝑎
2= 𝑎 ∊ ∑
1∪ ∑
2alors 〈(𝑞
1, 𝑞
2), 𝑔
1⋀𝑔
2, 𝑎, 𝑟
1∪ 𝑟
2, (𝑞′
1, 𝑞′
2)〉 ∊ 𝑇
– Si 𝑎
1∊ ∑
1\∑
2alors 〈(𝑞
1, 𝑞
2), 𝑔
1, 𝑎
1, 𝑟
1, (𝑞′
1, 𝑞
2)〉 ∊ 𝑇
– Si 𝑎
1∊ ∑
2\∑
1alors 〈(𝑞
1, 𝑞
2), 𝑔
2, 𝑎
2, 𝑟
2, (𝑞
1, 𝑞′
2)〉 ∊ 𝑇
- ∀(𝑞
1, 𝑞
2) ∊ 𝑄
1× 𝑄
2, 𝐼𝑛𝑣(𝑞
1, 𝑞
2) = 𝐼𝑛𝑣
1(𝑞
1) = 𝐼𝑛𝑣
1(𝑞
1)⋀𝐼𝑛𝑣
2(𝑞
2);
Dans le document
Orchestration d'agents mobiles en communauté
(Page 97-101)