Vous êtes sur la page 1sur 29

M2P GLRE

Gnie Logiciel, logiciels Rpartis et Embarqus

Systmes de transitions
Automates tats finis

Z. Mammeri

1. Comportement de systme
La description de comportement dun systme dsigne lexpression du contrle de lvolution de ce
systme au cours du temps. Par description du comportement, on entend lidentification et spcification :

Des actions (ou oprations) que le systme ralise (ou peut raliser). Usinage de pices,
Ouverture de fichier, Fermeture de vanne et Ecriture dans une base de
donnes sont des exemples dactions.

Des vnements (ou stimuli) qui dclenchent les actions. Dpassement de temprature,
Rception dun message, Fin dusinage et Ouverture de porte dascenseur
sont des exemples dvnements.

De contraintes de temps que le systme devra respecter. Trouver un vol pour une
destination donne en moins de 2 minutes, Usinage de pice pendant 10
secondes et Envoi de message toutes les 100 secondes sont des exemples avec des
contraintes de temps.

Des conditions dactivation (car en plus des vnements, le systme doit parfois respecter
certaines conditions avant de dclencher des actions). Si nombre de pices = 10, fermer
la bote et Sil ny a pas dobstacle devant la cellule de lascenseur,
fermer la porte de lascenseur sont des exemples avec des conditions.

Des situations anormales (ou exceptions) et leurs traitements. Arrt de lascenseur entre
deux tages et Appui de touche sans rsultat sont des exemples de situations
anormales.

Des tats significatifs du systme. Ascenseur larrt, Ascenseur en mouvement,


Porte ouverte et Ascenseur en maintenance sont des exemples dtats significatifs
dun systme Ascenseur.

Le comportement de systme est la dimension la plus cruciale et la plus difficile modliser car :
1) Les situations prvoir peuvent tre infinies.
2) Les concepts utiliser sont nombreux.
3) Il nexiste pas de modle thorique permettant de reprsenter ces concepts pour tous les systmes.
Les systmes de transitions (automates et rseaux de Petri) sont les principaux modles utiliss pour
spcifier le comportement de systmes ractifs et/ou temps rel. Dans ce chapitre, nous nous intressons
aux systmes de transitions. Un systme de transitions est un automate. Le terme systme de transitions
est surtout utilis par ceux qui sintressent la modlisation de systmes. Le terme automate est plus
gnral. Dans ce document, systme de transitions et automate sont interchangeables.
Les automates constituent des techniques de base que linformaticien se doit de connatre. Ils sont utiliss
essentiellement dans la thorie des langages et dans la modlisation et vrification de systmes
communicants (qui englobent les systmes temps rel). La notion dautomates est utilise dans diffrentes
mthodes de conception (UML, SDL et autres), avec des notations graphiques souvent diffrentes dune
mthode lautre.
Les automates offrent des mcanismes qui sont la fois formels et simples comprendre et utiliser
(surtout lorsquils sont utiliss sous forme graphique). Ils servent aussi vrifier formellement
(notamment par les techniques du model checking) des proprits sur les systmes modliss.

Systmes de transitions Z. Mammeri

2. Automates : notions de base et dfinitions


Un automate est une machine ayant un tat courant et dautres tats par lesquels elle est dj passe ou par
lesquels elle passera (ventuellement) dans le futur. Le changement dtat sappelle transition. De
manire simplifie, un systme se trouve dans un tat initial et change dtat en fonction de larrive des
signaux (vnements) qui lui parviennent de son environnement.
Dfinition (dfinition dautomate)

Un automate est un quadruplet A = (S, s0, E, T), o :


S = ensemble dtats.
s0 = ensemble des tats initiaux de lautomate (s0 S).
E = ensemble fini des tiquettes des transitions.
T = ensemble des transitions (T S E S).

Un tat correspond une situation particulire (par exemple, tat Connexion tablie dans un
protocole de communication, ou tat Usinage de pice en cours dans un systme de production).
La notion dtat est une abstraction qui permet de cacher des dtails lors dune modlisation. Comme cest
une abstraction, la notion dtat peut tre utilise pour modliser des aspects de complexit diffrente
selon les besoins de modlisation. Par exemple, Case mmoire gale zro et Duplication de
base de donnes termine sont deux tats de complexit totalement diffrente.
Les littraux associs aux tats pour les identifier peuvent tre des nombres ou des chanes de caractres
(des noms) quelconques, en fonction de la lisibilit souhaite.
Ltiquette associe une transition peut tre compose de trois types dlments (ces lments ne sont
ni ncessaires ni exclusifs) :
-

vnements (ou signaux) qui, une fois reus, permettent le franchissement de transition.

une garde qui dfinit une condition (exprime en gnral sur les variables de lautomate). Le
franchissement de la transition ne peut se faire que si la condition est vraie (cest une condition
ncessaire, mais pas suffisante).

des actions (affectations de variables, envois de signaux, remise zro dune horloge...)
effectues par lautomate avant de changer dtat. Pour avoir des automates abstraits, on utilise le
littral pour dsigner une action invisible ou inobservable (cest dire quil y a une action
note sur ltiquette, mais cette action nest pas observable). Laction est utilise pour traduire le
fait quun systme peut changer spontanment dtat sans raison apparente (observable).

Si ltiquette associe une transition est vide, cela signifie que la transition se fait de manire alatoire
ou de manire implicite connue par celui qui a fait la modlisation. On peut avoir un automate o il ny a
que les tats interconnects avec des transitions sans tiquettes. Dans ce cas, lautomate est utilis pour
avoir une premire abstraction du systme qui sera enrichie (complte) ultrieurement.
Si ltiquette ne contient pas dvnement, cela signifie que le franchissement est alatoire et est li
uniquement la garde si elle existe. Pour des raisons de dterminisme, il faut viter dutiliser des
transitions sans vnements.
Syntaxe pour les tiquettes
Selon la classe dautomate considre (automate simple, automate avec variables, automates avec change
de messages, automate temporis...), la forme des tiquettes change. La syntaxe des tiquettes pour la

Systmes de transitions Z. Mammeri

mme classe dautomates peut changer selon la mthode de modlisation, le langage de programmation,
loutil de preuve ... Pour prsenter nos exemples dans ce document, nous retenons la syntaxe suivante :
<tiquette> ::= [ <garde> : ] [ <Liste dvnements> [ ; <condition sur horloge>] / ] [ <liste dactions> ]
[<x>]

signifie que le champ <x> est peut tre vide. <garde> est une condition exprime laide de
variables de lautomate. <Liste dvnements> contient le nom dun vnement ou de plusieurs
noms dvnements spars par des virgules. <liste dactions> contient le littral , le nom dune
action ou les noms de plusieurs actions spars par des points-virgules. <condition sur horloge> est
utilisable dans les automates temporiss (cf. section 8).
Un automate est souvent reprsent de manire graphique (cest dailleurs lun des atouts des automates)
o les cercles dsignent les tats et les flches les transitions.
Exemple (horloge digitale)
Une horloge digitale (qui indique seulement lheure et la minute) peut tre reprsente par un automate
avec 24*60 tats possibles. Dans lautomate de la figure 1, une transition relie toute paire dtats distants
dune minute. Il ny a pas dtiquette sur les transitions, sous-entendu que le franchissement de transition
se fait chaque minute.

00:00

00:01

23:59

23:58

00:02

Fig. 1. Modle dune horloge digitale

Exemple (compteur modulo 4)


Lautomate de la figure 2 modlise un compteur modulo 4. Les tats de cet automate correspondent aux
quatre valeurs du compteur (0, 1, 2, 3). Les transitions traduisent les oprations inc (incrmentation)
et dec (dcrmentation) du compteur. Formellement, lautomate est dcrit par :
S = {0, 1, 2, 3}
s0 = {0}
E = {inc, dec}
T = {(0, inc, 1), (1, inc, 2), (2, inc, 3), (3, inc, 0), (0, dec, 3),
(1, dec, 0), (2, dec, 1), (3, dec, 2)}

On peut aussi crire T de la manire suivante :


inc
inc
inc
inc
0 1, 1 2 , 2 3 , 3 0 ,
T = dec
dec
dec
dec
0 3 , 1 0 , 2 1, 3 2

Systmes de transitions Z. Mammeri

inc
0

inc

dec

dec

dec

inc

dec
3

2
inc

Fig. 2 Modle dun compteur modulo 4

Dfinition (automate fini, automate infini).

Lorsque lensemble des tats, S, est fini on parle dautomate tats finis et lorsquil est infini on parle
dautomate tats infinis (ou dautomate tats tout simplement).

Par exemple, un automate qui modlise les tats (valeurs) dune variable relle est infini (puisque le
nombre de valeurs est infini). Par contre, lautomate qui modlise ltat dune lampe est fini, si on ne
sintresse quaux tats Lampe allume et Lampe teinte. Dans ce document, nous nous intressons
aux automates tats finis seulement.
Dfinition (automate dterministe)
Un automate est dit dterministe si pour tout couple <tat, tiquette>, le choix de la transition est
unique. Il est indterministe sil existe au moins un tat qui a deux transitions tiquetes de la mme
manire mais qui mnent vers deux tats diffrents.

Les automates des figures 1 et 2 sont dterministes. Par contre, celui de la figure 3 nest pas dterministe,
car la rception dun message, on peut soit traiter le message soit lignorer (le perdre). Lindterminisme
peut tre volontairement choisi pour modliser des aspects indterministes comme la perte de messages
dans un rseau ou la dfaillance de machines dans un systme de production.

Attente
message

Message reu

Traiter
message

Message
reu

Fig. 3 Automate indterministe

Systmes de transitions Z. Mammeri

Dfinition (Structure de Kripke)

Etant donn un ensemble de propositions atomiques et un ensemble E dtiquettes, une structure de


Kripke K est un systme de transitions tiquetes o les tats sont dcors par des ensembles des

propositions de , K= <S, s0, E, T, L> o :


- S est un ensemble dtats,
- s0 est un ensemble dtats initiaux,
- E est un ensemble fini dtiquettes,
- T est un ensemble de transitions,

- L est une application qui associe chaque tat lensemble des proprits de vrifies dans cet
tat.

Cest gnralement pour pouvoir prouver des proprits sur un systme que lon rajoute le cinquime
lment lautomate, celui qui associe tout tat de S, lensemble des proprits lmentaires vrifies
dans cet tat. Cet lment nest pas ncessaire pour utiliser les automates. Si toutes (ou certaines)
proprits lies aux tats sont connues lavance, il est prfrable de les noter sur lautomate, cela
simplifiera la preuve de certaines proprits sur lautomate.

Dfinition (chemin dexcution ou trace)


Un chemin dun automate A est une suite , finie ou infinie, de transitions (si, ei, si) de A qui senchanent.
e1

e2

e3

e4

On note souvent une telle chane sous la forme : s 1 s 2 s 3 s 4 ... La longueur dun chemin,

dsigne le nombre de transitions qui le composent. Chemin et trace sont des termes interchangeables.
inc

inc

dec

inc

Par exemple, 0 1 2 1 2 est un chemin de lautomate de la figure 2.

Dfinition (excution)

Une excution partielle dun automate est un chemin partant de ltat initial de cet automate. Une
excution complte est une excution que lon ne peut plus prolonger (car le systme a atteint un tat de
blocage ou bien lexcution est infinie).

Dfinition (arbre dexcution)


Un arbre dexcution est lensemble des excutions possibles dcrivant la dynamique dun systme.
Larbre dexcution peut tre infini.

Par exemple, les automates correspondant lhorloge et compteur donns prcdemment ont des arbres
dexcution infinis.

Dfinition (atteignabilit)
Un tat est dit atteignable (ou accessible) sil apparat au moins une fois dans larbre dexcution de
lautomate.

La notion datteignabilit est importante ; elle est souvent utilise pour dmonter des proprits du
systme. En effet, le passage par un tat (donc cet tat est atteignable) peut correspondre une proprit
particulire du systme ou bien ce passage est ncessaire pour que la proprit soit vrifie. Par exemple,
si dans un automate correspondant la commande dune porte, il y a un tat Porte_Ferme, dmonter la
proprit La porte peut tre ferme revient dmontrer que ltat Porte_ferme est
atteignable.

Systmes de transitions Z. Mammeri

3. -automates
Un langage formel peut tre dfini comme tat lensemble fini des mots obtenus partir dun alphabet
fini . Un -langage est un ensemble infini de mots, cet ensemble est souvent not .
Au sens de la thorie des langages, les traces dun automate sont des mots dun langage form partir de
lalphabet des actions. Par exemple, le mot dfini par : = 123... sur lalphabet des actions revient
exprimer une excution commenant ltat s0 et changeant dtat suite lexcution des actions 1, 2,
1

3 ... : s 0 s 1 s 2 ...

Un -automate est un automate tats finis non dterministe permettant de reconnatre un -langage,
cest--dire permettant daccepter des chanes de mots infinies. Dans le cas de ltude du comportement de
systmes, les mots constituent une suite dactions du systme. Ltude du comportement dun systme
revient tudier les chanes acceptes par lautomate modlisant le systme, ce qui revient, en dautres
termes, tudier les suites dactions engendres par les changements dtats du systme. Parmi les classes
dautomates les plus tudies, il y a les automates de Bchi et les automates de Muller.
Dfinition (automate de Bchi)

Un automate de Bchi <S, s0, E, T> est un automate ayant un sous-ensemble dtats, F (F S), dits tats
dacceptation tels que lexcution partir dun tat de F se rpte indfiniment.

La figure 4 montre un exemple dautomate de Bchi permettant lacceptation du langage (a+b)*a. Les
automates de Bchi permettent de coder les langages -rguliers. Lintrt dutiliser les automates de
Bchi est que la vrification de proprits sur les systmes se ramne la preuve de linclusion de
langages et le problme dinclusion de langages -rguliers est connu comme dcidable.
a,b

a
s

Fig. 4. Exemple dautomate de Bchi acceptant le langage (a+b)*a


Dfinition (automate de Muller)

Un automate de Muller <S, s0, E, T> est un automate ayant une famille dtats, F (F 2S), dite famille
dacceptation, telle que dans toute excution infinie, lensemble dtats qui se rptent indfiniment
appartient F.

La figure 5 donne un exemple dautomate de Muller qui reconnat le mme langage que celui reconnu par
lautomate de Bchi de la figure 4. Dans cet automate, la famille dacceptation est F = {{s}}. Il faut
noter que les automates de Muller sont des cas particuliers des automates de Bchi, mais ils sont
dterministes. Les automates dterministes de Muller sont de bons candidats pour modliser les systmes
et des algorithmes efficaces de calcul dinclusion de langages existent.
b

a
s

s
b

Fig. 5. Exemple dautomate de Muller acceptant le langage (a+b)*a

Systmes de transitions Z. Mammeri

4. Automates avec variables


Lorsquon modlise des systmes rels, il est souvent utile (voire ncessaire) de manipuler des variables
dtat. Par exemple, dans un automate reprsentant un protocole de communication, il est souvent
ncessaire de compter le nombre de paquets reus, le nombre derreurs de transmission, etc. Dans un
automate, les variables peuvent tre manipules soit dans les affectations soit sous forme de conditions
dans les gardes. Lutilisation des variables permet de rduire le nombre dtats. Par exemple, on lieu
davoir un automate dans lequel il y a un tat pour chaque valeur dun compteur, on peut utiliser une
variable qui contient la valeur du compteur. On peut ainsi, passer dun automate avec un nombre infini
dtats (si le compteur est infini) un automate utilisant une variable.
Dfinition (automates avec variables)

Un automate avec variables peut tre dfini par un 6-tuplet <S, s0, E, T, X, I> :
- S est un ensemble dtats,
- s0 est un ensemble dtats initiaux,
- E est un ensemble fini dtiquettes,
- T est un ensemble de transitions,
- X est un ensemble de variables (v1, ..., vn). Chaque variable vi peut prendre des valeurs appartenant
un domaine de dfinition Dvi,
- I est lensemble des initialisations de variables.

Exemple (digicode)
Nous considrons ici un exemple frquemment utilis dans la littrature sur les automates, celui du
digicode utilis pour le dverrouillage de porte. Le digicode modlis ici est relativement simple pour
minimiser le nombre dtats et transitions. Il fonctionne de la manire suivante : le clavier a trois touches
A, B et C. La porte est dverrouille ds que lutilisateur a tap la combinaison ABA (qui est le code
mmoris par le systme et on suppose quon ne change jamais ce code). On accepte que lutilisateur
puisse se tromper. Si la touche tape ne correspond pas la touche attendue par le systme, le nombre
derreurs et incrment de 1 et lutilisateur doit recommencer le code depuis le dbut. Au bout de 4
erreurs, le systme passe dans un tat derreur (par exemple, il peut dclencher une alarme dans cet tat).
Par exemple, si lutilisateur tape ABA, AAABA, BABA, BBABA, CAABA la porte est dverrouille.
Nous donnons un premier automate (Fig. 6) avec une variable pour dcrire le systme Digicode. La
variable Cpt compte le nombre derreurs et elle est utilise comme garde dans les transitions. Ltat
Si = 0 (i=0,...,3) indique que dans cet tat i bonnes touches ont t tapes. Dans ltat S3, la porte
est dverrouille. Quand Cpt = 3 et quil y a une nouvelle erreur, le systme passe dans ltat derreur SR.
Ensuite, nous appliquons lopration de dpliage cet automate pour obtenir lautomate de la figure 7. On
remarque les tats introduits. Pour chaque valeur du compteur de 0 3, on a dupliqu les tats de
lautomate initial. Ensuite, les transitions ont t dtermines. Il ny a plus daffectations de valeurs aux
variables (car les nouveaux tats contiennent les valeurs) et les gardes ont t supprimes.

Systmes de transitions Z. Mammeri

Cpt<3 :
B, C /
Cpt:=Cpt+1

Cpt:=0

S0

Cpt=3 :
B, C /
Cpt:=Cpt+1

Cpt<3 :
C /
Cpt:=Cpt+1

Cpt<3 :
A /
Cpt:=Cpt+1

S1

Cpt<3 :
B, C /
Cpt:=Cpt+1

Cpt=3 :
A, C /
Cpt:= Cpt+1

S2

S3

Cpt=3 :
B, C /
Cpt:=Cpt+1

SR

Fig. 6. Automate Digicode avec une variable et transitions gardes

Pour appliquer des mthodes de vrification sur les automates avec variables, il est souvent ncessaire de
dplier ces automates. Lopration de dpliage dun automate consiste introduire des tats pour mieux
identifier les valeurs de variables. Plus concrtement, le dpliage dun automate A consiste en :
-

la duplication dtats : pour chaque tat de A, introduire autant dtats quil y a de valeurs des
variables utilises dans A ;

la dtermination des transitions : 1) dplier les transitions entre les occurrences dtat si la garde
est vraie, 2) les transitions ne sont plus gardes car on connat explicitement les valeurs des
variables dans chaque tat dans le nouvel automate, 3) supprimer les affectations des variables, car
les tats contiennent directement les valeurs de variables ;

la suppression dtats : ventuellement supprimer des tats qui ne sont pas atteignables.

Dfinition (dpliage dautomate)


Soit un automate A = < S, s0, E, T, X, I > et Dv1, ..., Dvn les domaines de dfinitions des variables de X
(v1,..., vn). Lautomate Ad = < Sd, s0d, Ed, Td > sans variable, obtenu par dpliage de lautomate A est dfini
-

par :
Sd = S x Dv1 x .... Dvn
s0d = s0 x d1 x ...x dn o d1, ..., dn constituent les valeurs dinitialisation dfinies dans I
Ed est obtenu partir de E en supprimant les gardes et les affectations de variables
Td est lensemble des transitions obtenu aprs modifications

Systmes de transitions Z. Mammeri

S0

S1

Cpt=0

Cpt=0
C

S2

S2

S2

S2

Cpt=0

S3

Cpt=0

B,C

B,C

S0

S1

Cpt=1

Cpt=1

Cpt=1

S3

Cpt=1

B,C
B,C

S0

S1

Cpt=2

Cpt=2

Cpt=2

S3

Cpt=2

B,C
B,C

S0

Cpt=3

S1

Cpt=3

B,C

A,C

Cpt=3

S3

Cpt=3

B,C

SR

Fig. 7. Automate Digicode avec dpliage de lautomate de la figure 6

5. Exemple de modlisation dun terminal bancaire simplifi


Pour illustrer les dfinitions prcdentes, prenons un systme un peu plus complexe que ceux vus
prcdemment. Nous considrons le cas dun systme pour modliser un terminal bancaire servant
effectuer des oprations (consultation de compte, ...). Pour simplifier le systme modliser (en particulier
pour rduire le nombre dtats et transitions), nous limitons le fonctionnement du terminal de la manire
suivante :
1) Le terminal dispose dun cran et dun clavier ayant les touches : chiffres 0 9, Dmarrage,
Correction, Validation, Suite et Annulation.
2) A linitialisation ou lorsque le terminal nest pas utilis, lcran est en mode veille (pour
minimiser la consommation dnergie).
3) Le client est suppos respecter les rgles dutilisation du terminal (par exemple, nous considrons,
pour des raisons de simplification de lautomate, que lutilisateur ne va pas taper plus de 4 chiffres
pour le code secret, quil ne va pas taper sur une touche alors que le menu qui lui est propos ne
contient pas cette touche).
4) Lorsquun client arrive, il doit appuyer sur la touche Dmarrage. Ensuite le terminal lui affiche le
menu Insertion carte et attend lintroduction de la carte. Tant quaucune carte nest insre
dans le lecteur, le systme ne ragit pas mme si des touches sont tapes.

Systmes de transitions Z. Mammeri

5)

Le client insre sa carte, ensuite le systme lui affiche le menu Saisie de code (contenant un
message de bienvenue et dinvitation saisir un code secret de 4 chiffres).

6) Le client saisit un code de 4 chiffres et appuie sur la touche Validation. Tant que le client na
pas appuy sur la touche Validation, le code est suppos incomplet et le systme ne le vrifie
pas. Si le client se trompe, il peut revenir en arrire en tapant Correction pour corriger le
dernier chiffre saisi. Chaque fois que la touche Correction est appuye le dernier chiffre est
effac. Le systme ne ragit pas, si le client appuie sur la touche Correction alors quil ny a
pas de chiffres corriger.
7) Si le code nest pas correct, un menu Code erron Retapez le code est affich et le client doit
retaper son code nouveau. Le client a droit 3 tentatives seulement. Aprs trois checs, un
message Carte bloque adressez-vous votre agence , la carte est bloque dans le terminal et
un retour la phase de veille est effectu.
8) Si le code est correct, un menu Oprations saffiche. Ce menu contient 1 : Soldes et
oprations ; 2 : commande dun chquier . Si le client tape 1, il y a affichage du solde de son
compte et des oprations effectues sur le compte. Si le client tape 2, le systme envoie lagence
un ordre de commande de chquier. Aprs chaque opration, le client doit taper la touche Suite
pour avoir le reste du menu Oprations . Si le client a utilis les deux oprations 1 et 2, le
systme affiche les messages Fin - Au revoir et Retirez votre carte . Lorsque la carte a t
retire, le systme revient la phase de veille. Lors de la saisie des oprations, seuls les nombres
indiquant les oprations valides sont accepts, les autres caractres (sauf Annulation) nont
aucun effet sur le systme et ne sont pas considrs dans lautomate ci-dessus.
9) A nimporte quel moment (pendant la saisie du code secret ou des oprations), lappui sur la
touche Annulation, conduit la restitution de la carte et au retour la phase de veille.
Lautomate obtenu est dcrit dans la figure 8 :
-

Etat Veille : le systme attend que la touche Dmarrage soit tape. Une fois cette touche
tape, laction Afficher Insertion carte est excute et le systme passe ltat
Attente carte. Dans ltat Veille, seul lvnement correspondant la touche Dmarrage
est pris en compte.

Etat Attente carte : le systme attend le signal Carte introduite qui indique quune carte
est prte dans le lecteur. Une fois ce signal reu, le systme excute quatre actions : il affiche le
message Saisie de code , il initialise la variable Essais 1 (cette variable sert
compter le nombre de tentatives de saisie du code), il initialise la variable NbChiffres 0 (cette
variable sert compter le nombre de chiffres saisis) et initialise la variable Code vide (cette
variable sert stocker les chiffres du code pendant leur saisie). Aprs ces quatre actions, le
systme passe ltat Saisie code.

Etat Saisie code : cinq transitions sont possibles (les autres situations ne sont pas traites par le
systme) selon la touche tape et les valeurs des variables de lautomate:
o

Un chiffre vient dtre tap et le nombre de chiffres dj taps est infrieur 3, alors on
incrmente de 1 la variable NbChiffres et on concatne le chiffre tap avec contenu de
la variable Code. Ensuite, on reste dans ltat Saisie code.

Un chiffre vient dtre tap et le nombre de chiffres dj taps est gal 3, alors on
concatne le chiffre tap avec contenu de la variable Code. Ensuite, on passe dans ltat
Attente validation.

Systmes de transitions Z. Mammeri

10

La touche Correction vient tre tape et NbChiffres est suprieur 0, on


dcrmente de 1 la variable NbChiffres et on supprime le dernier chiffre saisi de la
variable Code. Ensuite, on reste dans ltat Saisie code.

La touche Correction vient tre tape et la variable NbChiffres est gal 0, on


reste dans ltat Saisie code sans excuter daction.

La touche Annulation vient tre tape, on affiche les menus Annulation - Au revoir
et Retirez votre carte et on passe ltat Attente retrait carte.

Etat Attente validation : trois transitions sont possibles


o

La touche Validation vient dtre tape, le systme met une demande de vrification
du code et attend la rponse (cette rponse peut tre gnre en interne par le terminal ou
par un autre systme externe) et passe ltat Vrification code.

La touche Correction vient dtre tape, on dcrmente de 1 la variable NbChiffres


et on supprime le dernier chiffre saisi de la variable Code. Ensuite, on reste dans ltat
Saisie code.

La touche Annulation vient tre tape, on affiche les menus Annulation - Au revoir
et Retirez votre carte et on passe ltat Attente retrait carte..

Etat Vrification code : trois transitions sont possibles (ici que le client ne peut plus annuler)
o

Rception dun signal Code correct, on affiche le menu indiquant les deux oprations
possibles (consultation de compte et commande de chquier). On met faux les deux
boolens Op1 et Op2 qui indiquent que ces deux oprations 1 et 2 nont pas t effectues
par le client. Ensuite on passe ltat Attente opration.

Rception dun signal Code incorrect et la variable Essais est infrieure 3, on


incrmente de 1 la variable Essais, on remet 0 la variable NbChiffres et vide la
variable Code et on affiche le message Code erron Retapez le code . Ensuite on
passe ltat Saisie code.

Rception dun signal Code incorrect et la variable Essais est gale 3, on affiche
le message Carte bloque - Adressez-vous votre agence et on excute lopration
Blocage carte par le terminal. On passe ensuite ltat Veille.

Etat Attente opration : trois transitions sont possibles :


o

Le chiffre 1 vient dtre tap, on met le boolen Op1 vrai, on affiche le menu Solde et
les oprations . On passe ensuite dans ltat Attente fin opration 1.

Le chiffre 2 vient dtre tap, on met le boolen Op2 vrai, on envoie lagence un ordre
de commande de chquier. On passe ensuite dans ltat Attente fin opration 2.

La touche Annulation vient tre tape, on affiche les menus Annulation - Au revoir
et Retirez votre carte et on passe ltat Attente retrait carte.

Etat Attente fin opration 1: trois transitions sont possibles :


o

La touche Suite vient dtre tape et Op2 est gal faux, on affiche le menu
Commande de chquier et on passe dans ltat Attente opration.

La touche Suite vient dtre tape et Op2 est gal vrai, on affiche les menus Fin au
revoir et Retirez votre carte et on passe dans ltat Attente retrait carte.

Systmes de transitions Z. Mammeri

11

o
-

La touche Annulation vient tre tape, on affiche les menus Annulation - Au revoir
et Retirez votre carte et on passe ltat Attente retrait carte.

Etat Attente fin opration 2: trois transitions sont possibles :


o

La touche Suite vient dtre tape et Op1 est gal faux, on affiche le menu de Solde et
oprations et on passe dans ltat Attente opration.

La touche Suite vient dtre tape et Op1 est gal vrai, on affiche Fin au revoir et
Retirez votre carte et on passe dans ltat Attente retrait carte.

La touche Annulation vient tre tape, on affiche les menus Annulation - Au revoir
et Retirez votre carte et on passe ltat Attente retrait carte.

Etat Attente retrait carte : une seule transition est possible :


o

Un signal Carte retire est reu, on passe dans ltat Veille sans excution daction.

Systmes de transitions Z. Mammeri

12

Veille

Annulation tape /
Afficher Annulation Au revoir ;
Afficher Retirez votre carte

Dmarrage tap /
Afficher Insertion carte

NbChiffres=0 : Correction tape

Saisie
code

NbChiffres > 0 : Correction tape /


NbChiffres = NbChiffres 1 ;
Code = Code Chiffre saisi

Attente
carte

Carte introduite /
Afficher Saisissez votre code
Essais = 1 ;
NbChiffres = 0 ;
Code =
NbChiffres < 3 : Chiffre tap /
NbChiffres = NbChiffres + 1 ;
Code = Code + Chiffre saisi

NbChiffres = 3 : Chiffre tap /


Code = Code + Chiffre saisi
Correction tape /
NbChiffres = NbChiffres 1 ;
Code = Code Chiffre saisi

Annulation tape /
Afficher Annulation Au revoir ;
Afficher Retirez votre carte

Attente
validation

Essais < 3 : Code incorrect /


Essais ++ ;
NbChiffres = 0 ; Code = ;
Afficher Code erron Retapez le code

Validation tape /
Emission de demande de vrification de code

Annulation tape /
Afficher Annulation Au revoir ;
Afficher retirez votre carte

Vrification
code

Code correct /
Afficher Oprations ;
Op1 = faux ; Op2 = faux

Annulation tape /
Afficher Annulation Au revoir ;
Afficher Retirez votre carte

Attente
fin
opration 2

Chiffre 2 tap /
Op2 = vrai ;
Envoi Commande de chquier

Essais = 3 : Code incorrect /


Afficher Carte bloque Adressez-vous votre
agence ; Blocage carte

Attente
Opration

Op1 = faux : Suite tape /


Affichage Solde et oprations

Annulation tape /
Afficher Annulation Au revoir ;
Afficher Retirez votre carte

Chiffre 1 tap /
Op1 = vrai ;
Afficher Solde et oprations

Attente
fin
opration 1

Op2 = faux : Suite tape /


Afficher Commande de chquier

Op1 = vrai : Suite tape /


Afficher Fin Au revoir ;
Afficher Retirez votre carte

Op2 = vrai : Suite tape /


Afficher Fin Au revoir ;
Afficher Retirez votre carte

Attente
retrait de
carte

Carte retire

Fig. 8. Exemple de modlisation dun terminal bancaire

Systmes de transitions Z. Mammeri

13

6. Automates communicants
Les automates communicants constituent un cas particulier dautomates synchroniss qui est trs rpandu
dans les systmes informatiques, en particulier les systmes parallles et/ou distribus dans lesquels on
modlise des modules ou processus qui schangent des messages via un rseau ou une mmoire partage.
Il y a donc des automates communiquant par messages et/ou par mmoire partage.

Communication par messages


Dans le cas de communication par messages, des tiquettes sont utilises pour marquer lenvoi
(gnralement not par !message) et rception de message (gnralement note par ?message). Le
message peut tre un nom dun signal ayant un sens particulier (on parle dans ce cas de message de
contrle pur) ou un nom de message avec des paramtres (on parle dans ce cas de message des donnes).
La figure 9 donne un exemple dautomates communicants. Le premier automate, appel Source, effectue
un calcul de valeur de la variable V, ensuite il envoie un message de donne (appel Mess_Val) contenant
la valeur de V. Pour chaque message envoy, la Source attend un message dacquittement (appel Ack)
de la destination. Le deuxime automate, appel Destination, reoit chaque message de donnes,
envoie un acquittement vers la Source et traite ensuite le message. On suppose quil ny a pas de perte de
message. On notera que Mess_Val est un message de donnes alors que Ack est un message de contrle
pur. Les transitions tiquetes !Mess_Val(V) de Source et ?Mess_Val(X) de Destination sont
synchronises. Il en est de mme pour les transitions tiquetes !Ack de Destination et ?Ack de
Source. Par contre, les transitions tiquetes FinCalcul de Source et FinTraitement de
Destination ne sont pas synchronises, elles sont excutes indpendamment lune de lautre.

V:=2

Calcul

FinCalcul

Prepare
Emission

!Mess Val(V)

Attente
Ack

?Ack

a) Automate du systme Source

Attente
message

?Mess Val(X)

Prepare
Ack

!Ack

Traitement FinTraitement

b) Automate du systme Destination


Fig. 9. Exemple de deux automates communicant pas messages
Lorsquon fait le produit de deux automates communicants A et A, alors lensemble Sync (ensemble des
tiquettes de transitions) de lautomate produit est compos de :
- tous les couples (!t, ?t) o !t A et ?t A ou inversement,
- toutes les transitions de A et A qui ne sont pas des missions et rceptions de messages,

Systmes de transitions Z. Mammeri

14

toutes les missions !t appartenant un automate qui nont pas de rceptions associes dans
lautre automate,
toutes les rceptions ?t appartenant un automate qui nont pas dmissions associes dans lautre
automate.

Le produit synchronis de deux automates communicants A et A est implicitement dfini par :


- toute transition !t de A (resp. A) est synchronise avec une transition ?t de A (resp. A),
- toutes les autres transitions sont asynchrones.

Communication par file FIFO


Quelquefois, les donnes sont changes de manire asynchrone entre la source et destination finale de ces
donnes. Pour cela on peut utiliser une file dattente FIFO pour garantir lasynchronisme. En termes
dautomates, la file est modlise par un automate qui gre une variable de type file dattente comme le
dcrit lautomate de la figure 10. Lmetteur des donnes est synchronis avec la file FIFO qui elle-mme
est synchronise avec le rcepteur des donnes. Lmetteur et le rcepteur des donnes sont asynchrones.
F:= FileVide

?Message(X) ;
Enfiler(F,X)

S0

NonVide(F) :
x:=Tete(F) ;
!Message(X)

Fig. 10. Automate modlisant une file FIFO

Communication par variables partages


Dans le cas de communication par variables partages, une mme variable peut apparatre dans deux ou
plusieurs automates. Les valeurs mmorises dans la variable partage permettent une forme de
synchronisation entre automates. Par exemple, un automate peut modifier la valeur dune variable et
dautres automates peuvent la lire. Avec ce mcanisme, se pose videmment le problme daccs
cohrents aux variables partages lorsque plusieurs automates peuvent modifier une mme variable. Ce
problme peut tre rgl laide de messages de synchronisation (dexclusion mutuelle).

Systmes de transitions Z. Mammeri

15

7. Automates temporiss
7.1. Concepts et dfinitions
Les automates (classiques) que nous avons vus prcdemment permettent de modliser des systmes
vnements discrets sans tenir compte de lcoulement du temps entre les vnements. Dans ces
automates, on ne peut pas spcifier le temps pris par une action ou le temps sparant larrive dun
vnement et la fin de laction qui ragit cet vnement. Pourtant dans certains systmes (dits temps
rel) lutilit des actions dpend de lcoulement du temps. Dans de tels systmes, un rsultat juste du
point de vue calculatoire obtenu hors dlai est un rsultat faux. Diffrentes propositions ont t faites pour
rpondre de ce besoin de prise en compte des contraintes de temps : rseaux de Petri temporiss,
automates dentre/sortie temporiss, Modecharts et les automates temporiss. Les automates temporiss
ont t proposs par Alur et Dill en 1994 constituent la classe dautomates la plus utilise pour
lexpression des contraintes de temps. Dans ce document, nous nous intressons uniquement cette classe
dautomates.
Temps discret ou continu. Dans les automates temporiss, on fait appel au temps discret ou au temps
continu. Lorsquon utilise le temps discret, les valeurs du temps sont des entiers non ngatifs. On
introduit un vnement spcial, tick, qui indique lcoulement du temps dune unit de temps choisie (la
milliseconde ou microseconde par exemple). Entre deux ticks, le systme nest pas observable.
Gnralement, la modlisation se fait laide de temps discret. Lautre modle de temps, appel temps
dense (continu), associe des nombres rels non-ngatifs aux variables reprsentant le temps. Il est plus
difficile grer, car lespace des valeurs dhorloges devient infini.

Dans un automate temporis, le tir de transition dpend ventuellement de lcoulement du temps. Pour
pouvoir spcifier des conditions sur lcoulement du temps, on utilise des horloges. Une horloge peut tre
remise zro instantanment dans une transition. La lecture dune horloge tout instant, fournit la
quantit de temps rel qui sest coule depuis la dernire remise zro de cette horloge.

Dfinition
Un automate temporis est un automate dot dune horloge (ou de plusieurs horloges) qui compte(nt) le
temps qui scoule. Les horloges peuvent tre remises zro indpendamment les unes des autres. Le tir
des transitions tient compte des valeurs des horloges.

Dfinition (contraintes dhorloges)


Toute contrainte sur les horloges dun ensemble dhorloges X est dfinie par :
::= x c | x c | | .
O x (x X) est une variable de type horloge et c une constante.

Dfinition (squence temporise)


Une squence de transitions obtenue suite lexcution dun automate temporis est dite squence
temporise ; elle est de la forme (, ) = (1, 1)(2, 2)(3, 3)... o chaque action i a lieu linstant
i (i i+1 pour tout i 1). Lexcution r correspond au mot (, ) est dfinie par :

r : s 0 , 0

s 1 , 1

s 2 , 2

...

telle que :

i(x) dsigne la valeur de lhorloge x au moment du tir de la ime transition et i dsigne le vecteur des
valeurs de toutes les horloges.
Initialisation : s0 S et 0(x) = 0 pour tout x appartenant lensemble des horloges
Toutes les transitions satisfont les contraintes sur les horloges au moment de leur tir.

Systmes de transitions Z. Mammeri

16

Exemple
Considrons lautomate temporis de la figure 11. Soit la squence temporise (ou mot temporis)
suivante : = (a, 2) (b, 2.7) (c, 2.8) (d, 5) ...
La squence signifie que laction a a lieu linstant t=2, laction b t=2.7, laction c t=2.8,
laction d t=5, ... Notez que t correspond au temps rel et ne peut pas tre remis zro.
Le vecteur a deux composantes [x, y] correspondant aux horloges x et y. Lexcution correspondant
la squence est la suivante :

s ,[ 0 ,2 ] s
1

2 ,0.7 ,0

s ,0.8 ,0.1 s ,3,2.3 ...


0

2.8

2.7

r : s0 , [ 0 ,0 ]

A linitialisation, dans ltat s0, les deux horloges sont 0, 0= [0,0].


A linstant t=2, on excute laction a, on remet lhorloge x zro et ensuite on entre dans ltat
s1. Le vecteur 1 devient gal [0, 2] puisque lhorloge x a t remise zro et lhorloge y a
poursuivi sa progression.
A linstant t=2.7, on excute b, on remet zro lhorloge y et on passe ensuite dans ltat s2. Le
vecteur 2 devient gal [0.7, 0] puisque lhorloge y a t remise zro et lhorloge x a
poursuivi sa progression.
A linstant t=2.8, lhorloge x affiche 0.8, la condition x<1 est vrifie, on excute c et on passe
ensuite dans ltat s3. Le vecteur 3 devient gal [0.8, 0.1] puisque les deux horloges ont
poursuivi leur progression.
A linstant t=5, lhorloge y affiche 2.3, la condition y>2 est vrifie, on excute d et on passe
ensuite dans ltat s0. Le vecteur 4 devient gal [3, 2.3] puisque les deux horloges ont
poursuivi leur progression.

d ; (y>2)

a ; x:=0

S0

b ; y:=0

S1

c ; (x<1)

S2

S3

Fig.11. Exemple dautomate temporis

Hypothse : si plusieurs horloges sont utilises dans un mme automate ou dans deux automates
synchroniss, les horloges sont censes voluer avec le mme rythme (cest--dire sans drive entre les
horloges).
Cette hypothse est parfois irraliste, en particulier dans des systmes rpartis ayant justement cette
spcificit de drive entre les horloges. Ds le moment o on a deux (ou plusieurs) horloges physiques,
elles dvient invitablement lune par rapport lautre, cause des matriaux utiliss pour fabriquer ces
horloges, cause des conditions environnementales... Mais tant que la drive nest pas importante, elle na
pas de consquence sur les dcisions prises en tenant compte de lcoulement du temps.

Systmes de transitions Z. Mammeri

17

7.2. Exemple de modlisation dun passage niveau simplifi


Nous considrons maintenant un exemple plus concret qui correspond au contrle dun passage niveau
avec un seul train et une seule section critique (le passage niveau). Le systme considr est compos de
trois sous-systmes : Train, Barrire et Contrleur.
Lautomate modlisant le train est donn par la figure 12-a. Les vnements traits sont : proche, dans,
hors et sorti. Le train commence ltat s0. Le train communique avec le contrleur par deux signaux
proche (envoy lorsquil se trouve proximit du passage) et sorti (envoy lorsquil quitte le
passage). Lvnement dans marque le fait que le train est dans la section critique et hors quil vient
den sortir. Le train envoie le signal proche au moins deux minutes avant dentrer dans le passage. Le
type de passage niveau considr et la vitesse du train font que le temps maximum entre les vnements
proche et sorti est de 5 minutes. Les contraintes sont exprimes laide dune horloge x.
Lautomate modlisant la barrire est donn par la figure 12-b. Les vnements traits sont : baisser,
lever, ferme et ouverte. La barrire est ouverte dans ltat s0. La barrire communique avec le
contrleur via les signaux baisser (pour demander la fermeture de la barrire) et lever (pour ouvrir la
barrire). Lvnement ferme marque la fin de lopration de fermeture de la barrire et lvnement
ouverte marque la fin de lopration douverture. La barrire rpond au signal baisser en fermant la
barrire au bout dune minute au maximum et au signal lever au bout dune deux minutes. Les
contraintes sont exprimes laide dune horloge y.
Lautomate modlisant le contrleur est donn par la figure 12-c. Les vnements traits sont :
approche, sorti, baisser et lever. Ltat de dpart du contrleur est s0. Lorsquil reoit le signal
approche du train, le contrleur rpond, en 1 minute exactement, en envoyant le signal baisser la
barrire. Lorsquil reoit le signal sorti du train, il rpond, en 1 minute au maximum, en envoyant le
signal lever la barrire. Les contraintes sont exprimes laide dune horloge z.

approche ;

S0

x:=0

baisser ;

S1

S0

y:=0

S1

dans ;

hors ;

(x>2)

(x<5)

ferme ;
ouverte;

(y<1)

((y>1)(y<2))
sorti

S3

lever

S2

a) Automate du Train

S3

y:=0

S2

b) Automate de la Barrire

Fig. 12. Exemple dautomates temporiss modlisant un train et un passage niveau

Systmes de transitions Z. Mammeri

18

approche ;

S0

z:=0

S1

baisser ;
lever;

(z=1)

(z<1))

sorti ;

S3

z:=0

S2

c) Automate du Contrleur

Fig. 12. (Suite) Exemple dautomates temporiss modlisant un train et un passage niveau

Systmes de transitions Z. Mammeri

19

8. Automates hirarchiques
La classe des automates hirarchiques trouve son origine dans les travaux de Harel (lauteur des
Statecharts utiliss dans UML). Les automates hirarchiques facilitent la modlisation des systmes larges
(en termes dtats et de transitions). Ils disposent doprateurs de structuration qui limitent lexplosion
combinatoire des tats et des transitions. On peut avoir des super-tats qui englobent chacun plusieurs
tats. Ainsi, toute transition sortant dun super-tat vers un autre tat quivaut une transition sortante de
chacun des tats du super-tat vers cet autre tat. Toute transition entrante dans un super-tat est une
transition entrant dans un des tats de ce super-tat (par dfaut dans ltat initial). Limbrication des tats
permet plusieurs niveaux dabstraction et facilite donc la lisibilit des modles.
La figure 13 montre un exemple dautomate hirarchis correspondant au fonctionnement simplifi dun
ascenseur. On considre que lascenseur a trois tats : Dmarrage, EnMouvement et Stopp. Ltat
EnMouvement est un super-tat compos de trois sous-tats Pallier, Monte et Descente. Le
formalisme utilis dans la figure 13 est celui des Statecharts qui fera lobjet dune tude part. Un disque
noir indique un tat initial dun automate ou dun super-tat, un disque noir entour par un cercle indique
un tat final et H* indique ltat prcdent en passant tous les niveaux dimbrication.

EnMouvement

Monter
Dmarrage

Init

Monte
Arrive

Arrt

Pallier
Arrive
Descente
Arrt

Descendre

Reprise
H*

Stop

Reprise

Stopp

Fig. 13. Exemple dautomate hirarchique selon le formalisme des Statecharts

Systmes de transitions Z. Mammeri

20

9. Composition dautomates
Un systme (complexe) est souvent compos de sous-systmes. Par exemple, un systme Voiture peut
tre compos de plusieurs sous-systmes Moteur, Alimentation, Transmission, Roues,
Direction... Le comportement dun systme Voiture correspond aux comportements de tous ses soussystmes observs aux mmes moments.
Ainsi, le comportement dun systme est souvent reprsent par les comportements des sous-systmes qui
le composent. Dans ce cas, le comportement du systme global est obtenu par la composition de plusieurs
automates. Ltat courant de lautomate compos est une combinaison des tats courants des automates le
composant. On peut aussi imaginer diffrentes oprations sur les automates : diffrence, intersection,
masquage, union... Lopration la plus rpandue est celle du produit dautomates. Nous drivons ici le
produit de deux automates, sachant que lopration Produit est associative. Il est noter que le produit (dit
aussi synchronisation) dautomates peut conduire rapidement lexplosion du nombre dtats de
lautomate global. Il nest pas rare de dpasser les milliards dtats (ce qui malheureusement conduit la
saturation de lespace mmoire disponible si on veut manipuler lautomate sur ordinateur).

Exemple de Produit sans synchronisation


Le cas le plus simple traiter est celui dautomates qui modlisent des sous-systmes qui ninteragissent
pas entre eux. Lautomate global est alors le produit cartsien des automates des sous-systmes ; un tat
global est en fait un vecteur des diffrents tats des sous-systmes (tats locaux). Par exemple, le systme
compos de deux compteurs modulo 3 indpendants (comme ceux dcrits par lautomate de la figure 2,
mais modulo 3) est dcrit par lautomate ci-dessous (Fig. 14). Lautomate produit est compos de 3*3
tats (chaque sous-automate possde 3 tats). Ltat i,j signifie que le premier compteur a la valeur i et
le second la valeur j. La transition tiquete a, b indique que lon applique lopration a au premier
compteur et lopration b au second. La notation - indique quaucune opration nest applique au
compteur correspondant.
Comme le montre la figure 14, il faut signaler lexplosion du nombre de transitions mme sur un petit
exemple (pour un produit de deux automates de 3 tats et 6 transitions chacun).
Pour simplifier le graphique, les tiquettes des transitions ne sont pas mentionnes. Une flche verticale ou
horizontale a une tiquette de lune des formes suivantes : (inc, -), (-, inc), (dec, -), (-, dec),
(inc, dec) ou (dec, inc). Une flche oblique a une tiquette de lune des formes suivantes (inc,
inc) ou (dec, dec). Avec les valeurs des compteurs mentionnes dans les tats, il est facile de savoir
de quelle tiquette il sagit.

Systmes de transitions Z. Mammeri

21

0,2

1,2

2,2

0,1

1,1

2,1

0,0

1,0

2,0

Fig. 14. Automate reprsentant le Produit dautomates de deux compteurs modulo 3 indpendants

Exemple de Produit avec synchronisation


Le cas que lon rencontre le plus souvent est plutt celui des sous-systmes qui se synchronisent. Si on
reprend lexemple prcdent (celui des deux compteurs) mais on exige que les deux compteurs voluent
de la manire suivante : les oprations inc et dec sont appliques en mme temps aux deux compteurs (si
lun est incrment ou dcrment lautre est incrment ou dcrment aussi). Lautomate produit (Fig.
15) a 3 tats et 6 transitions. Noter la diffrence par rapport au produit sans synchronisation.

0,0
inc, inc

inc, inc

dec, dec

dec, dec

dec, dec

2,2

1,1

inc, inc

Fig. 15. A Produit dautomates de deux compteurs synchroniss

Systmes de transitions Z. Mammeri

22

Dfinition (produit cartsien)

Ai = <Si, soi, Ei, Ti>, i = i=1,..., n et soit une tiquette note (qui
signifie ne rien faire). Le produit cartsien (ou produit libre) de n automates, not par A1 A2 ...
An, est lautomate global A = < S, so, E, T >, avec :
- S = S 1 S 2 ... S n
- s 0 = s 0 1 s 0 2 ... s 0 n
On considre un ensemble de n automates

(E {})
((s ,..., s ), (e ,..., e ), (s' ,..., s' ))
T =
(( e = ) ( s' = s )) (( e
E=

1 i n
1

i ,
i
i
i
i
) ( s , e , s' T )

Dans un produit cartsien, chaque composante Ai, peut, lors dune transition, soit ne rien faire (-) soit
effectuer une transition locale. Il ny a donc aucune obligation de synchronisation. Pour synchroniser les
composantes, il faut restreindre les transitions autorises dans le produit cartsien afin de tenir compte des
contraintes de synchronisation. Lensemble des transitions autorises, not Sync, est dfini par :
Sync

(E

{}

1 i n

Dans lexemple des deux compteurs modulo 3 qui voluent en mme temps (qui sont donc synchroniss)
et de la mme manire, les transitions autorises sont de la forme : Sync= {(inc,inc), (dec,dec)}.
Dfinition (produit synchronis)
Le produit synchronis peut tre donn en reprenant la dfinition du produit cartsien et en limitant
lensemble des transitions T :

((
(

)(

)(

))
(

s 1 ,..., s n , e 1 ,..., e n , s' 1 ,..., s' n


(( e 1 ,..., e n ) Sync et
T = i
i
i
i
i
i
i
i
( e = ) ( s' = s ) ( e ) ( s , e , s' T )

pour

tout

Dfinition (produit synchrone)


Le produit synchrone modlise la composition parallle de deux automates qui voluent obligatoirement
simultanment.

Dfinition (produit asynchrone)


Le produit asynchrone modlise la composition parallle de deux automates qui voluent indpendamment
lun de lautre.

Renommage des tiquettes


Lorsque lon fait le produit de plusieurs automates, on peut aboutir des tiquettes difficiles lire ou
encombrantes. Pour simplifier lcriture, on peut renommer certaines tiquettes. Par exemple, si on fait le
produit de 10 compteurs, au lieu dcrire (inc, inc,..., inc), on crit (inc) en sous-entendant que
lopration dincrmentation sapplique aux 10 compteurs.

Systmes de transitions Z. Mammeri

23

10. Raisonnement sur les automates (vrification)


10.1. Proprits dun systme
Les proprits gnrales attendues concernant le comportement dun systme sont souvent regroupes en
deux catgories :
-

Proprits de sret (safety) : le fonctionnement dun systme ne doit pas conduire des
situations catastrophiques ou dangereuses. (safety = bad things do not happen on all the
execution of a system). Le non-blocage est un exemple de proprits de sret.

Proprits de vivacit (liveness) : le fonctionnement de lautomate doit ventuellement conduire


bonnes situations (liveness = good things eventually happen on all the execution of a system).
Par exemple, la terminaison dun programme est souvent considre comme proprit de vivacit.

Il est parfois difficile, tant donn systme, de distinguer ce qui relve de la vivacit et ce qui relve de la
sret.
Des proprits plus lmentaires (plus proches des automates) sont souvent vrifies pour dmontrer des
proprits plus globales. Il sagit notamment des proprits suivantes :
-

Accessibilit : un tat est accessible sil existe un chemin latteignant depuis ltat initial.

Rinitialisabilit : un automate est rinitialisable sil existe un chemin depuis chaque tat vers
ltat initial.

Manque de blocage : une situation de blocage (deadlock) indique quaucune transition nest plus
possible un instant donn.

Manque de famine : la famine est une situation o lautomate boucle sur une partie, ce qui
empche tout accs dautres parties de lautomate.

Equit (fairness) : lquit indique que si deux chemins non-dterministes sont possibles partir
dun tat, ce nest pas toujours le mme chemin qui est emprunt.

Une fois que le modle, sous forme dautomate, a t labor on peut effectuer des raisonnements
(manuels ou automatiques) pour analyser (vrifier) des proprits sur le modle. Il faut souligner que les
proprits que lon peut analyser sont directement dpendantes des abstractions faites au niveau du
modle (on modlise en fonction de ce que lon souhaite analyser). Le plus souvent les raisonnements
effectus sur des automates se ramnent vrifier des invariants et des proprits.
Un invariant dun modle est un prdicat qui est vrai dans tous les tats accessibles du modle. Par
exemple, le nombre dlments dune pile borne doit tre 0 et la taille maximale de la pile.
Une proprit est un prdicat que le fonctionnement systme doit vrifier et cela pour des raisons de
sret ou de vivacit. Par exemple, si on reprend lexemple du contrle du passage niveau (Fig. 11), la
principale proprit de sret est lorsque le train est dans le passage, la barrire doit tre ferme et une
des proprits de vivacit peut tre la barrire nest jamais ferme pendant plus de 6 minutes .
Les proprits vrifier sont exprimes dans une logique approprie telles que PLTL (Propositional
Linear Timed Logic) ou TCTL (Timed Computation Tree Logic). La connaissance de la syntaxe et
smantique de la logique apte exprimer les proprits souhaites est donc indispensable. Ce nest pas
une mince affaire.

Systmes de transitions Z. Mammeri

24

10.2. Bisimulation
La bisimulation est la faon la plus simple (et la plus utilise) pour dfinir lquivalence entre deux
systmes de transitions. On dit quun systme est quivalent un autre lorsque aux tats et actions
excutes par lun correspondent (selon une certaine relation) des tats et actions excutes par lautre. En
particulier, lorsquun systme peut mimer chaque transition dun autre systme, vus de lextrieur ces
deux systmes sont indiscernables.
Dfinition (Bisimulation forte)

Soient deux systmes A = <S, so, E, T>, et A = <S, so, E, T>. a dsigne une action (ou une tiquette). Une
bisimulation forte (strong bisimulation) entre A et A est une relation1 binaire R entre S et S telle que :
- pour tout tat s de S, il existe un tat s de S tel que s R s
- pour tout tat s de S, il existe un tat s de S tel que s R s
a

- pour toute transition s s 1 appartenant T, et pour tout tat s appartenant S tel que s R s ,
a

il existe une transition s' s 1 '

appartenant T telle que s1 R s1 (les deux transitions ont la

mme tiquette a).


a

- pour toute transition s' s 1 ' appartenant T, et pour tout tat s appartenant S tel que s R s ,
a

appartenant T telle que s1 R s1 (les deux transitions ont la mme

il existe une transition s s 1


tiquette a).

Une autre forme de bisimulation existe, cest la bisimulation faible (weak bisimulation) qui considre des
squences dexcution et non des actions seulement. Cette forme de bisimulation se dfinit de la mme
a

manire que la bisimulation forte en remplaant les transitions de la forme s s' par des chemins de la

forme s s' qui signifie que ltat s peut tre atteint partir de s en excutant la squence ( =
a...b...c.. o a,b,c sont des actions).
Exemple
Soient deux systmes A1 et A2 dfinis dans la figure 16. Bien que les deux systmes puissent excuter les
mmes squences dactions (ab, ac, ab, ac, ..., ab..., ac...), ils ne sont pas quivalents (cest-dire quils ne sont pas en bisimulation), car dans ltat 2 de A2, on peut excuter soit b soit c alors que
dans aucun tat de A1, on a le choix entre ces deux oprations.
a

Systme A1

Systme A2

Fig. 16 Exemple de non-bisimulation de systmes


La relation binaire R est dfinie par : R S x S. En dautres termes, la relation R dfinit un ensemble de couples (s, s) o
s est un tat de S et s un tat de S. Le choix dassociation dun tat dun systme un tat dun autre systme dpend de
lanalyse que lon veut faire sur les deux systmes. Lorsque (s, s) appartient R, on dit que s simule s.
1

Systmes de transitions Z. Mammeri

25

10.3. Equivalence de traces


On peut comparer deux systmes de transitions pour voir leur volution au fur et mesure que les
transitions sont tires. Lvolution dun systme peut tre reprsente par la trace du chemin issu de ltat
initial ou un autre. On peut alors analyser les traces et voir comment un systme se comporte par rapport
un autre. En particulier, on peut chercher savoir si des traces sont identiques, lune est incluse dans
lautre, les deux traces ont des sous-traces communes spcifiques... Lorsquon tudie les traces
dexcution on ne tient pas compte de laction invisible .

Dfinition (tats trace-quivalents)

Soient deux systmes A1 = <S1, so1, E1, T1>, et A2 = <S2, so2, E2, T2>. On note Ci(s) lensemble de traces de
chemins commenant en ltat s dans le systme A1 (i=1,2). On note Li(s) lensemble des traces du systme
Ai commenant en s (cest--dire lensemble de toutes les suites dactions qui peuvent tre excutes
partir de ltat s dans le systme Ai). On dit que deux tats s1 appartenant S1 et s2 appartenant S2
sont trace-quivalents si L1(s1) = L2(s2). Lensemble de toutes les suites dactions excutes partir dun
tat est aussi appel langage car il est constitu de mots composs partir des noms dactions
excutes.

Exemple
Soient les deux systmes de transitions A1 et A2 dcrits par la figure 17. Prenons les deux tats 0 de A1 et 0
de A2. Ces deux tats sont trace-quivalents car les langages qui leur sont associs sont gaux :
L1(0) = L2(0) = {a, ab, ac}. Rappelez-vous que laction est invisible pour lobservation de
lexcution.

b
1

a
0

0
a

1
c

c
2

Systme A1

Systme A2

Fig. 17. Exemple de dquivalence de traces

On dmontre que si R est une relation de bisimulation entre deux systmes de transitions A1 et A2 et si
s1 R s2, (s1 appartient A1 et s2 A2), alors s1 et s2 sont trace-quivalents.

Systmes de transitions Z. Mammeri

26

Dfinition (quivalence observationnelle)

Soient deux systmes A1 = <S1, so1, E1, T1>, et A2 = <S2, so2, E2, T2>. Une quivalence observationnelle est une
relation R entre leurs ensembles dtats S1 et S2 qui vrifie les 4 proprits suivantes :
Pour tout tat s1 appartenant S1, il existe un tat s2 appartenant S2 tel que s1 R s2.
Pour tout tat s2 appartenant S2, il existe un tat s1 appartenant S1 tel que s1 R s2.
a

Pour tout tat s1 appartenant S1 et pour tout tat s2 appartenant S2 tels que s 1 R s 2 , si s 1 s 1 , il

'

existe s 2 appartenant S2 tel que s 1 R s 2 et s 2 s 2 .


'

'

'

'

Pour tout tat s2 appartenant S2 et pour tout tat s1 appartenant S1 tels que s 1 R s 2 , si s 2 s 2 ,

'

'
'
'
'
il existe s 1 appartenant S1 tel que s 1 R s 2 et s 1 s1 .

La notation s s ' signifie que :


- il existe un chemin allant de s s dont la trace est de la forme a nam (n, m 0), cest--dire
une excution de laction a prcde et suivie dune suite dactions inobservables.
- ou bien a = et s = s.
Lquivalence observationnelle est dfinie de manire analogue la bisimulation mais au lieu de
considrer uniquement les transitions, on considre les chemins de mme trace.

Exemple
Considrons les deux systmes de transitions A1 et A2 de la figure 18. Ces deux systmes sont
observationnellement quivalents car :
Avec lautomate A1, on a :

1 1 ; 1 2 ; 2 2 ; 2 3 ; 2 4 ; 3 3 ; 4 4
Avec lautomate A2, on a :

1' 1' ; 1' 1b' ; 1' 2' ; 1b' 1b' ; 1b' 2' ; 1b' 3 ; 1b' 4' ; 2' 2' ; 2' 3' ;
2' 4' ; 3' 3' ; 4' 4' .
La relation R dfinie par <(1 R 1) ; (1b R 2) ; (2 R 2) ; (3 R 3) ; (4 R 4) >

vrifie les proprits requises pour avoir lquivalence observationnelle.

a
1

a
2

1b

c
4

Systme A1

Systme A2

Fig. 18. Exemple dquivalence observationnelle

Systmes de transitions Z. Mammeri

27

10.4. Notion de rgions pour la vrification des automates temporiss


La smantique dun automate temporis est lautomate obtenu par dpliage sur les horloges. Comme les
horloges sont interprtes dans des domaines de dfinition infinis (les entiers ou les rels selon que le
temps utilis est discret ou dense), lautomate dpli est infini sur lequel il nest pas possible de faire de
lvaluation algorithmique. Pour viter ce problme de linfini, on fait des restrictions sur les horloges
pour dfinir des classes dquivalence de valuation dhorloge appeles zones ou rgions.
La notion de zone permet de dplier un automate temporis par un automate fini appel automate des
rgions. Il existe un thorme qui stipule que lautomate temporis et son automate dpli sont
bisimilaires. Cette proprit permet de faire des vrifications de proprits.

11. Conclusion
Les automates constituent un formalisme de base pour la reprsentation du comportement de systme. Les
automates sont adapts la modlisation de systmes vnements discrets. Un automate peut tre une
reprsentation finie dun ensemble de comportements infini dun systme. Les automates permettent de
formuler certains problmes et de les rsoudre algorithmiquement. Il existe de nombreuses variantes de la
notion dautomate (terme gnrique) adapte chacune rsoudre des problmes particuliers. Leur ct
graphique les rend faciles comprendre. Leur principal dfaut est lexplosion combinatoire du nombre
dtats et de transitions en fonction de la complexit et nature du systme modliser. Ils sont utiliss
pour vrifier des proprits sur les systmes modliss. Cependant, pour vrifier des proprits, il faut les
crire dans la logique approprie (CTL, TCTL, PLTL, ...) avant dutiliser les outils de vrification.
Aujourdhui les automates sont largement utiliss dans le monde industriel.

Bibliographie
A. Arnold, Systmes de transitions finis et smantique des processus communicants, Editions Masson 1992.
R. Alur, D. Dill, A theory of automata, Theoretical Computer Science Journal, 126(2):183-235, 1994.

Exercices
Exercice 1
Un atelier de production est compos de postes de travail de deux types : perceuse et fraiseuse. Les pices
transitent dun poste lautre pour subir divers traitements. Lordre de transit est : entre, Perceuse,
Fraiseuse, sortie. Les pices sont dposes dans des conteneurs. Lorsquun poste a fini dusiner une pice,
il la place dans le conteneur du poste suivant.
Utiliser les automates pour reprsenter le systme de production dcrit prcdemment en identifiant les
sous-systmes : Entre, Perceuse, Fraiseuse, et Sortie. Faire appel aux variables, aux messages
Exercice 2
Reprendre lexemple de lautomate Digicode afin de respecter les contraintes suivantes :
- Si le temps sparant deux touches est suprieur 20 secondes, le systme envoie un signal sonore
et se rinitialise.
- La porte doit souvrir entre 10 20 secondes une fois le bon code saisi.

Systmes de transitions Z. Mammeri

28