Académique Documents
Professionnel Documents
Culture Documents
-1-
Modélisation et Evaluation de Systèmes Informatiques,
partie Automates finis et applications
2ème année
Jacques Julliand
Année 2007
-2-
Table des matières
PRODUITS D'AUTOMATES 11
1. Pourquoi des produits d'automates ? ...........................................................................................................11
2. Produit libre (ou cartésien) ..........................................................................................................................12
2.1. Exemples introductifs .........................................................................................................................12
2.2. Définitions ..........................................................................................................................................12
3. Produit synchronisé .....................................................................................................................................15
3.1. Exemple introductif ............................................................................................................................15
3.2. Définitions ..........................................................................................................................................15
4. Produit synchrone........................................................................................................................................16
5. Produit Asynchrone.....................................................................................................................................17
6. Résumé, Conclusion....................................................................................................................................17
AUTOMATES COMMUNICANTS 39
1. Pourquoi et comment faire communiquer des automates ?.........................................................................39
1.1. Pourquoi ? ...........................................................................................................................................39
-1-
1.2. Comment ?..........................................................................................................................................40
2. Automates communicants par échange de messages ..................................................................................41
2.1. Synchronisation par rendez-vous ........................................................................................................41
2.2. Echange d'informations par rendez-vous ............................................................................................42
2.3. Echange d'information par file FIFO ..................................................................................................42
3. Automates communicants par variables partagées......................................................................................43
4. Résumé, conclusion.....................................................................................................................................43
AUTOMATES TEMPORISES 45
1. Motivations..................................................................................................................................................45
2. Description des Automates Temporisés (AT) .............................................................................................47
2.2. Configuration et exécution..................................................................................................................48
Réseaux d’A.T.................................................................................................................................................51
3.1. Exemple - Modélisation d’un passage à niveau.................................................................................51
3.2. Exécution d’un réseau d’AT avec Invariants......................................................................................51
4. Evaluation algorithmique des automates temporisés .................................................................................53
4.1 Equivalence des valuations d'horloge et Régions ............................................................................53
4.2 Automate des Régions pour l’analyse d’accessibilité......................................................................56
4.3 Définition de l'automate des régions pour faire du model checking TCTL (voir [ACD 93])..........58
4.4 Automates des zones............................................................................................................................59
4.5 Model-Checking MITL....................................................................................................................67
5. Résumé, Conclusion et Perspectives ..........................................................................................................74
RÉFÉRENCES 75
INDEX 75
-2-
Figure 28 Automate de Büchi de la propriété (Dt=occupé ⇒ (Dt=occupé ∧ De=occupé)) ..................................23
Figure 29 : Automate de Büchi vérifiant la propriété (p⇒Oq) ...............................................................................24
Figure 30 : Automate de Büchi vérifiant la propriété (De=libre ⇒ O(De=libre)) .................................................25
Figure 31: Produit synchronisé du robot avec la propriété (De=libre ⇒ ODe=libre).............................................25
Figure 32 : Automate de Büchi vérifiant la propriété ◊ (De=occupé).......................................................................26
Figure 33: Produit synchronisé du robot avec la propriété (De=occupé).........................................................26
Figure 34 : Automate associé à la SKE de la Figure 1 d’après la définition 3.8 ........................................................28
Figure 35 : Produit synchronisé des automates des Figure 34 et Figure 30. ..............................................................29
Figure 36. : digicode avec transitions gardées...........................................................................................................31
Figure 37. : Automate de montre avec variables ........................................................................................................32
Figure 38. : Automate du Robot avec variables .........................................................................................................32
Figure 39. : Digicole avec comptage des erreurs........................................................................................................33
Figure 40. : digicode abstrait ......................................................................................................................................35
Figure 41: Dépliage et Approximation de SKE avec variable de données.................................................................37
Figure 42. : Automates Evacuateur et Pince...............................................................................................................39
Figure 43 : Automates communicants CEvacuateur et CPince ..................................................................................40
Figure 44 : Automates communicants par échange de messages EvacuateurG, EvacuateurD et PinceV..................40
Figure 45 : Automate déplié obtenu par la mise en parallèle des 3 automates de la Figure 44..................................41
Figure 46 : Automates synchronisés par rendez-vous correspondant au dépliement des automates avec variables de
la Figure 44.........................................................................................................................................................42
Figure 47 : communication par File FIFO..................................................................................................................42
Figure 48 : Automate File infinie ...............................................................................................................................43
Figure 49 : Automates communicants par variables partagées ..................................................................................43
Figure 50 : Un automate temporisé ............................................................................................................................45
Figure 51 : Modélisation du temps .............................................................................................................................46
Figure 52 : Automate sous-jacent à l'AT de la Figure 50 ...........................................................................................47
Figure 53 : Dépliage de l'AT de la Figure 50 sur des intervalles de temps ................................................................49
Figure 54 : Un passage à niveau.................................................................................................................................50
Figure 55 : Modélisation temporisée d’un passage à niveau ......................................................................................50
Figure 56 : Produit synchronisé de la barrière et d’un train .......................................................................................52
Figure 57 : Vérification des automates temporisés.....................................................................................................53
Figure 58 : Ensemble des régions pour une horloge x avec Cx = 5 ............................................................................54
Figure 59 : Ensemble des régions pour 2 horloges Ht et Hb avec CHt=5 et CHb=2 ....................................................55
Figure 60 : Régions pour Cx=1 et Cy=1 ......................................................................................................................55
Figure 61 : Tableau des régions successeurs de la Figure 60 .....................................................................................56
Figure 62 : Automate des régions pour l’analyse d’accessibilité associé au train......................................................57
Figure 63 : Automate des régions atteignables du train .............................................................................................58
Figure 64 : Autre automate temporisé du train...........................................................................................................59
Figure 65 : Automate des régions du train Figure 64 pour faire du model-checking.................................................60
Figure 66 : Zone convexe et non convexe..................................................................................................................61
Figure 67 : Opérations sur les zones...........................................................................................................................62
Figure 68 : Automate temporisé A0 ............................................................................................................................63
Figure 69 : Automate de régions R(A0)......................................................................................................................63
Figure 70 : Automate des zones Z(A0) .......................................................................................................................64
Figure 71 : Ensemble des zones de Z (A0) .................................................................................................................64
Figure 72 : ABT de la propriété ¬M1.........................................................................................................................68
Figure 73 : Exemple de langage dont le complémentaire n’est pas ω-régulier ..........................................................69
Figure 74 : AT étiqueté par des ensembles de propositions .......................................................................................70
Figure 75 : Produit synchronisé des automates des Figure 73 et Figure 74. ..............................................................71
Figure 76 : Automate des régions associé à l’AT de la ..............................................................................................72
Figure 77 : Régions pour Cx=2 et CHt=1.....................................................................................................................73
Figure 78 : Automates des régions de l’AT de la .......................................................................................................74
-3-
Tables des Définitions
Définition 1 - Système de transitions étiquetées (STE) :..............................................................................................3
Définition 2 - Structure de Kripke Etiquetée (SKE) :...................................................................................................3
Définition 3 - Exécution finie :.....................................................................................................................................4
Définition 4 - Exécution infinie :..................................................................................................................................4
Définition 5 - chemin d’exécution complet :................................................................................................................4
Définition 6 - Automate étiqueté :................................................................................................................................5
Définition 7 - Produit cartésien (libre) d'automates : .................................................................................................14
Définition 8 : Produit synchronisé..............................................................................................................................15
Définition 9 - Produit synchrone : ..............................................................................................................................16
Définition 10 – Produit asynchrone :..........................................................................................................................17
Définition 11 - PLTL :................................................................................................................................................21
Définition 12 – Sémantique de la PLTL :...................................................................................................................21
Définition 13 – Automate de Büchi :..........................................................................................................................21
Définition 14 - satisfaction d'une proposition d'état par un ensemble de propositions atomiques : ...........................23
Définition 15 - reconnaissance d'une exécution infinie par un automate de Büchi :..................................................23
Définition 16 – Transformation d’une SKE en AB ....................................................................................................27
Définition 17 – Produit synchronisé d’automates de Büchi : .....................................................................................27
Définition 18 - SKE avec variables : ..........................................................................................................................33
Définition 19 - Dépliage d’une SKE avec variables :.................................................................................................34
Définition 20 - Abstraction d’une SKE : ....................................................................................................................35
Définition 21 - contrainte d'horloge : .........................................................................................................................47
Définition 22 – Automate Temporisé :.......................................................................................................................47
Définition 23 - exécution d’un AT : ...........................................................................................................................49
Définition 24 - AT avec Invariant : ............................................................................................................................52
Définition 25 - produit synchronisé de 2 AT communicants : ...................................................................................52
Définition 26 - sémantique d'un AT : .........................................................................................................................53
Définition 27 - relation d'équivalence sur les valuations d'horloge :..........................................................................54
Définition 28 - fonction succ :....................................................................................................................................55
Définition 29 - automate des régions :........................................................................................................................56
Définition 30 - notion de région de fin :.....................................................................................................................58
Définition 31 - région bornée : ...................................................................................................................................58
Définition 32 - graphe des régions : ...........................................................................................................................58
Définition 33 – Automate des zones : ........................................................................................................................62
Définition 34 - formules MITL :: ...............................................................................................................................67
Définition 35 - satisfaction d’une formule MITL :: ...................................................................................................67
Définition 36 - Automate de Büchi Temporisé (ABT) :.............................................................................................68
Définition 37 - exécution d’un ABT : ........................................................................................................................68
Définition 38 - produit synchronisé de deux AT :......................................................................................................69
Définition 39 - automate des régions associé à un AT ::............................................................................................70
Définition 40 - cycle progressif : :.............................................................................................................................72
-4-
Tables des exercices et des exemples
Exercice 1 : ...................................................................................................................................................................2
Exercice 2 : .................................................................................................................................................................15
Exercice 3 : .................................................................................................................................................................35
-5-
INTRODUCTION AUX AUTOMATES
1.1. Définitions
Grand Larousse en 5 volumes :
- Machine qui, par le moyen de dispositifs mécaniques, pneumatiques, hydrauliques, électriques ou
électroniques, est capable d'actes imitant ceux des corps animés (poupée à mouvements saccadés
accompagnant la mélodie de boite à musique).
- Automates de Vaucanson (joueur de flûte, canard).
- Personne qui agit comme une machine, d'une manière inconsciente ou sous l'impulsion d'une force
extérieure.
- Machine et mécanismes automatiques, utilisés par exemple pour la peinture et le soudage dans
l'industrie automobile (robot), dans la banque pour distribuer les billets.
- Automate programmable, système de commande automatique de machines permettant de choisir
entre plusieurs séquences d'actions préétablies (cœur des machines outils).
Pour ce cours les automates sont autre chose : ce sont des modèles élémentaires de machine ou de
calcul.
init
s0
De Dt
Chargt
s1
Evac
De Dt
DéChargt
s2
Evac
De Dt
Chargt
s3
De Dt
1.2. Exemples
1. Imaginons un robot de transport de pièces (voir Figure 1) constitué d'une pince qui charge des
pièces et les décharge sur un évacuateur qui les évacue. Une modélisation élémentaire (très abstraite) des
fonctionnements de cette machine est la suivante :
Il est défini par un automate représenté par un graphe (voir Figure 1) où :
- les ronds représentent les états de la machine ; le schéma intérieur est une interprétation (appelé
aussi décor) des états modélisant le système physique,
-1-
Cours n°1 Introduction aux Automates - Master Informatique
- les flèches entre les ronds sont des transitions de changement d'états provoqué par l'événement dont
le nom e étiquette la flèche,
le cas particulier d'un rond qui a une flèche entrante venant d'aucun état désigne un état initial de la
machine,
le cas particulier d’un rond qui n’a pas de flèche sortante est un état terminal de la machine (état de
blocage).
2. Prenons un exemple un peu plus élaboré, celui d'un digicode (voir Figure 2) comme ceux
permettant l'ouverture de porte.
- la porte s'ouvre dès qu'on a tapé la bonne séquence de caractères,
- pour simplifier, supposons 3 touches A, B, C et que la porte s'ouvre dès que l'on a tapé la suite
ABB.
Ce digicode peut être modélisé par l'automate suivant à 4 états et 9 transitions
B, C A
A B B
s0 s1 s2 s3
ε A AB ABB
C A
C
1.3. Bilan
En ce sens les automates permettent de modéliser des machines ou des calculs, de manière générale
des systèmes à événements discrets par :
- un ensemble d'états du système,
- un état initial,
- des transitions atomiques entre états (aucun état intermédiaire n'est observé, donc il ne peut rien se
passer d'autre pendant la transition).
Ils ne permettent pas de modéliser des phénomènes continus, comme c'est souvent le cas en
automatique. Voir d'autres modélisations : équations aux dérivées partielles,...
Ils permettent de modéliser des systèmes à événements discrets, comme c'est le cas en informatique et
en productique.
Le passage du continu au discret s'effectue s’il est possible d'ignorer l'évolution continue des états
pour observer le système à la lumière d'un stroboscope.
-2-
Cours n°1 Introduction aux Automates - Master Informatique
Remarques :
. Les transitions de l'automate de la montre ne sont pas étiquetées. C'est un triplet <S, S0, R> où R ⊆
S×S. On appellera cette structure système de transitions (ST).
a s'
. Les transitions étiquetées sont notées (s, a, s') ou s →
. Les états de ces automates ne sont pas décorés par une modélisation du système physique. Par
exemple il n'est pas possible de savoir que dans l'état s0 du robot la pince est vide et l'évacuateur
aussi. Pour modéliser ceci on enrichit la définition des STE en décorant les états. Cette structure est
alors appelée Structure de Kripke.
Définition 2 - Structure de Kripke Etiquetée (SKE) :
On suppose donné un ensemble π de propositions atomiques et un ensemble E d'étiquettes, une
structure de Kripke K est un système de transition étiquetées où les états sont décorés par des ensembles
de propositions de π, K= <S, S0, E, R, λ> où :
- S est un ensemble d'états,
- S0 est un ensemble d'états initiaux S0 ⊆ S,
- E est un ensemble fini d’étiquettes (noms d’action ou d’événements),
- R est un ensemble de transitions, R ⊆ S×E×S,
- λ est une application totale injective de S dans 2π, l'ensemble des parties de π.♦
Exemple 2 – SKE Robot :
-3-
Cours n°1 Introduction aux Automates - Master Informatique
def
Soit π = {De=libre, De=occupé, Dt=libre, Dt=occupé},
def
- λ = {s0 å {De=libre, Dt=libre}, s1 å {De=libre, Dt=occupé}, s2å {De=occupé, Dt=libre}, s3 å
{De=occupé, Dt=occupé}}.
Exemple 3 – SKE Digicode
def
Soit π = {code=‘’, code='A', code='AB', code='ABB'},
def
λ = (s0 å {code=’’}, s1 å {code='A'}, s2 å {code='AB'}, s3 å {code='ABB'}.
Remarques
En général, les structures de Kripke sont munies d’une relation de transition totale de telle sorte
qu’elles ne décrivent que des comportements infinis. Une relation R est totale ssi ∀s.(s ∈ S ⇒ ∃(s’, e).(s
→e s’ ∈ R)). Par exemple, le robot a une relation de transition totale. Par contre le digicode de la Figure 2
n’a pas de relation R totale puisqu’il se bloque dans l’état s3.
Remarque
On appellera indifféremment un chemin d'exécution chemin ou exécution.
Définition 5 - chemin d’exécution complet :
On appelle chemin d'exécution complet d'un automate soit un chemin infini, soit un chemin fini
terminé par un état qui n'a pas de successeur : s0 ... sn est une exécution complète si il n'existe pas de
a s ∈ R.♦
transition s → n j
-4-
Cours n°1 Introduction aux Automates - Master Informatique
s0 s1
s0 s1 s0 s1 s2
.
s1 .
. s0 s1 s2 s3
s0
. s0 s1
s1
s0 .
.
s1
.
.
.
.
:
Figure 4 : arbre des exécutions
On peut remarquer que l'ensemble d'exécution est infini et qu'il est représenté par un automate fini
(nombre d'états fini).
L'un des intérêts des automates est d'être une représentation finie d'un ensemble infini de
comportements d'un système. On pourra résoudre algorithmiquement des problèmes sur un univers infini.
On appelle trace d’une exécution complète la séquence des étiquettes des transitions.
Un automate est un système de transition étiqueté ou non muni d’une condition d’acceptation des
exécutions qui a pour but de limiter l’ensemble des exécutions complètes acceptées à celles :
- soit qui se terminent par un état d’acceptation, appelé état terminal ; ceci permet l’acceptation d’un
ensemble de séquences d’exécution (ou de traces) finies (cas des langages réguliers),
- soit qui contiennent une infinité d’états d’acceptation ; ceci permet l’acceptation d’un ensemble de
séquences d’exécutions infinies (cas des langages ω-réguliers, voir chapitre AUTOMATES DE
BÜCHI ET PROPRIETES PLTL),
- soit d’autres variantes (automates de Street, de Rabin, etc [HTCS 90]).
Définition 6 - Automate étiqueté :
Un automate étiqueté est un STE muni d’une condition d’acceptation, A=<S, S0, E, R, F> où F (⊆ S)
est un sous-ensemble des états de S.♦
Une exécution finie doit se terminer par un état sn de F pour être acceptée. Une exécution infinie doit
contenir une infinité d’états de F pour être acceptée. Cette condition se formalise ainsi. Soit σ une
def
exécution, soit Inf(σ) = {s | il existe une infinité d’états si de σ tel que s=si}. Une exécution σ est acceptée
ssi Inf(σ)∩F ≠ φ.
Notons que l’absence de condition d’acceptation signifie implicitement que toutes les exécutions sont
acceptées, ce qui revient à la condition d’acceptation F=S.
4.1. Idée 1 : Etre un modèle formel d'un système pour résoudre des problèmes
Exemple 6 - problèmes résolus par modélisation par des automates :
-5-
Cours n°1 Introduction aux Automates - Master Informatique
Solution
Reformulation du problème sur l'automate (ou sur le graphe).
1. Existe-t-il un état qui est cible d'une transition et qui n'est pas source d'une autre ?
def C s,s →
R = {s0 → D s,s →E s,s →C s,s →E s}
1 1 2 2 0 2 3 3 1
3. Est-ce qu'il existe un chemin fini partant de n’importe quel état et se terminant par s3 ? Pour
résoudre ce problème, faisons un marquage du graphe en marquant de proche en proche les états qui
permettent d’atteindre s3, puis ceux qui permettent d’atteindre ceux qui atteignent s3 jusqu’à ce que
l’ensemble ne change plus. Si l’ensemble obtenu contient tous les états, alors s3 est atteignable à partir de
tout état.
def
Soit : Q = {s3},
B s existe, Q =
- on marque les états qui ont une transition vers s ; s est marqué car la transition , s →
3 2 2 3
{s2, s3},
def
- on marque les états qui ont une transition vers s2 : Q = {s1, s2, s3},
def
- on marque les états qui ont une transition vers s1 : Q = {s0, s1, s2, s3}.
def
Comme Q = S, s3 est atteignable à partir de tous les états.
4. Est-ce que le jeu de Nim est tel que le premier joueur a une stratégie gagnante ?
Jeu de Nim : Jeu à 2 joueurs
-6-
Cours n°1 Introduction aux Automates - Master Informatique
5,A
2,B 1-1,B
1,B
1,A
0,B 0,A
Règles
- le joueur a le droit de faire tomber 1 ou 2 quilles voisines,
- le joueur qui fait tomber la dernière a gagné.
Résolution du problème
- construire l'automate représentant toutes les parties (voir Figure 5),
- voir s’il existe des chemins d'exécution ou les choix du joueur A lui permettent de faire tomber la
dernière quille quel que soit les choix du joueur B.
Légende
- x-y est une configuration des quilles en 2 paquets de x et y quilles consécutives séparés par un
espace,
- A et B sont le n° du joueur qui doit jouer.
Les exécutions gagnantes pour A (voir Figure 6) sont celles qui atteignent l'état décoré par (0, B)
quel que soit ce que joue B.
A B A
2-1,A 1-1,B 1,A 0,B
B
A
5,A 2-2,B
B A
2,A 0,B
-7-
Cours n°1 Introduction aux Automates - Master Informatique
Remarque :
Notons que l'automate du jeu de Nim décrit un ensemble fini de comportements par opposition aux
automates du Robot et du Digicode.
Exemple :
Le problème d'atteignabilité de l'état s3 par le Digicode ne peut pas être résolu en énumérant toutes les
exécutions possibles.
Exemples :
- les problèmes 1 et 3 n'ont besoin ni d'étiquette, ni de décor (Un ST suffit),
- le problème 2 utilise les étiquettes et le décor (Une SKE est nécessaire),
- le problème 4 utilise le décor (Une SK suffit).
-8-
Cours n°1 Introduction aux Automates - Master Informatique
A attend R B attend R
B obtient R
A utilise
B utilise
R B calcule
R
B libère R
A a libéré R B a libéré R
1 1
CA (calcul) 4 CB
_ _
(A libère R) L 2 L R 2 L
R (A obtient R) R
5
3 3
PA PR PB
Figure 8 : automates des composants modélisant l'exclusion mutuelle
Ce produit synchronisé (voir section Produit synchronisé page 18) est défini par (PA || PR || PB)\Sync
- -
où Sync={CA, CB, (R, R), (L, L)} est représenté dans la
Figure 9.
Dans la Figure 9, n, p, k représentent l'état de PA, de PR et de PB respectivement :
-9-
Cours n°1 Introduction aux Automates - Master Informatique
C 1,4,1 C
A B
- 2,4,1 1,4,2
-
(L,L)
C (L,L)
B C -
A
(R,R)
-
(R,R) - 2,4,2
- -
(L,L)
(R,R) (L,L)
-
3,5,1 1,5,3
(R,R)
2,5,3 3,5,2
- 10 -
Cours n°2 - Produits d'Automates - Master Informatique
PRODUITS D'AUTOMATES
m m m m m m
0 1 2 3 ..... 58 59
h h h h
0 1 2 3 ..... 22 23
i i i i
0 1 2 ..... n-2 n-1
- 11 -
Cours n°2 - Produits d'Automates - Master Informatique
- produit synchrone (cas particulier de produit synchronisé où seules les étiquettes couple de deux
étiquettes sont autorisées) pour des systèmes totalement dépendants,
- produit asynchrone pour des systèmes indépendants où l'on interdit l'évolution simultanée des sous-
systèmes (cas particulier du produit synchronisé où l'on restreint les étiquettes des transitions à
l'union des étiquettes des sous-systèmes).
s _ s
1 2
D
De De
E
Da _
Da
C
2.2. Définitions
La définition d'une Structure de Kripke étiquetée est donnée dans la Définition 2, page 6.
- 12 -
Cours n°2 - Produits d'Automates - Master Informatique
(s , s )
1 3
__ __
_
De Da
E _ C
A_P
D
(E, A_P)
_
_
(D, A_P) _ _
_ (E,C)
(C, D)
_ A_P D
E
C
_
h
0:0 m 0:1 m
0:2
(h,m) (h,m)
_
h
j j h h
_ _ j
(j,m) (j,m)
m m
1:0 1:1 1:2
_
h
_
(h, h)
Remarques
- on ne s'intéresse pas aux états finaux car on n'est pas sur des problèmes de reconnaissance de mots
finis,
- on s'intéresse aux valeurs des variables d'état du système dans chaque état. C'est le décor formalisé
par l'application λ,
v s.
- une transition est notée, soit (s , v, s ), soit s →
1 2 1 2
Exemple 10 - SKE
1 L'évacuateur de la Figure 13 est une SKE où :
def def
- S = {s0, s1}, S0 = {s1}, E = { Dechargt , Evac},
def
- R = {(s1, Dechargt , s2), (s2, Evac, s1)},
def
- λ = {s1 å {De=libre}, s2 å {De=occupé}}.
- 13 -
Cours n°2 - Produits d'Automates - Master Informatique
_ _
(j, h)
0:0 m 0:1 m
0:2
_
(h, h)
m m
1:0 1:1 1:2
→ → →
def
- R = {(s1, s3) DéChargt (s2, s3), (s1, s3) Arrivée_Pièce (s1, s4), (s1, s3) ( DéChargt , Arrivée_Pièce) (s2, s4),
→ → → →
(s2, s3) Evac (s1, s3), (s2, s3) Arrivée_Pièce (s2, s4), (s2, s3)(Evac, Arrivée_Pièce) (s1, s4), (s1, s4) Chargt (s1,
- 14 -
Cours n°2 - Produits d'Automates - Master Informatique
→ → → →
s3), (s1, s4), DéChargt (s2, s4), (s1, s4) ( Chargt , DéChargt ) (s2, s3), (s2, s4) Chargt (s2, s3), (s2, s4) Evac
3. Produit synchronisé
Parmi l'ensemble d'étiquettes de transitions {m, h , h, j , (h, m), ( j , m), (h, h ), ( j , h )} seules
sont autorisées {m, (h, h ), ( j , h )}. On appelle cet ensemble l'ensemble de synchronisation.
3.2. Définitions
Définition 8 : Produit synchronisé
def
Le produit synchronisé de 2 SKE K1 et K2, noté K1||K2\Sync, est une SKE K = <S1×S2, S01×S02, Sync,
R, λ> où :
- Sync est l'ensemble des étiquettes de transitions autorisées Sync ⊆ E1 ∪ E2 ∪ (E1×E2)
- R est l'ensemble de transitions défini pour le produit libre restreint aux transitions étiquetées dans
Sync,
- λ est l'application définie dans le produit libre.♦
Exemple 12 – produit synchronisé
Exercice 2 :
Définir la SKE de la spécification abstraite du robot par un produit synchronisé de deux SKE, la pince
et l'évacuateur.♦
- 15 -
Cours n°2 - Produits d'Automates - Master Informatique
0:0
m
0:1
m
0:2
m
... m
0:59
_
(h, h)
1:59
m
1:58
m
1:57
... m
1:0
_ _ _
(j, h) (h, h)
2:0
...
...
23:59
m
...
Figure 18 : Horloge
4. Produit synchrone
Définition 9 - Produit synchrone :
def
Le produit synchrone est un cas particulier de produit synchronisé K = <S1×S2, S01×S02, E1×E2, R, λ>
où les seules étiquettes autorisées sont les couples d'étiquettes.♦
Ainsi le produit synchrone oblige les 2 sous-systèmes à évoluer simultanément à chaque fois.
Exemple 13 – produit synchrone
Le produit synchrone de l'évacuateur et du dispositif d'arrivée serait la SKE représentée dans la Figure
19.
On notera que le graphe n'est pas connexe Les états (s1, s4) et (s2, s3) ne sont pas atteignables à partir
de l'état initial. Donc les transitions (Evac, Arrivée_Pièce) et ( Chargt , Déchargt ) ne sont pas
déclenchables à partir de l'état initial.
Une autre forme de produit synchrone (voir la définition chapitre 3) est utilisée pour vérifier si une
SKE KS viole une propriété P de PLTL. Celle-ci est codée par un automate de Büchi A¬P. Si l'automate
produit synchrone de KS et A¬P n'est formé que des chemins qui contiennent une infinité d'état
d'acceptation c'est que la propriété P est violée.
Exemple
def
Pour vérifier que l'Evacuateur n’évacue pas obligatoirement la pièce qu'il supporte (P = ◊(De=occupé
def
∧ (De=occupé))=, donc ¬P = (De=occupé ⇒ ◊(De=libre)), on effectue le produit synchrone (voir
Figure 21) de l'automate de l'évacuateur (voir Figure 13) avec celui qui code la négation de cette propriété
représenté Figure 20.
Le produit synchrone est représenté dans la Figure 21.
L'automate de la Figure 21 ne contient que des chemins formés d'une infinité d'états d'acceptation.
Ceci signifie que l'intersection des exécutions du système et de la propriété n'est pas vide, c'est à dire qu'il
existe des exécutions du système qui satisfont la propriété. Autrement dit ce produit synchrone ne permet
pas de conclure que toutes les exécutions du système satisfont la propriété (De=occupé ⇒ ◊(De=libre)).
- 16 -
Cours n°2 - Produits d'Automates - Master Informatique
Par contre, il permet de conclure que certaines exécutions du système ne satisfont pas la négation de la
propriété, c'est à dire que le système viole la négation de la propriété, exprimée ainsi en PLTL :
◊(De=occupé ∧ (De=occupé)).
s1 , s3
(D, C)
s1 , s4 (E, D)
s2 , s4
(D, D)
(E, C)
s2 , s3
De=occupé
a1 a2 De=libre
/
De=libre
5. Produit Asynchrone
Définition 10 – Produit asynchrone :
def
Le produit asynchrone est un cas particulier de produit synchronisé K = <S1×S2, S01× S02, E1 ∪ E2, R,
λ> où les seules étiquettes autorisées sont celles des actions individuelles de K1 et K2.. Ainsi on oblige les
2 sous-systèmes à évoluer séparément à chaque fois.♦
6. Résumé, Conclusion
- Les notions de produit d'automates permettent de simplifier la modélisation d'un système en
décrivant séparément les automates de ses sous-systèmes.
Le produit libre est le concept de base.
Le produit synchronisé est une restriction du produit libre qui restreint l’ensemble des étiquettes des
transitions.
- 17 -
Cours n°2 - Produits d'Automates - Master Informatique
S ,a
1 1
________
(D echargt, true)
(E vac, true)
S ,a
2 1
S ,a
1 2
s 1 , s3
s1 , s4 D
E D s2 , s4
D
E
C
D
s2 , s3
- 18 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
1. Introduction
Certaines propriétés des systèmes ne peuvent pas s'exprimer en logique classique mais nécessitent une
logique temporelle.
Exemples :
- P1 : la pince du robot de transport de pièces ne doit pas décharger sur un évacuateur déjà occupé
par une pièce (cf. cours n° 1).
- P2 : si la pince tient une pièce, elle doit obligatoirement la décharger.
La Logique Temporelle Linéaire Propositionnelle (PLTL) permet d'exprimer ces propriétés. Une
formule de PLTL définit un ensemble de chemins d'exécution autorisés pour un système. Cet ensemble
est un langage régulier sur des séquences infinies ; ensemble fini de séquences infinies. Ces langages sont
reconnus par des automates, appelés automates de Büchi, variantes des automates reconnaissant les
langages réguliers pour reconnaître des séquences infinies (langages ω-réguliers).
Utilisation pour vérifier une propriété PLTL sur un système :
- Vérifier que l'ensemble des chemins du système (Automate AS) est inclus dans l'ensemble des
chemins autorisés par la propriété (Automate AP qui est un automate de Büchi).
- Vérifier P sur S : AS ⊆ AP ? ou AS ∩ A¬P = φ?
C'est une opération de produit synchronisé sur les automates (les langages) (voir cours n° 2).
Notons que la Figure 23 représente toute l'information du quintuplet <S, S0 E, R, λ>. L'étiquetage des
états par les propositions atomiques suivantes est indiqué :
def
P6 = EtatPorte=fermée,
def
P7 = EtatPorte=ouverte,
def
P8 = CodeTapé=ε,
def
P9 = CodeTapé=A,
def
P10 = CodeTapé=AB,
def
P11 = CodeTapé=ABB.
- 19 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
B, C A A
A B B
s0 s1 s2 s3
P6, P8 P6, P9 P6, P10 P7, P11
C A
C
B, C
A B B
s0 s1 s2 s3
fermée, ⊥ fermée, A fermée, ouverte,
ΑΒ ΑΒΒ
C A
C
B, C
v0 s →
On note alors une exécution sous la forme suivante : s0 → v1 s →v2 s → …
1 2 3
A s →
Par exemple s0 → B s →B s est une exécution finie de l'automate Figure 24.
1 2 3
Définitions et Notations :
- Soit SPV l’ensemble de propositions d'état sur V ; soit p, p1, p2 ∈ SPV, SPV est défini
récursivement par la grammaire suivante :
p, p1, p2 ::= pa | x=y | ¬p | p1 ∨ p2 où pa ∈ APV, x et y ∈ V ;
Par exemple, Dt=libre ∧ De=libre et ¬(De=libre) sont des propositions d'état qui
combinent des propositions atomiques avec les opérateurs propositionnels suivants ¬, ∨, ∧, ⇒, …
- Soit P, P1, P2 des formules temporelles quelconques.
Syntaxe de la PLTL
- 20 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
Définition 11 - PLTL :
Soit P, P1 et P2 des formules temporelles. Les formules temporelles sont définies syntaxiquement
ainsi :
- pa est une formule temporelle,
- ¬P, P, ◊P et OP sont des formules temporelles,
- P1∧P2, P1∨P2, P1⇒P2, P1 U P2, P1 W P2 sont des formules temporelles.♦
Exemple 15 – propriététs en logique temporelle linéaire :
P1 : ((Dt=occupé ∧ O(Dt=libre)) ⇒ De=libre),
P2 : (Dt=occupé ⇒ Dt=libre),
P3 : (Dt=occupé ⇒ (Dt=libre U De=libre)).
Sémantique
Ces formules s'interprètent sur des chemins des automates vus comme des séquences d'états σ = s0, s1,
s2, .... En PLTL, implicitement chaque formule doit être vraie sur tous les chemins de l'automate pour
quelle soit satisfaite sur l'automate. Intuitivement ces formules se lisent ainsi :
- Toujours P notée P est vraie sur un chemin σ ssi P est vraie sur tous les états du chemin σ,
- Fatalement P ou Inévitablement P notée ◊P est vraie sur un chemin σ ssi P est vraie au moins sur
un état du chemin σ,
- A l'état suivant P notée OP est vraie sur un chemin σ à un état donné si ssi elle est vraie à l'état
si+1,
- P1 jusqu'à P2 notée P1 U P2 est vraie sur un chemin σ ssi P1 est vraie sur tous les états jusqu'à un
état où P2 est vraie,
- P1 à moins que P2 notée P1 W P2 est vraie sur un chemin σ ssi P1 est vraie sur tous les états
jusqu'à un état où P2 est vraie ou P1 est vraie sur tous les états de σ,
Formellement leur définition sont les suivantes :
Définition 12 – Sémantique de la PLTL :
def
Soit σ un chemin infini de l'automate : σ = s0, s1, s2, .s3 …sj …. On note "(σ, j) |= P" le prédicat "P est
satisfait sur le chemin σ sur l'état sj".
. (σ, j) |= pa ⇔ pa ∈ λ(sj) -- pa est vraie si elle décore l’état sj
. (σ, j) |= ¬P ⇔ il n'est pas vrai que (σ, k) |= P
. (σ, j) |= P1 ∨ P2 ⇔ (σ, k) |= P1 ou (σ, k) |= P2
. (σ, j) |= P ⇔k.(j≤k ⇒ (σ, k) |= P)
. (σ, j) |= OP ⇔ (σ, j+1) |= P
. (σ, j) |= P ⇔ ∃k.(j≤k ∧ (σ, k) |= P)
. (σ, j) |= P1 U P2 ⇔ ∃k.(j≤k ∧ (σ, k) |= P2 ∧ ∀i.(j≤i<k ⇒ (σ, i) |= P1))
. (σ, j) |= P1 W P2 ⇔ ((σ, j) |= P1 U P2) ou ((σ, j) |= P1).♦
Nous ne donnons pas la définition des autres opérateurs car ils se redéfinissent tous à partir de ¬, ∨, O
et U.
Automates de Büchi
Définition 13 – Automate de Büchi :
On suppose donné un ensemble SPV de propositions d'états. Un automate de Büchi est un quintuplet
def
AB = <SB, sb0, SPV, RB, SBA> où :
- 21 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
p∧q q
p∧¬q
e0 e1
¬p ¬q
Figure 25 : Exemple d’automate de Büchi
Ces automates permettent de coder des mots infinis de langages réguliers appelés langages ω-
réguliers. Les propriétés PLTL définissent l'ensemble des chemins infinis qui satisfont la propriété. Par
exemple la propriété (p⇒◊q) est satisfaite par l'ensemble infini de chemins infinis dont les séquences
suivantes sont des exemples de préfixes :
- ¬p ¬p p ¬p ¬p q ¬p p p ¬p p ¬p q ¬p…
- ¬p ¬p ¬p ¬p ¬p ¬p …
Cet ensemble se code par l'automate de la Figure 27 dans le cas où q=¬p. Les mots du langage sont
les séquences infinies d'étiquettes des transitions reconnues par les exécutions de l'automate qui
contiennent une infinité d'états d'acceptation.
Exemple 16 – automate de Büchi
Dt=o
Dt=l
Dt = o
sb0 sb1
Dt=l
{¬p ¬p ¬p ...,
¬p ... ¬p p ... ¬p ¬p ... ,
¬p ... ¬p p ... ¬p ... ¬p p ... ¬p ... , ... }
- 22 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
Le langage est défini par l'expression ω-régulière suivante : (p*.¬p)ω reconnue par l'automate dans la
Figure 27.
¬p p
p
sb0 sb1
¬p
Exemples
def def
- σ = (s0 s1 s2)ω de la Figure 1 est reconnue par la séquence χ = (sb0 sb0 sb1)ω de la Figure 26 qui
contient une infinité de fois l'état d'acceptation sb0.
- la propriété suivante (Dt=occupé ⇒ (Dt=occupé ∧ De=occupé)) est codée par
l'automate de Büchi de la Figure 28 :
true Dt=l ∨ De=l
Dt=o
sb0 sb1
Dt=o ∧ De=o
- 23 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
sb0 p q sb2
sb1 true
true
De=libre De=libre
sb0 sb1 sb2
true
true
- 24 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
- 25 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
De=occupé
sb0 sb1
De=occupé
true
init
s0, sb0
<l, l>
Evac, true
Chargt, true
s1, sb0
<o, l>
DéChargt,
true
s2, sb0
<l, o> Chargt, De=o
Evac, Chargt,
De=o true s3, sb1
s3, sb0
s2, sb1 <o, o> <o, o>
<l, l>
Evac,
De=o
- 26 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
. "using asynchronous Büchi automata for efficient verification of concurrent systems". Symp. on
Protocol Specification Testing & verification, Pologne, pp. 90-100, juin 95.
Implantation de cet algorithme dans SPIN et [G.J. HOLZMANN], http://www.lics.bell-
labs.com:8080/cgi-bin/dok.exe.
P. Gastin, D. Oddoux, "Fast LTL to Büchi automata translation", Computer Aided Verification 2001,
p. 53-65.
- Kousha ETESSAMI : outil shareware : http//cm.bell-labs.com/who/kousha/, papiers :
http//www1.bell-labs.com/project/TMP/
- 27 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
i
{De=l, Dt=l}
s0
{De=l, Dt=o}
s1 {De=l, Dt=l}
{De=o,
Dt=l}
{De=l, Dt=o}
s2
{De=o, Dt=o}
s3
- 28 -
Cours n°3 - Automates de Büchi et propriétés PLTL - Master Informatique
8. Résumé, Conclusion
- Les AB permettent de reconnaître des langages ω-réguliers (séquences infinies),
- Les propriétés PLTL définissent un langage ω-régulier reconnaissable par un AB,
- Toutes les propriétés PLTL sont codables en AB,
Un algorithme de vérification de propriétés PLTL utilise ce codage.
- Le produit synchronisé d'automate et d'automate de Büchi permet de décider si la propriété
modélisée par l'automate de Büchi est satisfaite ou non par l'automate.
s1, sb2
s1, sbo s1, sb1
s3, sb2
s3, sbo {De=l, Dt=o}, De=l so, sb2
- 29 -
Cours n°4 - Automates avec variables de données et abstraction - Master Informatique
→
- par transformation d'état : ss t sc
A B B
cpt := 0
s1 s2 s3
s0
C ; select cpt<3
then cpt := cpt+1 end A ; select cpt<3 then
cpt := cpt+1 end
A, C ; select cpt=3
then cpt := cpt+1 end
s4
B, C ; cpt := 1
- 31 -
Cours n°4 - Automates avec variables de données et abstraction - Master Informatique
C
De:=libre s0 s1 E ; select De=occupé
then De:=libre end
Dt Dt
D ; select De=libre
then De:=occupé end
E ; select De=occupé
then De:=libre end
Mais ceci n'est pas toujours le cas. Par exemple sur l'automate du robot Figure 38, il n'est pas possible
de démontrer que si Dt est occupé, alors fatalement Dt déchargera (Dt=occupé ⇒ ◊(Dt=libre)) sans
démontrer que la transition s1 E , select De=occupé
→ then De:=libre end s1 en peut pas s'appliquer indéfiniment. Par
contre cette propriété se démontre sans difficulté sur l'automate déplié à 4 états (voir Figure 1).
- 32 -
Cours n°4 - Automates avec variables de données et abstraction - Master Informatique
A B B
s0 s1 s2 s3
cpt=0 cpt=0 cpt=0 cpt=0
C A A,C
B,C
B B
s0 A s1 s2 s3
cpt=1 cpt=1 cpt=1 cpt=1
C A A,C
B,C
B B
s0 A s1 s2 s3
cpt=2 cpt=2 cpt=2 cpt=2
C A A,C
B,C
B B s3
s0 A s1 s2
cpt=3 cpt=3 cpt=3 cpt=3
A,C
A,C
B,C
s0
cpt=4
- 33 -
Cours n°4 - Automates avec variables de données et abstraction - Master Informatique
Une SKE avec variables a des transitions étiquetées par un couple (nom d'événement; action gardée).
Exemple 22 – SKE avec variables
La SKE avec variables représentée Figure 38 est la suivante :
def
- S = {s0, s1}, E={C, D},
- R = { s0 E, select De=occupé
→ then De:=libre end s0, s0 C,→
skip
def
s1,
s1 E, select De=occupé
→ then De:=libre end s1, s1 D, select De=libre→then De:=occupé end s0}
def
- λ = {s0 å {Dt=libre}, s1 å {Dt=occupé}}
def def
- X = {De}, Init = Select true then De:=libre end
On notera que la valeur de De a disparu du décor par la fonction λ. On dit que De est une variable de
donnée alors que Dt est une variable de contrôle. La valeur des variables de contrôle est exprimée sur par
l'état par la fonction λ alors que la valeur des variables de données est définie par les actions sur les
transitions.
Définition 19 - Dépliage d’une SKE avec variables :
La SKE dépliée d'une SKE avec variables <S, S0, E, R, λ, X, Init> où X={x1, …, xn} est la SKE <Sd,
S0d, E, Rd, λd> définie ainsi :
def
- Sd = S × Dx1 × … × Dxn ; chaque état est dupliqué pour chaque n-uplet de valeurs possibles des
variables de données
def
- S0d = S0 × {(d1, …, dn)} où {(d1, …, dn) est le n-uplet de valeurs défini par l'action Init (= Select
true then x1, …, xn := d1, …, dn end)
e (s', d' , …, d' ) ∈ R ssi :
- R ⊆ S × E × S est telle que (s, d , …, d ) →
d d d 1 n 1 n d
Exemple :
L'automate déplié du robot représenté Figure 38 est celui de la Figure 1. Sa définition est la suivante :
def def
V = {Dt}, X={De}, DDe = {libre, occupé},
def def
S0d = (s0, libre)} car Init = Select true then De := libre,
def
- Rd = {(s0, occupé) → E {(s , libre), (s , libre) →
C {(s , libre),
0 0 1
(s0, occupé) →C {(s , occupé), {(s , occupé) → E {(s , libre), {(s , libre) →
D {(s , occupé)},
1 1 1 1 0
def
λd = {(s0, occupé) å
{Dt=libre, De=occupé}, (s0, libre) å {Dt=libre, De=libre},
(s1, libre) å {Dt=occupé, De=libre}, (s1, occupé) å {Dt= occupé, De=occupé}}
Le dépliement s'effectue ainsi :
- dupliquer chaque état pour chaque valeur des variables de données,
- déplier les transitions entre occurrences d'état si la garde est vraie,
- éventuellement, supprimer les états qui ne sont pas atteignables.
Exercice 3 :
- 34 -
Cours n°4 - Automates avec variables de données et abstraction - Master Informatique
Effectuer cette opération sur l'automate de la Figure 36 et vérifier que vous obtenez l'automate de la
Figure 39.♦
B,C A
A
A B B
s0 s1 s2 s3
C A
C
A,C
B,C A,C
s4
B,C
. e s' ∈ R) où
∃s1.∃s'1.(s1 ∈ S ∧ s'1 ∈ S ∧ s1 ∈ Cl(s) ∧ s'1 ∈ Cl(s') ∧ s1 → 1
Cl(s)={s2 | s2 ∈ S et s2≡s}.
- λp : Sp → 2APV\X telle que λ p(s) = λ (s)\{x=d | x ∈ X et d ∈ Dx}.♦
Le pliage sur X réalise une fusion des états de S qui sont décorés par le même ensemble de
propositions atomiques sur X. Les transitions entre 2 états de la même classe d'équivalence deviennent
des boucles sur cet état. Les transitions entre 2 états de 2 classes d'équivalence différentes reste une
transition entre les 2 représentants de leur classe.
- 35 -
Cours n°4 - Automates avec variables de données et abstraction - Master Informatique
Sur l'exemple du digicode plié, nous pouvons démontrer la propriété de sûreté suivante : A partir de
l'état s0 si l'utilisateur tape ABB, il atteint l'état s3. Cette propriété vraie sur l'automate de la Figure 40 est
également vraie sur l'automate déplié de la Figure 39.
Pour démontrer une propriété sur un système ayant un trop grand nombre d'état, on la démontre sur
une abstraction qui est obtenue à partir d'un pliage avec un automate avec variable.
Quelles sont les propriétés qu'on peut démontrer ainsi ?
Théorème 1 – Préservation des propriétés de sûreté :
Soit V un ensemble de variables. Soit X un sous-ensemble de V. Soit K une SKE. Soit Kp le pliage de
K sur X. Soit P une propriété de sûreté, alors Kp |= P ⇒ K |= P.♦
Preuve
Un automate plié a plus d'exécutions que l'automate de départ. Si quelque chose de mauvais n'arrive
pas sur un ensemble d'exécutions, il n'arrivera pas sur un sous-ensemble de celui-ci.♦
Par contre une propriété de sûreté violée sur le système abstrait pourrait être satisfaite par le système
déplié.
Une propriété de vivacité telle que, il existe un comportement où l'on reste fatalement dans les états s0,
s1 et s2 est satisfaite par l'abstraction Figure 40 et pas par l'automate déplié Figure 39.
L'abstraction sur un ensemble de variables de contrôle C consiste à retirer du décor des états toutes les
propositions sur les variables de C, fusionner les états dont le décor sur les variables de contrôle restant
est identique et conserver les transitions entre ces états en transformant les transitions entre états
fusionnés en boucle.
Par exemple pour passer de l'automate Figure 39 à celui de la Figure 40, on abstrait la variable de
contrôle cpt :
- on a fusionné les états qui ont la même valeur pour la fraction de séquence correcte tapée par
l'utilisateur,
- on a conservé toutes les transitions entre ces états ; les transitions entre 2 états regroupés
deviennent des boucles sur l'état fusionné.
5. Résumé, conclusion
. L'ensemble d'états d'un automate est défini à partir de toutes les valeurs possibles des variables de
contrôle du système modélisé,
. Considérer certaines variables comme des variables de données engendre une modélisation par un
automate avec variables,
. Un automate avec variables de données a des transitions étiquetées par une action gardée de
modification des variables de données,
. C'est un moyen de réduire l'ensemble d'états considéré,
. Ce pliage est intéressant quand il permet de vérifier des propriétés sur un espace d'état plus petit,
. Ce pliage permet de vérifier uniquement des propriétés de sûreté (quelque chose de mauvais ne se
produit jamais), mais pas des propriétés de vivacité (quelque chose de bon arrive inévitablement),
. Le dépliage d'un automate avec variable engendre un automate.
. Dans ce chapitre, on a défini les fonctions de Dépliage et d'Approximation selon le schéma de la
Figure 41:
L'approximation est définie ainsi :
def def
S = S, S = S , R ⊆ S×E×S telle que : s → a s' ∈R si s a, Select g→then A end s' ∈R et λ def
=λ
p 0p 0 p p p
Abstraction sur X
Cours n°4 - Automates avec variables de données et abstraction - Master Informatique
Dépliage Approximation
- 37 -
Cours n°5 - Automates communicants - Master Informatique
AUTOMATES COMMUNICANTS
1.1. Pourquoi ?
La raison essentielle pour utiliser le concept d'automate communicant est la facilité d'expressivité d'un
produit synchronisé d'automates.
Premièrement, qui dit automates communicants, dit décomposition du modèle en plusieurs automates
pour simplifier la conception.
Deuxièmement qui dit décomposition dit recomposition par produit synchronisé.
Les automates communicants sont un moyen d'expression implicite d'un produit synchronisé.
Exemple
Pour décrire le système du robot de transport de pièces le plus abstrait en deux composants, on peut :
- soit utiliser le produit synchronisé comme l'indique la Figure 42,
- soit utiliser les automates communicants comme l'indique la Figure 43.
s0 s2
De Dt
s1 s3
De Dt
Figure 42. : Automates Evacuateur et Pince
Le robot de la Figure 1 est obtenu en effectuant le produit synchronisé des deux automates de la
Figure 42 ainsi :
Robot||Evacuateur||Pince \ {Evac, Chargt, (DépotPièce, DéChargt)}.
Celui-ci est décrit implicitement par la mise en parallèle des deux automates communicants de la
Figure 43 : Robot||Cevacuateur||CPince.
Les automates communicants utilisent des transitions spéciales d'envoi et de réception de messages
notées ainsi :
- !t : l'envoi du message t aux autres automates,
- ?t : réception du message t.
- 39 -
Cours n°5 - Automates communicants - Master Informatique
s0 s2
De Dt
s1 s3
De Dt
Figure 43 : Automates communicants CEvacuateur et CPince
Le produit synchronisé d'automates communicants est implicitement défini ainsi :
- toute transition !t est synchronisée avec une transition ?t quand les deux existent,
- toutes les autres transitions sont asynchrones.
Var TPG ∈ {T1, T2, AP} Var TPD ∈ {T1, T3, AP} Var TP ∈ {T1, T2, T3, AP}
/*type de pièce gauche ; AP : aucune pièce */
TPD:=AP TP:=AP
TPG:=AP
?D(P) ; Chargt ;
EvacG ; ?D(P) ;
select P ∈{T1, T2} EvacD ; !D(TP) ; Any P Where
TPG:=AP select P ∈{T1, T3}
then TPG:=P TPD:=AP TP:=AP P ∈{T1, T2, T3}
then TPG:=P
end then TP:=P
end
end
1.2. Comment ?
La communication s'effectue de deux manières :
1. par échanges de messages :
. de contrôle pur (cas du robot Figure 43.),
. et de données (voir exemple ci-dessous).
2. par variables partagées (cas des automates avec variables de données).
. exemple de communication de messages de contrôle pur (voir le cas du robot Figure 43),
. exemple de communication de messages de contrôle et de données (voir le cas du robot Figure
44.).
- 40 -
Cours n°5 - Automates communicants - Master Informatique
L'exemple du robot avec 2 évacuateurs et trois types de pièces peut être décrit par des automates
communicants avec variables de données comme l'indiquent les Figure 44 et Figure 45.
Les règles de déchargement sont les suivantes :
- les pièces de type T1 peuvent être déchargées à droite ou à gauche,
- les pièces de type T2 à gauche seulement,
- les pièces de type T3 à droite seulement.
C C C
EG
ED
T1 T2 T3
ED EG ED
(!D, ?D) (!D, ?D) (!D, ?D)
T1 T1 T2 T3
C C C C C
ED
T1 T1 T2 T1 T3 T1 ED
Figure 45 : Automate déplié obtenu par la mise en parallèle des 3 automates de la Figure 44.
La Figure 44 décrit des automates avec variables dont les transitions :
- d'émission de la forme : ! t(x) ; select P(x) then A(x) end
- et de réception de la forme : ? t(y) ; select P'(y) then A'(y) end
se synchronisent ssi P(x) ∧ P'(x) est satisfait.
Lorsque cette transition synchrone est déclenchée la valeur de x est reçue par la variable y et fait l'objet
de l'action A'(x)||A(x).
La mise en parallèle des trois automates de la Figure 44 donne le système décrit par l'automate déplié
de la Figure 45. Celui-ci pourrait être obtenu par un produit synchronisé de trois automates sans variables
et sans échange de données.
On peut voir, malgré la modestie de cet exemple, la puissance d'expression des automates
communicants avec variables par rapport aux automates bruts. La composition parallèle de 3 automates à
2 états donne un automate déplié à 38 états.
- 41 -
Cours n°5 - Automates communicants - Master Informatique
Dans le cas de l'exemple de la Figure 43 les automates se synchronisent sur les transitions (!t, ?t).
Dans ce cas le produit de 2 automates communicants A1 et A2 est un produit synchronisé où Sync est
composé :
- de tous les couples (!t, ?t) pour toute transition !t ∈ Ai et ?t ∈ Aj, i ≠ j
- de toutes les transitions t de A1 et A2 qui ne sont pas des émissions ou des réceptions,
- de toutes les émissions !t pour lesquelles il n'existe pas de réception associée ?t et réciproquement.
T1 T2 T1 T3 T1 T2 T3
!Emettre(x) ?Recevoir(y)
Automate Automate
Emetteur file FIFO Récepteur
- 42 -
Cours n°5 - Automates communicants - Master Informatique
!Recevoir(e)
?Emettre(e) ; select F = φ
ajouter e à la then retirer e du
fin de F début de F
end
?D ; Chargt ;
EvacG ; ?D ;
select TP ∈{T1, T2} EvacD ; !D ; Any P Where
TPG:=AP select TP ∈{T1, T3}
then TPG:=TP TPD:=AP TP:=AP P ∈{T1, T2, T3}
then TPG:=TP
end then TP:=P
end
end
4. Résumé, conclusion
- Les automates communicants sont une facilité d'expression (expression implicite) d'un produit
synchronisé.
- Si les automates communicants sont des automates standards, la communication exprime
uniquement de la synchronisation par rendez-vous.
- 43 -
Cours n°5 - Automates communicants - Master Informatique
- Si les automates communicants sont des automates avec variables, la communication exprime
également des échanges de données.
- Les échanges de données par rendez-vous peuvent être généralisés à des échanges à travers des
files FIFO.
- Les échanges de données peuvent aussi être exprimés par du partage de variables.
- 44 -
Cours n°6 - Automates temporisés - Master Informatique
AUTOMATES TEMPORISES
1. Motivations
Les automates classiques permettent de modéliser l’ordonnancement des actions d’un réseau
d’automates. Par exemple « déclencher l’action blocage après toute détection de code erroné entré sur le
digicode ». Ces ordonnancements ne contiennent pas d’informations quantitatives sur les délais séparant
deux actions. Ainsi il n’est pas possible de modéliser le déclenchement d’une alarme moins de 5 secondes
après la détection d’un problème. Pourtant de telles contraintes, qualifiées de temps réelles, sont souvent
essentielles dans la modélisation des systèmes.
En pratique, cette limitation est contournable en modélisant une horloge globale contrôlant les actions
du réseau d’automates. On ajoute alors aux automates usuels des transitions spéciales représentant des
« tic d’horloge » qui marquent l’écoulement du temps. Le délai séparant 2 actions correspond alors au
nombre de transitions « tic » effectuées entre ces 2 actions. Par exemple l’automate de la Figure 51
modélise un système qui déclenche une alarme lorsque le délai séparant deux actions a successives est
inférieur à 5 secondes.
L’unité de temps est de une seconde. Chaque transition « tic » incrémente le temps global de une
seconde. Les transitions étiquetées par a ne prennent pas de temps, c’est-à-dire que le modèle est fondé
sur cette hypothèse implicite. Le fonctionnement est le suivant :
- une action a déclenche un chronomètre dans l’état (vérif, 0),
- si l’action a suivante arrive avant que le chronomètre ait compté 5 secondes, l’alarme se déclenche,
- sinon elle réinitialise le chronomètre à zéro.
Le type de modélisation de la Figure 51 n’est guère satisfaisant. D’une part, elle impose d’ajouter un
codage extrêmement lourd pour mesurer les délais, ce qui entraîne une perte de lisibilité du modèle et
accroît les risques d’erreurs de modélisation. On peut s’en rendre compte en observant le modèle
beaucoup plus simple de la Figure 50 où le chronomètre est modélisé par une variable h. D’autre part, le
modèle avec temps explicite ne permet pas de distinguer de façon claire les deux types de transitions, les
tics et les actions du système. Ainsi, remplacer un délai séparant deux actions « inférieur à 5 secondes »
par « inférieur à 0,3 seconde » ou « inférieur à 100 secondes » oblige à changer la structure des
automates, changer l’unité de temps et changer des transitions.
var h : chronomètre
5≤h, a, h:=0
_, a, h:=0 h<5, a, _
init verif alarme
- 45 -
Cours n°6 Automates temporisés – Master Informatique
représenté par un entier dans la Figure 51, est un nombre réel. Par ailleurs on notera que les transitions
« tic » restent implicites dans ce modèle.
a alarme
init, verif
3 tic 3 3
tic a tic tic
a alarme
init, verif
4 4 4
tic a
tic tic
- 46 -
Cours n°6 Automates temporisés – Master Informatique
a a
init verif alarme
- 47 -
Cours n°6 Automates temporisés – Master Informatique
def
- S = {init, verif, alarme}
def
- S0 = {init}
def a ,{h} ≤ h , a ,{h} <5, a ,Φ
R = {init true
, → verif, verif 5 → verif, verif h → alarme}.
On notera que dans la notation graphique (voir Figure 50), les ensembles de chronomètres remis à zéro
sont notés explicitement par des affectations (exemple : h := 0) qui représente l’ensemble des horloges
remises à zéro (exemple : {h}).
Remarque
L'AT pourrait être muni d'une application λ pour devenir une SKE temporisée si son utilisation le
nécessite comme c'est le cas du model-checking.
2.1. Chronomètres et transitions
Les chronomètres sont des variables à valeurs réelles positives (ℜ+). Ils progressent tous à la même
vitesse de manière synchrone.
L’étiquette d’une transition est définie par trois éléments :
- une condition d’activation de la transition (∈ C(H)),
- un nom d’action (étiquette usuelle appartenant à A),
- une action de remise à zéro de certains chronomètres (définie par l’ensemble des chronomètres
remis à zéro).
Note : la condition true est représentée par _, l’action représentée par _ ne modifie aucun chronomètre.
On remarque que dans l’exemple présenté section 3, le modèle contient deux chronomètres, celui du
train, noté Ht, et celui de la barrière, noté Hb, qui sont synchronisés, c’est-à-dire qui progressent
simultanément de la même durée.
A cause de l’interprétation des chronomètres dans ℜ+, le nombre d’état d’un AT est infini. Cependant,
il peut se déplier en un automate fini où les états sont un couple état de contrôle, intervalle de temps. La
Figure 53 représente un dépliement de l’AT de la Figure 50 où le chronomètre h est représenté par des
intervalles de temps. Ceci permet d’obtenir un automate à nombre d’état fini.
Les intervalles de temps ont été définis ainsi :
- [0..0] est l’intervalle avant tout écoulement du temps,
- ]0..5[ est l’intervalle pendant lequel une alarme est déclenchée par l’action a,
- [5..∞] est l’intervalle pendant lequel l’action a s’exécute sans déclencher l’alarme.
Avec cet automate, on simule l’écoulement du temps par un choix aléatoire d’une valeur des
chronomètres dans un intervalle des états cible de chaque action «tic». On a déplié l'AT en un automate à
nombre fini d'états en discrétisant le temps à partir des propriétés de l'application. Sur l'exemple, l'alarme
est déclenchable dans l'intervalle [0..5[ et ne l'est plus dans l'intervalle [5..∞]. L'instant 0 est distingué
pour représenter l'état initial.
- 48 -
Cours n°6 Automates temporisés – Master Informatique
Par exemple les couples (init, 10.2), (vérif, 3.5), (vérif, 5.6) et (alarme, 4.2) sont respectivement des
configurations de l’AT de la Figure 50, avec respectivement h = 10.2, h = 3.5, h = 5.6 et h = 4.2.
Un système peut changer de configuration de 2 manières :
tic tic
tic tic
verif, a alarme,
a
]0..5[ ]0..5[
tic
verif, alarme,
[5..∞] [5..∞]
- 49 -
Cours n°6 Automates temporisés – Master Informatique
. les valeurs des chronomètres dans vi+1 sont identiques à celles de vi sauf celle qui appartiennent
à H’ qui sont remis à zéro notée vi+1 := [H']vi.♦
Autrement dit chaque configuration (si, vi) est reliée à la configuration (si+1, vi+1) soit par une transition
d’écoulement du temps, soit par une action de changement d’état de contrôle du système.
Exemple 24 - exécution de l’AT de la Figure 50
Exécution 1 : (init, 0), (verif, 0), (alarme, 0), (alarme, 4.2),…
Exécution 2 : (init, 0), (init, 15.1), (verif, 0), (verif, 5.5), (verif, 0), (verif, 10.3), (verif, 0),…
Exécution 3 : (init, 0), (init, 17.2), (verif, 0), (verif, 4.2), (alarme, 4.2), (alarme, 4.4),…
Arrivée Sortie
voie
_, ?Arrivée, Hb := 0se-baisse
_, !Arrivée, Ht := 0 levée Hb<45
avant _, ?Arrivée,
loin Ht<180 30<Hb ∧ 30<Hb ∧
Hb := 0
Hb<45, _, ?sortie, Hb<45,
30<Ht ∧ 60<Ht ∧ Ht<180, Hb := 0 Baisser, _
Lever, _
Ht<120, Sur,
sur
!Sortie, Ht := 0 se-lève_, ?sortie, Hb := 0
Ht<120
_ Hb<45 baissée
_, ?sortie, _ _, ?Arrivée, _
Train Barrière
Figure 55 : Modélisation temporisée d’un passage à niveau
L’exécution 2 est réalisée par les transitions suivantes de l’automate :
(init, 0) true,a,
→h:=0 (verif, 0) ) 5≤h,20.6
15.1 →a, h:=0
(verif, 0) ) 5≤h,30.9
→a, h:=0
(verif, 0) 5≤h,34.6
→a, h:=0
(alarme, 3.7)…
Dans la littérature [Sch 99], on appelle également trajectoire une exécution. Formellement une
trajectoire est une application de ℜ+ dans l’ensemble des parties de l’ensemble des configurations.Par
exemple dans l’exécution 1 appelée ρ :
def
- ρ(0) = {(init, 0), (verif, 0), (alarme, 0)},
def
- ρ(20.2) = {(alarme, 20.2)}.
- 50 -
Cours n°6 Automates temporisés – Master Informatique
Réseaux d’A.T.
Comme dans le cas des automates non temporisés, il est utile de pouvoir construire un modèle
temporisé de façon composée en combinant plusieurs AT mis en parallèle et synchronisés entre eux.
30<Hb ∧
30<Hb ∧ Hb<45,
Hb<45, Baisser, _
Lever, _
_, Arrivée,
Ht := 0 || avant,
Hb := 0 baissée
Ht<180
60<Ht ∧
Ht <180,
Sur, Ht := 0
- soit s1 c1, →
?a, H1
s’1 ∈ R1 et s2 c2, →
!a, H2
s’2 ∈ R2 et c=c1∧c2 et H’=H1∪H2 et a=( !a, ?a)
- I telle que I(s1, s2) = I(s1) ∧ I(s2).♦
Sémantique
La relation de transition T est obtenue en combinant les transitions d'écoulement du temps ((s, v) succ
→
a
(s, v+d)) et les transitions d'actions ((s, v+d) → (s', v')). d est une durée quelconque qui s'écoule quand le
système est dans l'état s. Toutes les durées inférieures ou égales doivent respecter l'invariant I(s). (i.e.
∀e.(0≤e≤d ⇒ (v+e)╞ I(s)).
- 53 -
Cours n°6 Automates temporisés – Master Informatique
L'action a doit être déclenchable à l'instant v+d, c'est-à-dire que sa garde doit être satisfaite (v+d ╞ g)
et la valuation après l'action a qui est instantanée est v+d dans laquelle on remet à zéro les horloges
conformément à la transition de AT ([λ:=0]v+d).
Notations :
- soit H un ensemble d'horloges,
- soit Ch la plus grande constante sur h dans I et les gardes de l'AT,
- t ∈R+, fr(t) est la partie fractionnaire et pe(t) sa partie entière, t = pe(t)+fr(t).
Définition 27 - relation d'équivalence sur les valuations d'horloge :
v ≅ v' ssi les trois conditions suivantes sont satisfaites :
- ∀x.(x∈H ⇒ ((v(x)≥Cx ∧ v'(x)≥Cx) ∨ (pe(v(x)) = pe(v'(x)))),
- ∀x.∀y.((x∈H ∧ y∈H ∧ v(x)≤Cx ∧ v(y)≤Cy) ⇒ (fr(v(x))≤fr(v(y)) ⇔ (fr(v'(x)≤fr (v'(y))),
- ∀x.((x∈H ∧ v(x)≤Cx) ⇒ (fr(v(x))=0 ⇔ fr(v'(x))=0)).♦
Pour un ensemble d'une seule horloge x, l'ensemble des régions est défini ainsi :
def
R = {x = c | c∈{0,1,…, Cx}} ∪ {c–1<x<c | c∈{1,2,…, Cx }} ∪ {x>Cx}.
Par exemple pour Cx = 5, l'ensemble des régions est représenté sur la Figure 58.
x
0 1 2 3 4 5
Figure 58 : Ensemble des régions pour une horloge x avec Cx = 5
Il est composé de six points 0, 1,…, 5, de cinq segments ouverts ]0..1[, ]1..2[, …, ]4..5[ et du segment
ouvert de fin ]5.. ∞[. Le nombre de région est 2Cx+2 (= 12 sur l'exemple).
Pour un ensemble de 2 horloges x, y l'ensemble des régions peut être représenté dans un espace à deux
dimensions comme le montre la Figure 60. On observe sur cette figure plusieurs sortes de régions : des
points (ro), des segments horizontaux (r1) ou verticaux (r4), des segments de diagonale (r6), des triangles
(r5, r7) et des portions de plan rectangulaire ouvertes (r9, r15). Ces régions sont définies par une contrainte
d'horloge. Par exemple, le premier triangle en bas à gauche est défini par 0 <x ∧ x<y ∧ y <1.
Pour n horloges, le nombre de régions explose. Il est borné par |H|! × 2|H| × Π (2cx+2). Dans le cas de
la Figure 59 on obtient : 2!×22×(2×5+2)×(2×2+2) = 2 × 4 × 12 × 6 = 576. En réalité, il y a (4×12) +
(2×22) = 92 régions.
La décomposition en régions permet de discrétiser l'espace temps en garantissant que tous les points
d'une région ont pour premier successeur, en dehors de la région, un point qui est dans la même région.
La relation successeur est représentée sur la Figure 59 par la flèche diagonale "succ" qui montre que la
région successeur du triangle est le segment vertical, car le temps s'écoule à la même vitesse sur Ht et Hb.
Comme les contraintes d'horloges de l'AT ne contiennent que des constantes entières, on est sûr que la
valeur de vérité d'une contrainte est la même sur tous les points d'une région, donc que les régions sont
bien des classes d'équivalence du point de vue de l'interprétation des contraintes.
Les régions sont des convexes qui ont donc 2 propriétés nécessaires pour que l'abstraction de
l'automate infini par l'automate des régions soit en bi-simulation avec l’automate infini :
- toute région a une région successeur immédiate unique,
- la valeur de la vérité de toute contrainte est identique sur toute la région.
Comme toutes les constantes ne sont pas utilisées dans les contraintes, il est possible de conserver ces
propriétés sur des regroupements de régions contiguës appelées zones. Cette optimisation est réalisée par
- 54 -
Cours n°6 Automates temporisés – Master Informatique
les algorithmes de model-checking TCTL par exemple [ACH 92]. Elle n'est pas décrite dans ce
document.
Hb
r0 (Ht=0) ∧ (Hb=0)
2 ri (Ht=0) ∧ (1<Hb<2)
rj (2<Ht<3) ∧ (2<Hb)
1
Ht
0
1 2 3 4 5 succ
Figure 59 : Ensemble des régions pour 2 horloges Ht et Hb avec CHt=5 et CHb=2
Définition 28 - fonction succ :
Soit r et r' deux régions (classe d'équivalence de R+H). La région r' est la suivante de r, notée succ(r)
= r' ssi :
∀v.(v∈r ⇒ ∃t.(t∈R+ ∧ v+t∈r' ∧ ∀t'.(t'<t ⇒ v+t'∈(r ∪ r'))).♦
Seule la région ouverte sur l'infini (ex : Cx>5 dans la Figure 58 ou CHt>5 ∧ CHb>2 dans la Figure 59)
n'a pas de successeur. Donc la fonction successeur peut être composée de telle sorte que toute région a
une chaîne de successeurs dont le dernier élément est la région ouverte. Par exemple sur la Figure 60, si
on numérote les régions de gauche à droite et de bas en haut, on obtient les chaînes de successeurs
exhibées dans la Figure 61.
y
14 15 16 17
10 11 12 13
4 5 6
x
7 8 9
0 1 2 3
3 9 13 17
4 5 11 15 16 17
10 15 16 17
14 15 16 17
Figure 61 : Tableau des régions successeurs de la Figure 60
Par exemple, la transition (avant, Ht<2) 1<Ht<2,→ts, Ht:=0 (sur, Ht <1) donne lieu aux 4 transitions
étiquetées par ts dans le graphe des régions.
app
ts
exit loin true, app, Ht:=0 avant
true Ht<2
sur sur
[0] ]0..1[
0<Ht<1, exit, _ 1<Ht<2, ts, Ht:=0
sur
Ht<1
- 56 -
Cours n°6 Automates temporisés – Master Informatique
loin loin
[0] ]0..1[
4.3 Définition de l'automate des régions pour faire du model checking TCTL (voir [ACD 93])
def
Pour évaluer une formule temporisée (ex : φ = E◊<1 ϕ qui signifie, il existe un chemin sur lequel
inévitablement en moins d’une unité de temps, on atteint un état satisfaisant ϕ) et garder la trace du temps
écoulé en traversant une séquence d’états, nous introduisons une nouvelle horloge x∉H. Soit H* =
H∪{x} le nouvel ensemble d’horloges. Soit C(φ) la plus grande constante apparaissant dans φ. On étend
la relation d’équivalence sur H → R+ à H* → R+. On note [v]* la classe d’équivalence v par cette relation
d’équivalence.
- 57 -
Cours n°6 Automates temporisés – Master Informatique
Pour déterminer la valeur de vérité d’une formule E◊<c ϕ dans une région v, nous essayons de trouver
une région v’ où ϕ est satisfaite et un chemin de la région v, augmentée avec x=0, vers une région
augmentée de v’ et qui satisfait x<c. La nouvelle horloge x n’est jamais remise à zéro le long de ce
chemin et elle est augmentée des mêmes durées que les autres horloges.
Soit R*, l’ensemble des régions obtenu à partir des horloges d’un automate temporisé auquel on a
ajouté une nouvelle horloge pour évaluer la formule φ.
Définition 30 - notion de région de fin :
On appelle région de fin la région satisfaisant la condition suivante : ∀x.(x∈X* ⇒ x>Cx).
La région de fin est la région ouverte à l’infini sur toutes les horloges. Elle n’a pas de région
successeur. Par exemple la région r17 dans la Figure 60.♦
Définition 31 - région bornée :
On appelle région bornée les régions où au moins l’une des horloges peut prendre une seule valeur,
c’est à dire telle que : ∀v.(v∈r ∧ ∀t.(t∈ R+ ⇒ ¬(v≅v+t))).♦
Par exemple, les régions 0, 1, 2, 3, 4, 8, 10, 11, 12, 13, 14 et 16 sont des régions bornées dans la
Figure 60.
Le graphe des régions d’un automate temporisé est alors défini dans la Définition 32.
Définition 32 - graphe des régions :
def
Soit un automate temporisé AT = <A, H, S, S0, RT, I> et un ensemble de régions R qui définit les
def def def
classes d’équivalence des horloges de AT. L’automate des régions AR = <A∪{τ}, SR= S×R, SR0 =
S0×{ro}, T> où T ( T ⊆ SR×A∪{τ}×SR) est la relation de transition qui contient deux sortes de
transitions :
τ (s, succ(r)) si :
- les transitions d’écoulement du temps (s, r) →
. r n’est pas la région de fin,
. r |= I(s) et succ(r) |= I(s),
a (s’, [λ :=0]r') si :
- les transitions d’actions (s, r) →
. s g,→ a,λ s’ ∈ RT
. r n’est pas une région bornée
. soit r’=r, soit r’=succ(r)
. r’|=g et r’|=I(s) et [λ:=0]r'|=I(s').♦
L’automate des régions permet au temps de s’écouler sans changer d’état de contrôle et sous réserve
de rester dans les contraintes de l’invariant, c’est à dire qu’il existe un successeur qui satisfasse
l’invariant. Les transitions d’actions ne sont pas déclenchables sur les régions bornées afin de modéliser
que, malgré qu’elles soient instantanées, elles ne peuvent s’exécuter indéfiniment sans laisser passer du
temps (contrainte Non Zéno, voir [AL 91]).
- 58 -
Cours n°6 Automates temporisés – Master Informatique
true 1≤Ht<2
4.4.1 Motivations
L'automate des régions peut être optimisé, en pratique, par la construction d’un automate des zones,
une zone étant en première approximation un regroupement de régions contiguës formant un espace
convexe.
La convexité des zones est une propriété nécessaire pour que l’automate des zones simule l’automate
infini. En effet comme le montre la Figure 66a, à partir de n’importe quel point (s, v) d’une zone convexe
z, tous ses successeurs temporels (s′′, v′′) compris entre (s, v) et (s’, v’) qui est le premier point hors de z,
sont dans z. Ce n’est plus vrai si la zone n’est pas convexe. Alors la transition (s, z) → a (s″, z) ne
a (s″, v″) comme on peut le voir sur la Figure 66b.
simulerait pas la transition (s, v) →
exit exit
L τ L τ L τ L τ L τ L
[0] ]0..1[ [1] ]1..2[ [2] ]2.. [
app
A τ A τ A τ A
[0] ]0..1[ [1] ]1..2[
ts
S τ S τ S
[0] ]0..1[ [1]
- 60 -
Cours n°6 Automates temporisés – Master Informatique
y
y
z’ (s’, v’)
(s", v")
z’ (s’, v’) z
z (s, v)
(s", v")
(s, v)
x
(a) (b)
Figure 66 : Zone convexe et non convexe
Les états de l’automate des zones sont des couples (s, z) où s est un nom d’état de l’automate
temporisé et z est une zone d’horloge. Etant donné un état (s, z) et une transition e = (s, g, a, H, s′) d'un
AT. On note Succ(z, e) = z' la zone qui peut être atteinte à partir de z par la transition e. z’ est l’ensemble
des valuations v’ telles que pour un v ∈ z, l’état (s′, ν′) peut être atteint à partir de l’état (s, ν) en laissant
le temps s’écouler et en exécutant la transition e. Succ(z, e) est défini ainsi :
y
z2
z3
z1
z4
z1 ∩z2
x
- 61 -
Cours n°6 Automates temporisés – Master Informatique
s2
y=1, b x<1, c
y>0 ∧ x<1, c
x>0, a, y:=0
s0 s1 s3 x>1, d
y<1, a, y:=0
- 62 -
Cours n°6 Automates temporisés – Master Informatique
s0, r0
a a a
b
b
b
s1, r1 s1, r2 s1, r3 s2, r13
c a a a
d d d
d d d
s3, r7 s3, r9 s3, r13 s3, r17
d d
d
Figure 69 : Automate de régions R(A0)
L’automate des zones est formé ainsi :
- son état initial est (s0, z0),
def
- à partir de la transition t0 = s0 x>0,→
a, y:=0 a
s1 et de z0 on obtient la transition (s0, z0) → (s1, z1) car
Succ(z0, t0) = [y:=0] ((z0∧true)⇑∧ true ∧ x>0)
= [y:=0] ((x-y=0) ∧ true ∧ x>0)
= [y:=0] ((x=y) ∧ x>0) = (y=0 ∧ x>0).
def
- A partir de la transition t1 = s1 y=1,
→ bs2 et de z1 on obtient la transition (s1, z1) →
b
(s2, z5).
def
- A partir de la transition t2 = s2 x<1,
→ cs3 et de z5 on n’obtient pas de transition car Succ(z5, t2)=false
car l’intersection de la garde x<1 avec z5⇑ est vide.
def∧ x<1, c
- A partir de la transition t3 = s1 y>0 → c
s3, on obtient la transition (s1, z1) → (s3, z2).
def
- A partir de la transition t4 = s3 y<1,→
a, y:=0 a
s1 on obtient la transition (s3, z2) → (s1, z1) car Succ(z2, t4)
def def
= [y:=0] z2⇑∧y<1 = y=0 ∧ 0<x ∧ x<2 ⊂ z1.
- A partir de la transition t5 def
= s3 x>1,
→ ds3 on obtient la transition (s3, z2) →
d
(s3, z3).
d
- A partir de la transition t5, on obtient la transition (s3, z3) → (s3, z3).
a def
- A partir de la transition t4 on obtient la transition (s3, z3) → (s1, z4) car Succ(z3, t4) = [y:=0]
def
z3⇑∧y<1 = y=0 ∧ 1<x ∧ x<2 ⊂ z4.
b def
- A partir de la transition t1 on obtient la transition (s1, z4) → (s2, z5) car Succ(z4, t1) = z4⇑∧y=1 def
=
y=1 ∧ x-y>1 ⊂ z5.
b
s0, z0 s2, z5 s1 , z4
b
a a
d
c d
s1, z1 a s3-, 63
z2 - s3 , z3
Cours n°6 Automates temporisés – Master Informatique
z0 z1 z4
- 64 -
Cours n°6 Automates temporisés – Master Informatique
Où :
- Di0 est la borne supérieure de l’horloge xi,
- D0i est la borne inférieure de l’horloge xi,
- Dij est la borne supérieure de la différence xi – xj,
- ∞ dénote l’absence de borne,
- < et ≤ dénotent si la borne est stricte ou non.
def def
Par exemple D21 = (0, <) représente la différence y-x<0 ; D01 = ∞ représente le fait que x n’a pas de
borne inférieure. La représentation d’une zone par une DBM n’est pas unique. Dans notre exemple, il y a
plusieurs contraintes qui sont des conséquences des contraintes données et qui ne sont pas représentées
dans D. Par exemple x>0 est une conséquence de y>0 et x-y>0. Ainsi l’entrée D01 peut être égale à (0, <)
sans changer les valuations d’horloge satisfaisant D. La matrice D’ suivante est équivalente à D :
0 1 2
0 (0, ≤) (0, <) (0, <)
1 (1, <) (0, ≤) (1, <)
2 (1, <) (0, <) (0, ≤)
La borne supérieure de la différence entre x et y, D12 est strictement inférieure à 1 car x<1 et y>0. Des
matrices comme D’ sont canoniques. Le domaine des bornes de D est Z×{<, ≤}∪{∞}. Les matrices
canoniques sont obtenues en observant que la somme des bornes supérieures sur les différences
d’horloges xi-xj et xj-xl est la borne supérieure de xi-x1.
L’addition est définie ainsi : (i, j)+(i’, j’) = (i+i’, j∧j’) où < est représenté par 0 et ≤ par 1.
La comparaison est définie ainsi : (i, j)<∞ et (i, j)<(i’, j’) ssi i<i’ ou i=i’ et j<j’.
Une DBM est satisfiable si elle représente une zone non vide. Elle est non satisfiable si et seulement
s’il existe une séquence 0≤i1, i2, …, ij≤k d’indices tels que Di1i2+Di2i3+ … + Diji1<(0, ≤).
La DBM D est canonique ssi pour tous les indices 0≤i, j, l≤k, Dil≤Dij+Djl. Chaque DBM satisfiable a
une DBM équivalente canonique.
Réalisation des opérations : Soit 2 DBM canoniques D et D’ :
- Egalité : D et D’ sont équivalentes si Dij=D’ij pour tout i et j compris entre 0 et k,
- Intersection, D"=D∩D’ telle que D"ij=min(Dij, D’ij). D" n’est pas en forme canonique. Il est donc
nécessaire de vérifier si elle est satisfiable et dans ce cas la remettre en forme canonique.
- Ecoulement du temps : D⇑ telle que Di0⇑=∞ pour 1≤i≤k, Dij⇑=Dij pour 1≤j≤k et 0≤i≤k. Puis D⇑
doit être mise en forme canonique. Les bornes supérieures de chaque horloge (Di0) sont affectées à
l’infini pour laisser le temps s’écouler.
- Projection : [H :=0]D telle que : Di0 = D0i = (0, ≤) pour tout xi ∈ H, Dij = (0, ≤) pour tout couple xi,
xj ∈ H×H, Dij = D0j et Dji = Dj0 pour tout couple xi ∈ H et xj ∉ H. La matrice résultat doit être mise
sous forme canonique.
Théoriquement, le nombre de zones est exponentiel sur le nombre de régions. Cependant, en pratique,
l’automate des zones a moins de sommets atteignables et ainsi améliore les performances des algorithmes
d’exploration pour résoudre les problèmes d’atteignabilité. En pratique, on constate que le nombre de
zones atteignables est peu sensible aux valeurs des plus grandes constantes alors que le nombre de régions
croît avec ces valeurs de constantes.
- 66 -
Cours n°6 Automates temporisés – Master Informatique
La MITL (Metric Interval Temporal Logic) est une logique temporelle temporisée linéaire (extension
temporisée de la PLTL). Les formules de cette logique définissent des ensembles de comportements
temporisés qui sont des ω-langages réguliers temporisés. Ceux-ci sont reconnus par des automates de
Büchi temporisés. Cette modélisation permet de définir un algorithme de vérification de propriétés MITL
basé sur le produit d’automates temporisés similaire à celui de vérification de propriétés PLTL basé sur le
produit d’automates tel qu’il est défini dans la section 6 du chapitre 3.
Dans la section 4.4.1 nous présentons tout d’abord la syntaxe et la sémantique de la logique
temporisée MITL. Dans la section 4.4.2, nous définissons la notion d’automate de Bűchi temporisé. Dans
la section 4.4.3, nous définissons le produit synchronisé d’automates temporisés utilisé pour effectuer le
model checking MITL. Ensuite, dans la section 4.4.4, nous définissons l’automate des régions associé à
un automate temporisé produit pour effectuer la recherche de cycle de l’algorithme de model checking
MITL. Enfin dans la section 4.4.5 nous présentons l’algorithme de model checking MITL illustré par des
exemples dans les sections 4.4.6 et 4.4.7.
La relation de satisfaction τ= (σ, σi) satisfait φ, notée τ ⊧ φ est définie inductivement ainsi :
- τ ⊧ pa ssi pa ∈ λ(s0)
- τ ⊧ ¬φ ssi τ ⊭ φ
- τ ⊧ φ1 ∨ φ2 ssi τ ⊧ φ1 ou τ ⊧ φ2
- τ ⊧ φ1 UI φ2 ssi ∃t. (t ∈ I ∧ τt ⊧ φ2 ∧ ∀ t'.( t' ∈ ]0, t[ ⇒ τt' ⊧ φ1).♦
La définition de τ ⊧ φ1 UI φ2 signifie qu'il existe un instant t dans l'intervalle I qui satisfait φ2 et que à
tout instant t' précédent, φ1 est satisfaite.
Les opérateurs unaires ◊I– et I– peuvent se redéfinir aussi à partir de l'opérateur UI:
- ◊I φ ≡ true UI φ
- I φ ≡ ¬ ◊I ¬φ.
- 67 -
Cours n°6 Automates temporisés – Master Informatique
Qui signifie qu'à tout moment si un train atteint l'état avant alors il aura atteint l'état loin en au moins
une unité de temps et au plus dix unités de temps.
On notera O≤C pour O[0, C] avec O ∈ [◊, , UI]. On notera O pour O[0, ∝[.
Les comportements qui vérifient ¬M1 sont reconnus par l'ABT de la Figure 72 qui est défini ainsi :
- A = {Et≠avant, Et≠loin, Et=avant, true}, l'alphabet d'étiquetage des transitions est l'ensemble des
propositions d'états sur V appartenant à SPv qui définit les conditions booléennes sur lesquelles
portent les opérateurs temporels de la MITL,
- H ={x}; l'ensemble des horloges est formé d'un chronomètre x qui est déclenché quand la condition
Et=avant se produit et permet de vérifier que pendant 10 unités de temps, la condition Et≠loin est
satisfaite,
def
- S = {b0, b1, b2},
def
- S0 = { b0},
def ≠ avant, {}
- R = {b0 true, Et → b0, ...} ; R ⊆ S × C(H) × SPV × 2H × S,
def
- F = {b2}.
Cet automate spécifie que pour reconnaître la propriété ¬M2 il faut que la condition Et=avant se
produise et que pendant les 10 unités de temps suivantes Et soit différent de loin.
Cet automate de Büchi est déterministe. On notera que la classe des langages ω-réguliers temporisés
n'est pas close pour la négation, c'est-à-dire que le langage complémentaire de celui qui est reconnu par
un ABT non déterministe n'est pas forcément ω-régulier. Par exemple le complémentaire de l'automate de
- 68 -
Cours n°6 Automates temporisés – Master Informatique
la Figure 73 nécessite un nombre infini d'horloges, ce n'est donc pas un ABT. Le langage n'est donc pas
ω-régulier.
- 69 -
Cours n°6 Automates temporisés – Master Informatique
- 70 -
Cours n°6 Automates temporisés – Master Informatique
t 1||u1 =(true,
i, b 0 {Et=loin}|=Et≠ 1, b 0 2, b 0 3, b 0
avant, {})
t4||u3
t1||u2 =(true, {Et=avant}|=
Et=avant, {Ht, x}) t 3||u3 =(x≤10
∧2<Ht<5,
[Et=sur}|=tru
e, {Ht})
i, b 1 1, b 1 2, b 1 3, b 1
- 71 -
Cours n°6 Automates temporisés – Master Informatique
i, b 0, r 0
t1 ||u 1
1, b 0, r 6 1, b 0, r 12 1, b 0, r 17
t1 ||u 2
2, b 1, r 0
t3 ||u 3
3, b 2, r 14
t4 ||u 4
t2 ||u 5 t3 ||u 5
1, b 2, r 14 2, b 2, r 14 3, b 2, r 14
1, b 2, r 15
t2 ||u 5
1, b 2, r 16
1, b 2, r 17
t4 ||u 5
- 72 -
Cours n°6 Automates temporisés – Master Informatique
r15
r5
r4 r6 r8 r9
r7
Ht
r0 r1 r2 r3
0 1
Figure 77 : Régions pour Cx=2 et CHt=1.
L'automate des régions obtenu à partir de la
Figure 75 modifiée par les changements de contraintes d'horloges énoncés ci-dessus est représenté
dans la Figure 76. Cet automate contient le cycle d'acceptation suivant :
(2, b2, r14) →(3, b2, r14) →(1, b2, r17) →(2, b2, r14)
qui vérifie la condition de progressiveness puisqu'il contient un état dont la région est r17 (Cx>1 et
CHt>1). La propriété φ1 est donc violée par ce cycle. Par contre, les autres cycles d’acceptation ne
satisfont pas la condition de progressiveness.
- 73 -
Cours n°6 Automates temporisés – Master Informatique
Figure 77 on voit que dans la chaîne des successeurs de r4 (r4 → r5 → r11 → r17 → r18 → r19 → r23 →
r27), aucune de ces régions ne satisfait la contrainte x>2 ∧ 0<Ht<1. L’automate de la Figure 78 ne contient
pas de cycle, donc la propriété φ2 est satisfaite.
i, b 0, r 0
t1 ||u 1
1, b 0, r 6 1, b 0, r 12 1, b 0, r 19 1, b 0, r 23 1, b 0, r 27
t1 ||u 2
2, b 1, r 0
t3 ||u 3
x>2 ∧ 0<Ht<1
3, b 1, r 4 Stop
non satisfiable
:
Figure 78 : Automates des régions de l’AT de la
Figure 75 avec x>2 ∧ 0<Ht<1.
- 74 -
Cours n°6 Automates temporisés – Master Informatique
Références
[ACD 93] R. Alur, C. Courcoubetis, D. Dill, «Model checking in Dense Real-time», Information
and computation, 104 (1) : 2-34, 1993.
[ACH 92] R. Alur, C. Courcoubetis, N. Halbwachs, D. Dill, "Minimization of timed transitions
systems", Third Conference on Concurrency Theory, LNCS 630, P. 340-354, 1992.
[AD 94] R. Alur et D. Dill, «Model-Checking in Dense Real-time», Information and Computation,
104(1) : 2-34, 1993.
[AD 95] R. Alur, D. Dill, “Automata- Theoretic Verification of Real-Time Systems”, In Formal Methods
For Real Time Computing, Trends in Software Series, John Wiley & Sons Publishers, pp. 55-
82, 1995.
[A 98] R. Alur , «Timed Automata», NATO ASI summer school on Verification of Digital and Hybrid
Systems, 1998.
[AL 91] M. Abadi, L. Lamport, "An old-fashion recipe for real time", In Real Time : Theory in Practice,
LNCS 600, p. 1-27, 1991.
[Bel 98] P. Bellot, J. Sakarovitch, «Logique et automates», Ellipses, 1998.
[Dil 89] D. L. Dill, “Timing assumptions and verification of finite-state concurrent systems”, LNCS n°
407, p. 197-212. Automatic Verification Methods for Finite State Systems, 1989.
[Per 95] D. Perrin, «Les débuts de la théorie des automates», TSI, vol 14, n°4, p. 409-433, 1995.
[CGP 01]E.M. Clarke, O. Grumberg et D.A. Peled, «Model Checking», MIT Press, Cambridge,
Massachusetts, 2001.
[Sch 99] P. Schnoebelen, «Vérification de logiciels ; Techniques et outils du model-checking», Vuibert,
1999.
[Séé 99] P. Seebold, «Théorie des automates - Méthodes et exercices corrigés», Vuibert, 1999.
[Tho 90] W. Thomas, «Automata on infinite words», Handbook of theoretical computer science, vol B,
Elsevier, MIT Press, 1990.
[Var 86] M.-Y. Vardi, «An automata theoretic approach to Linear Temporal Logic».
[HTCS 90] «Formal models and semantics», Vol. B, edited by Jan Van Leeuwen, Elsevier; MIT
Press, 1990.
Index
automate, 8 automate
compteur modulo n, 14 digicode, 24
dispositif d’arrivée, 15 automate
étiqueté, 8 produit synchronisé, 32
évacuateur, 15 automate
exécution complète, 8 produit synchronisé, 34
exécution finie, 7 automate
exécution infinie, 7 avec variables, 35
exemple, 4, 5, 14 automate
trace, 8 abstraction, 39
automate automate
exemple, 13 communicant, 43
automate automate avec variables
digicode, 24 dépliage, 38
- 75 -
Cours n°6 Automates temporisés – Master Informatique
- 76 -