Chapitre 1 - Modélisation
Chapitre 1 - Modélisation
MODÉLISATION.
EXEMPLES DE MODÈLES.
CONCEPTS GÉNÉRAUX.
AUTOMATES AVEC VARIABLES.
AUTOMATES COMMUNICANTS.
AUTOMATES TEMPORISÉES
ABSTRACTION
Modéliser des
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
systèmes
Abstraction
Modéliser des
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
systèmes
Abstraction
Automates
Automates communicants
Automates temporisés
Abstraction
Automates
Automates communicants
Automates temporisés
Abstraction
Exemple 1 :
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
montre digitale
Abstraction
Exemple 2 :
Exemples de modèles
Concepts généraux
Automates avec variables
compteur modulo
Automates communicants
Automates temporisés
Abstraction
3 (M3)
❑Les états correspondent aux valeurs du
compteur.
❑Les transitions traduisent les actions
possibles sur le compteur : incrémentation
ou décrémentation.
M3=(S, s0,E,R) inc
0 1
S={0,1,2}, s0=0,E={inc,dec} dec
dec
R={(0,inc,1),(1,inc,2),…(2,dec,1),…} inc
dec
inc
2
Exercice
Automates communicants
Automates temporisés
Abstraction
payer
Prendre-jus Prendre-soda
Insérer-
pièce
Exemple 3 :
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Digicode
Abstraction
Modélisation
Automates communicants
Automates temporisés
Abstraction
B
C
Exécution
Automates communicants
Automates temporisés
Abstraction
Arbre
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
d’exécution
Abstraction
1 2
1 2 1 2 3
1 2 1 2 3 1 2 1 2 3 1 4
…………………………………….
14 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Propriétés
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
élémentaires
Abstraction
Propriétés
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
vérifiables
Abstraction
Propositions
Exemples de modèles
Concepts généraux
Automates avec variables
atomiques pour le
Automates communicants
Automates temporisés
Abstraction
digicode
❑PA : on vient nécessairement de taper un A
(vraie dans les états 2 et 4).
❑PB : on vient nécessairement de taper un B
(vraie dans l’état 3 uniquement).
❑PC : on vient nécessairement de taper un C
(n’est vraie dans aucun état).
❑pred2 : l‘état précédent dans une exécution est
nécessairement un 2 (vraie dans l’état 3).
❑pred3 : l‘état précédent dans une exécution est
nécessairement un 3 (vraie dans l’état 4)
17 ©Myriam Fourati Cherif
Modélisation
Propositions
Exemples de modèles
Concepts généraux
Automates avec variables
atomiques pour le
Automates communicants
Automates temporisés
Abstraction
digicode
B A
C
1 A 2 B 3 A 4
PA PB PA
C pred2 pred3
B
C
Exercice
Automates communicants
Automates temporisés
Abstraction
❑Vérifier la propriété :
« Si la porte s’ouvre (une exécution arrive dans
l’état 4) alors les trois dernières lettres tapées
sont dans l’ordre A,B,A ».
Système de
Automates avec variables
Automates communicants
Automates temporisés
transition étiqueté
Abstraction
❑ A=(Q,q0,E,T) :
❑ Q est un ensemble fini d’états.
❑ E est un ensemble fini d’étiquettes de transition.
❑ T Q {E{}} Q est l’ensemble de transitions, avec est une
action interne non observable. Sachez que (q,e,q’) est souvent
𝑒 a
notée 𝑞 ՜ 𝑞′.
q0 q1
❑ q0 est l’état initial. c
❑Exemple. q3
b
Système de
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Kripke
Abstraction
❑A=(Q,q0,E,T,Prop,l) :
❑Q est un ensemble fini d’états.
❑E est un ensemble fini d’étiquettes de transition.
❑T Q E Q est l’ensemble de transitions.
❑ q0 est l’état initial.
❑Prop est un ensemble de propositions atomiques
{P1,P2,…,Pn}.
❑ l : Q →2Prop application d’étiquetage des états par des
propositions.(associe à tout état l’ensemble fini des
propriétés élémentaires vérifiées dans l’état).
Chemin
Automates communicants
Automates temporisés
Abstraction
❑ Exemple : .
❑ La longueur d’un chemin (notée | |) est le nombre de
transitions qu’il contient ( s’il est infini).
❑ Le ième état de ((i)) est l’état qi atteint après i transitons
(défini si i <| |).
Exécution
Automates communicants
Automates temporisés
Abstraction
Atteingabilité
Automates communicants
Automates temporisés
Abstraction
Automates avec
Automates avec variables
Automates communicants
Automates temporisés
variables d’états
Abstraction
Définition :
Exemples de modèles
Concepts généraux
Automates avec variables
Automate avec
Automates communicants
Automates temporisés
Abstraction
variables
❑A=(Q,q0,E,T,Prop,Var,l) :
❑Q est un ensemble fini d’états.
❑E est un ensemble fini d’étiquettes de transition.
❑T Q E Q est l’ensemble de transitions.
❑ q0 est l’état initial.
❑Prop est un ensemble de propositions atomiques
{P1,P2,…,Pn}.
❑Var est un ensemble de variables {v1, ..., vn}, chaque
vi peut prendre des valeurs un domaine Dvi,
❑ l : Q →2Prop application d’étiquetage des états.
Manipulation des
Exemples de modèles
Concepts généraux
Automates avec variables
variables par
Automates communicants
Automates temporisés
Abstraction
l’automate
❑Le lien entre l’automate et les variable peut
être :
❑D’affectation : une transition peut modifier la
valeur d’une ou plusieurs variables.
❑De garde : une transition peut être gardée par
une condition sur les variables. Ainsi, pour
franchir la transition il faut que la condition sur
les variables soit vérifiée.
Exemple :
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Digicode
Abstraction
B A
C
A B A
1 2 3 4
C
B
C
❑Cette modélisation du digicode n’est pas réaliste,
c’est ainsi que nous l’améliorons en ajoutant un
compteur de nombre d’erreurs commises par
l’utilisateur et n’autoriser que 3 erreurs.
❑Nous ajoutons donc une variable entière cpt,
initialisée à 0.
30 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Concepts généraux
Lien entre
Automates avec variables
Automates communicants
Automates temporisés
l’automate et cpt
Abstraction
B
C
Lien entre
Automates avec variables
Automates communicants
Automates temporisés
l’automate et cpt
Abstraction
B cpt := cpt+1
C
❑Au fait toutes les transitions sauf (1,A,2),(2,B,3)
et (3,A,4) menant à l’ouverture de la porte.
32 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Concepts généraux
Lien entre
Automates avec variables
Automates communicants
Automates temporisés
l’automate et cpt
Abstraction
Conventions
Automates communicants
Automates temporisés
Abstraction
Amélioration du
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Digicode
Abstraction
Digicode
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
amélioré (A)
Abstraction
Si cpt <3
C
cpt := cpt+1
Si cpt =3
Si cpt <3 B,C
Si cpt =3 B,C
B,C cpt := cpt+1 cpt := cpt+1
cpt := cpt+1
err
Si cpt =3
A,C
cpt := cpt+1
36 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Dépliage de
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
l’automate
Abstraction
Construction de
Automates avec variables
Automates communicants
Automates temporisés
l’automate déplié
Abstraction
Digicode avec
Exemples de modèles
Concepts généraux
Automates avec variables
comptage des
Automates communicants
Automates temporisés
Abstraction
erreurs
Compositions de
Exemples de modèles
Concepts généraux
Automates avec variables
structures de
Automates communicants
Automates temporisés
Abstraction
Kripke
❑Les modèles de Kripke complexes sont
obtenus généralement par composition
d’autres modèles : produits de systèmes.
❑On parle de produit cartésien pour les
systèmes indépendants.
❑On parle de produit synchronisé pour les
systèmes dépendants.
Modèles
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Composés
Abstraction
Composants
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
sans interaction
Abstraction
Exemple :
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
compteur
Abstraction
Les états de
Exemples de modèles
Concepts généraux
Automates avec variables
l’automate
Automates communicants
Automates temporisés
Abstraction
composé
❑L’automate M234 (produit cartésien des
automates M2, M3 et M4) contient
234=24 états.
❑Chaque état est étiqueté par un vecteur de
trois éléments chacune pouvant être : 0,1,
2 ou 3.
Etats du produit
Exemples de modèles
Concepts généraux
Automates avec variables
des 3 compteurs
Automates communicants
Automates temporisés
Abstraction
Transitions de
Exemples de modèles
Concepts généraux
Automates avec variables
l’automate
Automates communicants
Automates temporisés
Abstraction
composé
❑Il n’y a pas de synchronisation, chaque transition
permet l’incrémentation ou la décrémentation de
un ou plusieurs compteurs individuels :
333=27 choix.
❑Il est possible qu’un compteur reste stable, ceci
sera modélisé par le symbole « _ ».
❑Notez que ce symbole n’existait pas dans les
compteurs individuels. Pourquoi ?
❑Il y a 27-1=26 (on élimine celle où aucun
compteur n’évolue) transitions possibles dans
chaque état 24 26 = 624 transitions.
47 ©Myriam Fourati Cherif
Modélisation
Quelques
Exemples de modèles
Concepts généraux
Automates avec variables
transitions de
Automates communicants
Automates temporisés
Abstraction
M234
Produit
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchronisé
Abstraction
Produit
Exemples de modèles
Concepts généraux
Automates avec variables
Automates communicants
synchronisé
Automates temporisés
Abstraction
Produit
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchronisé
Abstraction
Produit
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchronisé
Abstraction
états atteignables
Abstraction
M234c Nettoyé
Automates communicants
Automates temporisés
Abstraction
Problème
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
d’explosion
Abstraction
Problème
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
d’explosion
Abstraction
Variantes du
Exemples de modèles
Concepts généraux
Automates avec variables
produit
Automates communicants
Automates temporisés
Abstraction
synchronisé
❑Synchronisation par envoie de
message.
Synchronisation
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
par message
Abstraction
Exemple1 : envoie
Exemples de modèles
Concepts généraux
Automates avec variables
et réception de
Automates communicants
Automates temporisés
Abstraction
messages
❑Partage d’une donnée v entre deux
systèmes A1 et A2 : calcul et traitement.
Exemple1 : envoie
Exemples de modèles
Concepts généraux
Automates avec variables
et réception de
Automates communicants
Automates temporisés
Abstraction
messages
❑Partage d’une donnée v entre deux
systèmes A1 et A2 : calcul et traitement.
A1
Fin calcul Préparation !Msg(v) Attente
Calcul v
(C1) d’émission Ack
(C2) (C3)
?Ack
Exemple1 : envoie
Exemples de modèles
Concepts généraux
Automates avec variables
et réception de
Automates communicants
Automates temporisés
Abstraction
messages
❑Partage d’une donnée v entre deux
systèmes A1 et A2 : calcul et traitement.
A1
Fin calcul Préparation !Msg(v) Attente
Calcul v
(C1) d’émission Ack
(C2) (C3)
?Ack
A2
Attente ?Msg(v) Préparation !Ack
Traitement
message Ack (T3)
(T1) (T2)
Fin Traitement
61 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Synchronisation
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
de A1 et A2
Abstraction
❑A =A1 A2 <FC,FT>
<-,FT>
<?Ack,->
C1,T1 <-,?Msg> C1,T2 <-,!Ack> C1,T3
<-,FT> <?Ack,FT>
Contrainte de
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchronisation
Abstraction
❑A s =A1 || A2 <FC,FT>
<-,FT>
<!Msg,?Msg>
<?Ack,!Ack>
C3,T1 C3,T2 C3,T3
<-,FT>
Exemple 2 :
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Ascenseur
Abstraction
Modélisation
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
des composants
Abstraction
❑Cabine
?descend ?monte
?monte ?monte
0 1 2
?descend ?descend
Modélisation
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
des composants
Abstraction
❑Porte numéro i
?fermer_i ?ouvrir_i
?ouvrir_i
F O
?fermer_i
Modélisation
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
des composants
Abstraction
❑Contrôleur
PO2 !fermer_2 PF2 !descend
2à0
!ouvrir_2
!descend
!monte
!descend
!descend
!monte
0à2
Synchronisation
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
de l’ascenseur
Abstraction
Spécification de
Exemples de modèles
Concepts généraux
Automates avec variables
propriétés pour
Automates communicants
Automates temporisés
Abstraction
l’ascenseur
❑Avant de livrer ce produit, il est utile de
s’assurer qu’il ne cause pas d’ennuis à ses
utilisateurs.
❑Il est important de vérifier :
❑(P1) « la porte d’un étage ne peut s’ouvrir si la
cabine n’est pas à cet étage ».
❑(P2) « la cabine ne peut se déplacer si une
des portes est ouverte ».
Vérification de
Exemples de modèles
Concepts généraux
Automates avec variables
propriétés de
Automates communicants
Automates temporisés
Abstraction
l’ascenseur
❑(P1) signifie pour la porte 0 : tout état ayant « o »
comme premier composant (porte 0 ouverte), a
nécessairement « 0 » comme quatrième
composant (la cabine est dans l’étage 0).
❑Il suffit donc de vérifier qu’il n’existe pas d’états
atteignables ayant sous la forme :
❑(o,-,-,1,-) ou
❑(o,-,-,2,-)
❑Cette propriété peut être vérifiée aussi pour les
autres portes.
71 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Messages
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
asynchrones
Abstraction
Conclusion sur la
Exemples de modèles
Concepts généraux
Automates avec variables
synchronisation
Automates communicants
Automates temporisés
Abstraction
par message
❑Communication synchrones est utilisée
pour modéliser les système de
contrôle/commande.
Synchronisation
Exemples de modèles
Concepts généraux
Automates avec variables
par variable
Automates communicants
Automates temporisés
Abstraction
partagée
❑Il s’agit de faire communiquer des automates en
les faisant partager des variables.
❑Utiliser les variables locales à chaque automate
comme des variables globales partagées par
l’automate synchrone.
❑Exemple : imprimante partagée par deux
personnes A et B on utilisera une variable
partagée tour indiquant lequel des deux a le droit
d’imprimer.
Exemple :
Exemples de modèles
Concepts généraux
Automates avec variables
imprimante
Automates communicants
Automates temporisés
Abstraction
partagée
❑ Utilisateur A
Si tour=A
Imprime A
X Y
Tour := B
tour est une variable partagée
❑ Utilisateur B par les deux automates
Si tour=B
Imprime B
Z W
Tour := A
Imprimante
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchronisée
Abstraction
x,z,A x,z,B
Tour :=A Tour :=B
Imprime B
Imprime A
x,w,A x,w,B
y,z,A y,z,B
y,w,A y,w,B
Imprimante
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchronisée
Abstraction
x,w,B
y,z,A
Imprimante
Exemples de modèles
Concepts généraux
Automates avec variables
partagée par
Automates communicants
Automates temporisés
Abstraction
Peterson
❑Deux processus PA et PB, trois variables
partagées :
❑dA : l’utilisateur A met à vrai s’il veut imprimer.
Initialement elle est fausse.
❑ dB : l’utilisateur B met à vrai s’il veut imprimer.
Initialement elle est fausse.
❑tour : départage le conflit.
Code de Peterson
Automates avec variables
Automates communicants
Automates temporisés
pour PX
Abstraction
❑X = A si X=B et A sinon.
dx := vrai
tour := X
tant que (dx && tour = X)
//Attendre
section_critique()
dx := faux
❑Garantit plusieurs propriétés, entre autres
l’exclusion mutuelle.
79 ©Myriam Fourati Cherif
Modélisation
Imprimante de
Exemples de modèles
Concepts généraux
Automates avec variables
Peterson
Automates communicants
Automates temporisés
Abstraction
synchronisée
❑ L’utilisateur A chez Peterson
dA:=vrai
1 2
dA :=faux
tour :=B
Si tour = A, Imprime A
4 3
Si dB = faux, Imprime A
Propriétés de
Exemples de modèles
Concepts généraux
Automates avec variables
l’automate de
Automates communicants
Automates temporisés
Abstraction
Peterson
❑Un état de l’automate synchronisé est un
quintuplet (état de A, état de B, valeur dA, valeur
dB, valeur de tour). L’automate a donc 44 2 2
2 = 128 états.
❑Le nombre d’états atteignables est 21.
❑Un model checker peut vérifier qu’aucun état de la
forme (4,4,-,-,-) n’est atteignable garantissant
l’impossibilité d’impression simultanée par A et B .
❑Il peut aussi vérifier que toute demande
d’impression finit par être satisfaite.
81 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Produit
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchrone
Abstraction
Produit
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
asynchrone
Abstraction
Automates
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
temporisés
Abstraction
Pourquoi
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
temporiser ?
Abstraction
Modélisation des
Exemples de modèles
Concepts généraux
Automates avec variables
automates
Automates communicants
Automates temporisés
Abstraction
temporisés
❑Pour modéliser des automates temporisés,
il est possible d’ajouter des horloges
globales contrôlant les actions d’un réseau
d’automates.
❑Deux façons de représenter l’horloge :
❑Temps discret,
❑Temps continu.
Temps discret
Automates communicants
Automates temporisés
Abstraction
Exemple d’un
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Gradateur
Abstraction
Appuyer
Appuyer
Exemple d’un
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
Gradateur
Abstraction
Appuyer
Appuyer
Gradateur avec
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
ticks
Abstraction
allumé tick
Appuyer
Appuyer
Appuyer
Appuyer
éteint estompé1 estompé2 tick estompé2
tick
tick
Appuyer
Temps discret
Automates communicants
Automates temporisés
Abstraction
Temps continu
Automates communicants
Automates temporisés
Abstraction
x>1
Appuyer Appuyer
Automates
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
temporisés
Abstraction
Description d’un
Exemples de modèles
Concepts généraux
Automates avec variables
automate
Automates communicants
Automates temporisés
Abstraction
temporisé
❑Un automate temporisé est composé de :
❑Un graphe d’états (structure de kripke)
décrivant les états du système avec transitions
instantanées entre les états.
❑Un ensemble fini d’horloges H={h1,h2,…, hn},
associées aux transitions, utilisées pour
spécifier des contraintes quantitatives de
temps. Elles sont des variables à valeurs
réelles positives et à l’état initial du système
elles ont toutes la valeur 0.
94 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Transitions d’un
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
AT
Abstraction
Définition d’un
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
AT
Abstraction
Exemple d’un
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
AT
Abstraction
Exemple d’un
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
AT
Abstraction
Exemple d’un
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
AT
Abstraction
Remarque
Automates communicants
Automates temporisés
Abstraction
Configuration
Automates communicants
Automates temporisés
Abstraction
Configuration
Automates communicants
Automates temporisés
Abstraction
Exemple de
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
configurations
Abstraction
Exécution
Automates communicants
Automates temporisés
Abstraction
Trajectoire
Automates communicants
Automates temporisés
Abstraction
Réseaux d’AT et
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
synchronisation
Abstraction
Synchronisation
Automates communicants
Automates temporisés
Abstraction
Exemple :
Automates avec variables
Automates communicants
Automates temporisés
passage à niveau
Abstraction
❑Un train
❑Une barrière
Passage à
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
niveau
Abstraction
Passage à
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
niveau
Abstraction
Modèle du train
Automates communicants
Automates temporisés
Abstraction
Modèle de la
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
barrière
Abstraction
mettre à se lever.
❑ Elle met entre 1 à 2 se_lève
Départ
baissé
Synchronisation
Automates communicants
Automates temporisés
Abstraction
Synthèse
Automates communicants
Automates temporisés
Abstraction
Invariants pour le
Automates avec variables
Automates communicants
Automates temporisés
passage à niveau
Abstraction
Départ Approche
Approche
Approche se_baisse
Hb:=0
Ht:=0 levée Hb<2
loin avant
Ht<5 Approche
1<Hb<2 Hb:=0 1<Hb<2
2<Ht<5 Départ
1<Ht<2
Ht:=0 Hb:=0
Départ Sur
Ht<2 se_lève
Hb<2 baissé
Départ
Hb:=0
Départ Approche
116 ©Myriam Fourati Cherif
Modélisation
Exemples de modèles
Concepts généraux
Automates avec variables
Invariants
Automates communicants
Automates temporisés
Abstraction
Passage à
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
niveau amélioré
Abstraction
Méthodes
Concepts généraux
Automates avec variables
Automates communicants
Automates temporisés
d’abstraction
Abstraction