Présentation de méthodes et d’outils de spécification, description et validation formelle de protocoles dans les réseaux, principalement par les Réseaux de Petri
3. Objectif
Présentation de méthodes et d’outils de
spécification, description et validation formelle
de protocoles dans les réseaux, principalement
par les Réseaux de Petri
Sommaire
I. Modèles d’ingénierie p. 3
II. Réseaux de Petri p. 14
4. Bibliographie
• Les réseaux de PETRI - Annie Choquet-Geniet -
Dunod - 2006
• Les réseaux de PETRI - Michel Diaz - Hermès - 2001
• A Primer in Petri Net Design - W. Reisig - Springer Verlag
- 1992
• Réseaux de Petri et systèmes parallèles - Guy Vidal-
Naquet, Annie Choquet-Geniet - Armand Colin - 1992
• The Logic of Time - Johan van Benthem - Kluwer
Academic Publishers - 1991
• Petri Net Theory and the Modelling of Systems - James L.
Peterson - Prentice Hall Inc. - 1981
6. Entité
A
Entité
B
Canal
Règles de dialogue entre entités pour
réaliser une tâche donnée
1 Protocoles
• Définition
• Spécifier
– la (ou les) tâches à réaliser
– le comportement du canal de communication
– les règles de
• Fonctionnement
• Dialogue
– Actions spécifiques (ex : erreurs de protocole)
• Implémenter
– code des entités
– dialogue
7. • Valider
– conformité spécification vs implémentation
– conformité comportement vs tâche(s) à réaliser
– comportement d’une entité valide face à une
entité non valide
• Tester
– cas de comportement
CanalEntité Entité
Canal
Niveau i
Niveau i-1
réalisé par
• Modèle en couches
8. • Protocoles et Programmes
– Entité
• ne s’arrête pas
– sauf cas particuliers (ex: panne)
• n’entre pas de données
• ne fournit pas de résultat
– Protocole
• entités parallèles asynchrones
• non déterminisme
2 Les Modèles
2.1 Un exemple
2.2 Automates d’états finis
2.3 Langages de spécification
2.4 Logiques temporelles
2.5 Réseaux de PETRI
9. 2.1 Un exemple
• Un site émetteur E
• Un site récepteur R
• Un canal de communication C
• Le protocole de communication :
– E envoie un message M à R
– Si R reçoit M sans erreur il envoie ACK à E
– Si R reçoit M avec erreur il envoie NAK à E
2.2 Automates d’états finis
Envoi de M
Réception de ACK
Réception de NAK
Réception de M
Envoi de NAKEnvoi de ACK
?
?
?
10. 2.3 Un langage de spécification
C.S.P.
Cooperating Sequential Processes
C.A.R. HOARE
– ne pas confondre avec la programmation par
contraintes !
• Instructions de base simplifiées
– Entrée de valeur dans x ? x
– Sortie de la valeur x ! x
• Commande gardée
A → B
– A est une expression booléenne ou une entrée
– B est une commande
– Sémantique : quand A faire B
• Équivalent à : tant que ¬A faire ; B
• On « attend » que A soit vrai pour faire B
– Si A est une entrée on attend sa valeur
11. • Commande alternative
[ C1 | C2 | … Cn ]
– Ci sont des commandes gardées : Ai → Bi
– Sémantique
• Les Ai sont évaluées
• Si toutes les Ai sont fausses⇒ ABORT !
– Les Ai d’entrée sont toujours vraies
• Sinon on exécute au hasard une Bi dont l’Ai est
vraie
– Si l’Ai choisie est une entrée on attend la donnée
– CSP est un langage non déterministe
• Commande répétitive
* [ C1 | C2 | … Cn ]
– Ci sont des commandes gardées : Ai → Bi
– Sémantique
• Les Ai sont évaluées
• Si toutes les Ai sont fausses⇒ EXIT de l’itération
– Les Ai d’entrée sont toujours vraies
• Sinon on exécute au hasard une Bi dont l’Ai est
vraie
– Si l’Ai choisie est une entrée on attend la donnée
Et on réitère ….
12. • Un exemple
Processus Emetteur
* [ → !M ; → ?x ; [x = ACK → ok | x = NAK → erreur ] ]
Processus Récepteur
* [ ? x → [ x sans erreur → ! ACK | x avec erreur → ! NAK ] ]
proche de l’implémentation mais
propriétés difficiles à établir
nécessité d’une sémantique formelle
2.4 Logiques temporelles
• Ce sont des logiques modales
• Logique L0 minimale
– Logique propositionnelle +
– Fonctions et Prédicats +
– Deux opérateurs d’arité 1
P dorénavant P henceforth P
P ultérieurement P eventually P
P est un prédicat
13. • Sémantique simplifiée
P signifie que dans tous les instants du futur P
sera toujours vrai
analogie avec ∀
P signifie que dans au moins un des instants du
futur P sera vrai
analogie avec ∃
• Plusieurs logiques possibles selon la
modélisation du temps
• Principalement
– LTL Logique en temps linéaire
• Un seul futur (non déterministe) possible
– BTL Logique en temps arborescent
• Plusieurs futurs (déterministes) possibles
• LTL et BTL ne sont pas comparables
aucune n’est incluse dans l’autre !
14. 2.5 Réseaux de Petri
• Origine : Carl Adam Petri
« Kommunikation mit Automaten »1962
• Idée
Carl Adam Petri
(1926)
!M ?M
M
A1 A2
• Les s’appellent des places
• Les s’appellent des transitions
Les places préfigurent des états
Les transitions préfigurent des actions
L’état d’une place est repérée par un marquage
représenté par des jetons
place vide place marquée
(2 jetons)
place marquée
(1 jeton)
16. II
Réseaux de Petri
Sommaire
1. Définitions et Propriétés p. 15
2. Marquages accessibles p. 28
3. Algèbre linéaire p. 43
4. Langages engendrés p. 55
5. Problèmes et extensions p. 66
6. Calcul des semi-flots p. 78
17. II.1
Définitions et
Fonctionnement
RdP R = < P, T ; Pre, Post >
• P Ensemble fini de Places
• T Ensemble fini de Transitions
• Pre : P x T → N incidence avant
• Post : P x T → N incidence arrière
RdP marqué R(M) = < P, T ; Pre, Post, M >
• M : P → N marquage
Définition algébrique
18. Pre
Post
Jeton (token)
par convention,
un arc non valué possède
implicitement la valeur 1
(cas fréquent en pratique)
Graphe associé
• Graphe biparti
Places
– Nœuds
Transitions
– Arcs valués
– Marquage
Jamais …
ceci
ni
cela
19. Franchissabilité
• Une transition t ∈ T est franchissable pour un
marquage M ssi
∀p∈P M(p) ≥ Pre (p,t)
chaque place p entrée de t doit être marquée d’une
valeur supérieure à la valeur de l’arc p → t
la relation est trivialement vraie pour toute place p non
entrée de t (Pre (p,t) = 0)
• Notation M(t>
Franchissement
• Une transition t ∈ T est franchie pour un marquage M,
donnant un marquage M’ ssi
M(t> t est franchissable pour M
∀ p∈P M’(p) = M(p) - Pre (p,t) + Post (p,t)
le franchissement de t
– retire de chaque place p entrée de t un nombre de jetons égal à la
valeur de l’arc p → t
– ajoute à chaque place p sortie de t un nombre de jetons égal à la
valeur de l’arc t → p
• Notation M(t>M’
20. Etats observables
• L’état d’un réseau de Petri marqué est défini
par son marquage M
• Cet état est algébriquement observable
• En général il n’est pas physiquement
observable
– Les places peuvent être situées sur des sites différents
– Il n’existe pas de site observateur
Chronologie
• Un marquage définit un état et un instant
• Le franchissement d’une transition définit un
changement d’état et aboutit à un nouvel
instant
• Les changements d’état définissent la
chronologie du fonctionnement
• Le temps est défini comme une succession
d’instants
21. Simultanéité
• Dans un état donné, plusieurs transitions
peuvent être franchissables
• Cependant, plusieurs transitions ne peuvent
pas être simultanément franchies
c’est une sorte d’axiome de la notion de simultanéité
qui est n’est pas observable
similitude avec la simultanéité physique non
observable en général (théorie de la relativité
restreinte - Albert Einstein -)
Albert Einstein
(1879-1955)
Atomicité & Granularité
• Le franchissement d’une transition est
– unique (non simultanéité)
– atomique (ou indivisible)
– non observable (entre 2 instants observables)
– instantané
• La transition définit la granularité du modèle
– Seuls les instants sont observables
– Les propriétés observables dépendent de la granularité
choisie
22. Non déterminisme
• Lorsque plusieurs transitions sont
franchissables, une seule peut être franchie à
un instant donné
• Le non déterminisme vient du choix de la
transition qui sera franchie
• Le non déterminisme peut avoir 2 origines :
– Le parallélisme
– Le conflit effectif
Parallélisme
• Deux transitions t1 et t2 sont parallèles pour
un marquage M ssi
∀p∈P M(p) ≥ Pre(p,t1) + Pre(p,t2)
ce qui implique M(t1> et M(t2> et
– ou bien ∀ p∈P Pre(p,t1) x Pre(p,t2) = 0
aucune place n’est entrée de t1 et t2
– ou bien ∃ p∈P Pre(p,t1) x Pre(p,t2) ≠ 0
les places entrées de t1 et t2 ont suffisamment de jetons
pour permettre le franchissement de t1 et t2
23. Conflit structurel
• Deux transitions t1, t2 sont en conflit
structurel ssi
∃ p ∈ P Pre (p,t1) x Pre (p,t2) > 0
la place p est entrée commune de t1 et t2
le conflit structurel est indépendant du marquage ; il
indique un conflit potentiel
Conflit effectif
• Deux transitions t1, t2 sont en conflit effectif
pour un marquage M ssi
– t1 et t2 sont en conflit structurel
– M(t1> et M(t2>
– M(p) < Pre(p,t1) + Pre(p,t2)
p n’a pas assez de jetons pour que t1 et t2 puissent être
franchies
24. Non déterminisme
• Issu du parallélisme
– Il est dû à l’impossibilité d’observation de la
simultanéité : à un instant deux (ou plus) transitions
peuvent être franchies ; on choisit d’en franchir une
seule à cet instant
• Issu du conflit effectif
– Il est dû à l’impossibilité de franchir à un instant deux
(ou plus) transitions franchissables à cet instant
Exemple 1 : Communication
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
25. Exemple 1 : Communication
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Exemple 1 : Communication
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
26. Exemple 1 : Communication
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
et cætera ….
transitions parallèles
Exemple 2 : Partage conflictuel
ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
conflit effectif
27. Exemple 2 : Partage conflictuel
ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Exemple 2 : Partage conflictuel
ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
parallélisme
conflit structurel
pas de conflit effectil
pas de parallélisme
28. Exemple 2 : Partage conflictuel
ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Exemple 3 : Partage sans
conflit
PE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
conflit structurel
parallélisme
pas de conflit effectif
29. Exemple 3 : Partage sans
conflit
PE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Exemple 3 : Partage sans
conflit
PE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
et cætera ….
30. II.2
Marquages accessibles
Un protocole de connexion-
déconnexion
Phase de connexion
– A l’état initial les 2 sites sont au repos
– Le site A est l’appelant, le site B l’appelé
– Le site A envoie un message de demande de connexion
DC au site B puis attend sa réponse
– Le site B, sur réception du message DC envoie un
message de confirmation de connexion CC puis passe
directement dans l’état connecté
– Le site A, sur réception du message CC passe dans
l’état connecté
31. Un protocole de connexion-
déconnexion
Phase de déconnexion
– La déconnexion peut être initiée aussi bien par le site A
que par le site B
– Le site initiateur connecté envoie à l’autre site un
message de demande de déconnexion DD puis attend sa
réponse
– Lorsqu’un site connecté reçoit un message DD, il
répond par un message de confirmation de déconnexion
CD puis retourne à l’état de repos
– Lorsqu’un site en attente de déconnexion reçoit un
message CD il retourne à l’état de repos
Un protocole de connexion-
déconnexion
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
32. Un protocole de connexion-
déconnexion
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
Un protocole de connexion-
déconnexion
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
33. Un protocole de connexion-
déconnexion
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
Un protocole de connexion-
déconnexion
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
34. Un protocole de connexion-
déconnexion
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
INTERBLOCAGE !
Un protocole de connexion-
déconnexion
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
SOLUTION
a b
35. Un protocole de connexion-
déconnexion
Modification du protocole
– Lorsqu’un site en attente de déconnexion reçoit un
message DD il retourne à l’état de repos
ceci permet de résoudre le conflit de déconnexion
qui conduisait à un interblocage (deadlock)
Ensemble des marquages
accessibles
• Soit < P, T ; Pre, Post, M0 > un réseau de Petri
marqué
• M0 est considéré comme le marquage initial
origine des instants
• L’ensemble des marquages accessibles à partir de
M0, noté [M0] est le plus petit ensemble contenant
M0 et fermé pour la relation de franchissement
M0∈ [M 0]
M ∈ [M 0] et M(t>M’ ⇒ M’∈ [M 0]
36. Ensemble des marquages
accessibles
• Un marquage M : P → N est noté entre < et >
par les noms des places pi
µ de marquage
M(pi) = µ > 0
• Exemple < p2 , p5
2, p6 > représente le
marquage
– M(p2) = M(p6) = 1 M(p5) = 2 et
– M( pj ) = 0 pour j ≠ 2, 5, 6
Graphe des marquages
accessibles
• G = < [M0] ; R>
– [M0] Ensemble des marquages accessibles
– R Ensemble des relations de franchissement
défini par
∀ M, M’ ∈ [M0] ∃ t M(t>M’ ⇒ M(t>M’ ∈ R
G est connexe
Les éléments de R sont en général étiquetés par les
transitions t de la relation
• Ge = < [M0] ; R ; E > graphe étiqueté
– E : R T Etiquetage de R par T
37. Graphe des marquages
accessibles étiqueté
• Construction G = < [M0] ; R ; E >
EMA = Ø ; EMT = {M0} ;
tant que EMT ≠ Ø faire
{ EMA = EMA ∪ EMT ; ENM = Ø ;
pour tout M ∈ EMT faire
{ pour tout t, M’ tels que M(t>M’ faire
{ si ∃ M’’ ∈ EMA tel que M’ > M’’ alors ALERTE ;
si M’ ∉EMA alors ENM = ENM ∪ {M’} ;
R = R ∪ (M, M’) ; E (M, M’) = t } }
EMT = ENM }
Graphe des marquages
accessibles
<A1,B1> <A2,DC,B1> <A2,CC,B2>
<A3,B2>
<A2,CC,DDB,B3>
<A4,DDA,B2>
<A3,DDB,B3>
<A4,CDA,B1>
<A1,CDB,B3>
<A4,DDA,DDB,B3>
<A1,DDA,B3>
<A4,DDB,B1>
<A2,DC,DDA,B3>
38. Graphe des marquages
accessibles
• Propriétés
– Il permet de voir toute la chronologie du
fonctionnement du réseau de Petri
les interblocages (deadlocks)
tous les états accessibles
toutes les transitions franchissables
tous les chemins partant de l’état initial
et cætera …
oui … mais …
Graphe des marquages
accessibles
• Il peut être infini
– Exemple
P
Q
R
t
< P >
u
39. Graphe des marquages
accessibles
• Il peut être infini
– Exemple
P
R
t
< P >
< Q, R >
u
t
Q
Graphe des marquages
accessibles
• Il peut être infini
– Exemple
P
R
t
< P >
< Q, R >
u
< P, R >
t u
Q
40. Graphe des marquages
accessibles
• Il peut être infini
– Exemple
P
R
t
< P >
< Q, R >
u
< P, R >
< Q, R2 >t
u t
Q
Graphe des marquages
accessibles
• Il peut être infini
– Exemple
P
R
t
< P >
< Q, R >
u
< P, R >
< Q, R2 >t
u t
Q
<P,R2>
u <Q,Rn>
<P,Rn>
41. Graphe des marquages
accessibles
• Complexité
– Quand ce graphe est fini, la complexité de sa
construction est non primitive récursive
Un problème est primitif récursif s’il peut être résolu
par un algorithme ne comportant que des itérations
bornées (boucles for )
Un problème non primitif récursif est de complexité
inconnue, non bornée !
Graphe des marquages
accessibles
• Scénario de la preuve
– On définit une fonction f par
f0 (x) = 2 . x
fi+1 (x) = fi
x (x) composition x fois de fi
f : x → fx (x)
– On montre que f est non primitive récursive
– On construit une suite de réseaux de Petri Ri dont un
marquage peut prendre la valeur fi (i)
Il est déraisonnable de vouloir construire
systématiquement le graphe des marquages accessibles
42. Analyse du fonctionnement des
réseaux de Petri
• Diagnostic
– Le graphe des marquages accessibles donne toutes les
propriétés du fonctionnement d’un réseau de Petri
– Le graphe des marquages accessibles est en général
trop complexe pour pouvoir être construit
• Pronostic
– Développement d’outils d’analyse évitant d’avoir à
construire le graphe des marquages accessibles
Réseaux bornés
• Une place p ∈ P est bornée ssi
∃ b ∈ N M(p) ≤ b
• Un réseau de Petri est borné ssi
∀ p ∈ P p est bornée
pour b = 1 le réseau est dit sain
• Théorème : un réseau de Petri est borné ssi
son graphe de marquages accessibles est fini
43. Réseaux vivants
• Quasi-vivacité
– Une transition t d’un réseau de Petri marqué R(M0)
est quasi vivante ssi
∃ M ∈ [M0] M(t>
on peut trouver un marquage accessible à partir duquel
t est franchissable
– Un réseau de Petri R(M0) est quasi vivant ssi
∀ t ∈ T t est quasi vivante
Réseaux vivants
• Pseudo vivacité
– Un marquage M est pseudo vivant ssi
∃ t ∈ T M(t>
On peut trouver une transition franchissable à partir de
ce marquage
– Un réseau de Petri R(M0) est pseudo vivant ssi
∀ M ∈ [M0] M est pseudo vivant
44. Réseaux vivants
• Vivacité
– Une transition t est vivante pour un marquage M ssi
∀ M’ ∈ [M] ∃ M’’ ∈ [M’] M’’(t>
Pour tout marquage accessible à partir de M t est quasi
vivante
– Un réseau de Petri R(M0) est vivant ssi
∀ t ∈ T t est vivante pour M0
Un réseau de Petri R(M0) est vivant ssi
∀ M ∈ [M0] R(M) est quasi vivant
Etat d’accueil &
réinitialisabilité
• M est un état d’accueil pour M0 ssi
∀ M’ ∈ [M0] M ∈ [M’]
il est toujours possible d’atteindre l’état
d’accueil de tout état accessible à partir de
l’état initial
• Un réseau de Petri est ré-initialisable ssi M0 est
un état d’accueil
45. II.3
Algèbre linéaire
Séquence de franchissements
• s = ti1, ti2,…tiq ∈ T* est une séquence de
franchissements pour un marquage M0 donnant
Mq noté M0 (s> Mq ssi
Définition récursive
• s = λ (mot vide) et Mq = M0
• s = s’t s’ ∈ T* t ∈ T M0 (s’> Mq-1 et Mq-1 (t> Mq
Définition itérative
• M0 (ti1> M1 (ti2> M2 … Mq-1 (tiq> Mq
46. Séquence de franchissements
• Relations entre marquages
s = ti1, ti2,…tiq franchissable pour M0 ⇒ ∀p ∈ P
M1(p) = M0(p) - Pre(p,ti1) + Post(p,ti1)
M2(p) = M1(p) - Pre(p,ti2) + Post(p,ti2)
……
Mq(p) = Mq-1(p) - Pre(p,tiq) + Post(p,tiq)
en appelant σi le nombre d’occurrences de ti dans s
Mq (p) = M0(p) + !i (Post(p,ti ) " Pre(p,ti))
i=1
m
#
Séquence de franchissements
• ATTENTION !
L’équation précédente, qui a l’avantage important
d’exprimer le marquage final d’une séquence de
franchissements s en fonction de son marquage initial
n’a de sens que si s est franchissable
Il faut donc que ∀ k = 0, 2, …q-1 toutes les relations
Mk (ti(k+1)> soient vraies
47. Représentation matricielle
• < P, T ; Pre, Post, M >
|P| = n
|T| = m
Pre : P x T → N
Post : P x T → N
M : P → N
peuvent être représentées
par des matrices
peut être représenté par un vecteur
Représentation matricielle
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Pre a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
1 0 0 0 0 0
0 0 0 0 0 1
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
!
"
#
#
#
#
#
#
#
#
#
#
$
%
&
&
&
&
&
&
&
&
&
&
49. Représentation matricielle
• Réseau pur
∀p ∈ P ∀ t ∈ T Pre (p,t) x Post (p,t) = 0
aucune place ne peut être entrée et sortie d’une transition
indépendance de l’ajout et du retrait de jetons lors des
franchissements
Représentation matricielle
• Matrice d’incidence ou de connexion
C (p,t) = Post (p,t) - Pre (p,t)
pour un réseau pur, la matrice C permet de construire
de façon unique les matrices Post et Pre
Pre (p,t) = max (0, - C(p,t) )
Post (p,t) = max (0, C(p,t) )
un réseau de Petri pur est totalement défini par C
50. Représentation matricielle
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
C a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
!1 0 1 0 0 0
1 !1 0 0 0 0
0 1 !1 0 0 0
!1 0 0 0 1 0
0 1 0 0 0 !1
0 0 0 !1 1 0
0 0 0 0 !1 1
0 0 0 1 0 !1
"
#
$
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
'
Equation fondamentale
∀ M ∈ [M0] ∀ s ∈ T * telle que M0 (s> M
M(p) = M0(p) + C (p,ti) • !i
i=1
m
"
σ= (σ1, σ2,… σm) peut être représenté par un vecteur
appelé vecteur caractéristique de s
M = M0 + C • !
est appelée équation fondamentale
σi = nombre d’occurrences de ti dans s ⇒
∀p ∈ P
51. Semi flots de transitions
• Séquence répétitive
s répétitive pour M ssi M (s> M
les marquages initial et final de s sont identiques
σ vecteur caractéristique de s
M = M + C σ ⇒ C σ = 0
Toute séquence répétitive s a son vecteur caractéristique σ
solution de C σ = 0
Semi flots de transitions
• La réciproque est fausse : toute solution de C σ
= 0 n’est pas le vecteur caractéristique d’une
séquence répétitive
il faut que ∀i σi ∈ N
il faut que s soit franchissable pour M
• Les solutions de C σ = 0 pour σi ∈ N sont
appelées des semi flots de transitions
les flots (plus difficiles à interpréter) sont les solutions
de C σ = 0 pour σi ∈ Z
52. Semi flots de transitions
• L’équation C σ = 0 pour σi ∈ N est une
équation linéaire homogène en nombres entiers
– hormis la solution triviale sans intérêt σ = 0 toute
combinaison linéaire de solutions est aussi une solution
– une famille génératrice {σ, σ’, σ’’, …}est un ensemble
de solutions tel que toute solution peut s’exprimer
comme une combinaison linéaire de cette famille
– une plus petite famille génératrice ppfg est une famille
de cardinal minimal
– il est donc nécessaire et suffisant de trouver une ppfg
Analogie avec une base en algèbre linéaire
Semi flots de transitions
• Utilisation des semi flots de transitions :
– on calcule une ppfg de solutions de C σ = 0 pour
σi ∈ N
les méthodes de résolution sont inspirées de l’algèbre
linéaire, de la programmation en nombres entiers et des
méthodes d’élimination de Gauss et Farkas
– on recherche dans ces solutions les séquences
répétitives s pour un marquage M (en général
M0), dont les vecteurs caractéristiques sont les
solutions trouvées
Gyula Farkas
(1847-1930)
Carl Friedrich Gauss
(1777-1855)
53. Semi flots de places
E1
a0
a1
partie du réseau de Petri issu de l’exemple
la transition a0 absorbe 2 jetons et n’en
restitue qu’un seul dans la place E1
Semi flots de places
E1
a0
a1
la transition a1 absorbe 1 jeton de la
place E1 et restitue 2 jetons
54. Semi flots de places
E1
a0
a1
pour que les jetons se « conservent »
tout se passe comme si le jeton de la
place E1 « pesait » 2 fois plus
« lourd » que les autres
Semi flots de places
• On définit une application ϕ : P → N exprimant l’idée
de « poids » d’un jeton dans une place
• On peut exprimer l’idée de « conservation » de jetons
ainsi pondérés, par l’invariance du produit scalaire
ϕ . M = ϕ . M0 ∀ M ∈ [M0]
• Dans l’exemple précédent, pour ϕ (E1) = 2 et ϕ (p) = 1
pour p ≠ E1, le franchissement de la transition a0 ou
a1 conserve la quantité ϕ . M = 2
55. Semi flots de places
• Calcul des valeurs de ϕ :
∀ M ∈ [M0] ∀ s ∈ T* M0 (s> M
σ vecteur caractéristique de s
M = M0 + C • !
ϕ . M = ϕ . M0 ⇔ ϕ . C = 0
pour qu’une pondération ϕ permette une
conservation pondérée de tout marquage accessible M
il faut et il suffit que ϕ soit solution dans N de ϕ . C = 0
Semi flots de places
• Les solutions de ϕ C = 0 pour ϕi ∈ N sont
appelées des semi flots de places
les flots (plus difficiles à interpréter) sont les solutions
de ϕ C = 0 pour ϕi ∈ Z
• Comme pour les semi flots de transitions,
l’équation ϕ C = 0 pour ϕi ∈ N est une équation
linéaire homogène en nombres entiers
Il est donc nécessaire et suffisant de trouver une plus
ppfm de solutions
56. Semi flots de places
• Invariants
– les quantités ϕ M = ϕ M0 pour ϕi ∈ N sont appelés des
invariants
• Supports
– un support de ϕ, noté ||ϕ|| = { p∈ P | ϕ (p) > 0 }
• Couvertures
– les solutions strictement positives ϕ telles que ∀ p ∈ P
ϕ(p) > 0 sont appelées des couvertures
Semi flots de places
• Théorème
– Un réseau de Petri admettant une couverture ϕ est
structurellement borné
• Preuve
ϕ Couverture ⇒ ∀ M ∈ [M0] ϕ.M = ϕ.M0
et ∀ p ∈ P ϕ(p) > 0
⇒ ∀ p ∈ P ϕ(p).M(p) ≤ ϕ.M0
⇒ ∀ p ∈ P M(p) ≤ (ϕ.M0) / ϕ(p)
57. II.4
Langages engendrés
Normes de Keller
• ν : M → N
• Propriétés
∃ Ma ∈ [M0] ν (M) = 0 ⇔ M = Ma
∀ M ∈ [M0] M ≠ Ma ∃ M’ ∈ [M0] s ∈ T* M (s> M’
ν (M’) < ν (M)
• Théorème de Keller
s’il existe une norme de Keller, Ma est un état d’accueil
Robert M. Keller
58. Normes de Keller
• Preuve
– Lemme de Fermat
• Toute suite décroissante d’entiers est finie
∀ M ∈ [M0] ∃ M1, M2, … ∈ [M0]
∃ s1, s2, … ∈ T* M (s1> M1(s2> M2 …
ν (M) > ν (M1) > ν (M2) …
cette suite est finie ⇒ son dernier terme est tel que
ν (Mf) = 0 ⇒ Mf = Ma
⇒ Ma est un état d’accueil
Pierre Simon de Fermat
(1601 - 1665)
Normes de Keller
• Théorème
Si le marquage initial est un marquage d’accueil et
si le réseau est quasi-vivant
alors le réseau est vivant
– Preuve
∀ M ∈[M0] M0 ∈[M] et ∀ t ∈ T M0(t>
donc
∀ t ∈ T ∀ M ∈[M0] M0(t>
59. Langage de places
• Vocabulaire P
• Verbalisation µ : M → P*
µ (M) = p1
M(p1) p2
M(p2) …pn
M(pn)
Exemple M = < u , v2, w > µ (M) = u v2 w
• Grammaire < P ; Q >
Q : ensemble de m règles de réécriture
ti : µ (Pre (.,ti) → µ (Post (.,ti))
réécriture du sous mot µ (Pre (.,ti) par µ (Post (.,ti))
• Axiome µ(M0)
Langage de places
• Exemple
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
60. Langage de places
• Exemple
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4
L x5y
a
Langage de places
• Exemple
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
a
b
61. Langage de places
• Exemple
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
a
b
a
c
Langage de places
• Exemple
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3
a
b
b
a
c
62. Langage de places
• Exemple
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3 xy5
a
b
b b
a
c
Langage de places
• Exemple
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3 xy5 x6
a
b
c
b b c
63. Langage de places
• Exemple
x
y
a b c
5
2
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3 xy5 x6
a
b
b b c
a
c
Langage de places
• Propriété
– Le langage de places d’un réseau de Petri est isomorphe
à l’ensemble des marquages accessibles
64. Langages de transitions
• Vocabulaire T
• Langages possibles
L (M0, M) = { s ∈ T* | M0 (s> M }
ensemble de toutes les séquences franchissables de M0
à M
L (M0, Mf) = { s ∈ T* ∀ M ∈ Mf | M0 (s> M }
ensemble de toutes les séquences franchissables de M0
à tout marquage de l’ensemble terminal Mf
Langages de transitions
étiquetées
• Vocabulaire V
• Etiquetage e : T → V*
extension « naturelle » e : T* → V*
s ∈ T* si s = λ ⇒ e(s) = λ
t ∈ T sinon s = s’t ⇒ e(s) = e(s’) e(t)
• Langage de transitions étiquetées
L (M0, M, e) = e ( L (M0, M) )
65. Langages de transitions
x
y
a b c
2
5
2 5
3
3 1
5
Exemples
L (M0, M0) = (a b c)*
L (M0, [M0]) = λ + a + a b +
(a b c)* + b (b + b c + (b c a)*)
Ces langages caractérisent toutes les
suites d’actions possibles (transitions) du
système que le réseau de Petri modélise
Langages de transitions
• Propriétés
[M0] est fini ⇒ ∀ M ∈ [M0] ou ∀ M ⊆ [M0] L(M0, M) sont des
langages réguliers
Preuve
G = < [M0] , R>
le graphe des marquages accessibles peut être considéré comme
un automate d’états finis
Le langage L(M0, M0) d’un réseau de Petri est constitué de toutes les
séquences répétitives s telles que M0 (s> M0
66. Puissance des langages de
transitions étiquetées
a
a
b
b
P Q
Le (<P>,<Q>) = { anbn | n>0 }
Le est un langage algébrique
ce n’est pas un langage régulier
a
a
b
b
P R
c
c
Le’ (<P>,<R>) = { anbncn | n>0 }
Le’ est un langage contextuel
ce n’est pas un langage algébrique
Puissance des langages de
transitions étiquetées
• Limite
w wR (palindrome) n’est pas un langage de transition
étiquetée
• Preuve principe
w ∈ V* r = |w| ⇒ kr marquages accessibles distincts
on montre qu’il est impossible de générer kr marquages
distincts pour une séquence de franchissements de
longueur r
on montre aussi que tout langage de transitions
étiquetées est contextuel
67. Puissance des langages de
transitions étiquetées
Hierarchie de Chomsky
réguliers
récursifs
contextuels
algébriques transitions
étiquetées
Langages de Réseaux de Petri
wwR
anbn
anbncn
Noam Chomsky
(1926)
68. II.5
Problèmes et
extensions
Problèmes indécidables
• Egalité ou inclusion d’ensembles des
marquages accessibles
R1 = < P, T1 ; Pre1, Post1 ; M01 >
R2 = < P, T2 ; Pre2, Post2 ; M02 >
[M02] = [M01] et [M02] ⊆ [M01]
– Preuve
• Le 10ième problème de Hilbert (solution des équations
diophantiennes) est réductible à chacun de ces problèmes.
• Il a été montré indécidable par Матиясевич en 1970
David Hilbert
(1862 - 1943)
Матиясевич Юрий
Владимирович
(1947)
69. Problèmes indécidables
• Retrait d’une transition
R = < P, T ; Pre, Post ; M0 > t ∈ T
R’ = < P, T{t} ; Pre’, Post’ ; M0 >
R’ est construit à partir de R en retirant une transition t
et les arcs Pre et Post de t
[M0] de R’≠ [M0] de R
aucun algorithme ne peut tester si une modification des
transitions modifie l’ensemble des marquages
accessibles
Problèmes indécidables
• Sous ensemble de transitions non franchissables
R = < P, T ; Pre, Post ; M0 > T’ ⊆ T
M0 (u> ∀ v ⊆ u M0(v> M ⇒ ∀ t ∈ T’ ¬ M(t>
– Preuve
• L’arrêt de la machine de Minsky est réductible au problème
précédent
• Minsky a démontré que l’arrêt de sa machine est indécidable
Marvin Minsky
(1927)
70. Problèmes décidables
• Accessibilité de M à M’
∃ s ∈ T* M (s> M’
• Bornage
< P, T ; Pre, Post ; M0 > borné
• Vivacité
< P, T ; Pre, Post ; M0 > vivant
• Etat d’accueil
Ma état d’accueil pour < P, T ; Pre, Post ; M0 >
Complexité
• Les problèmes décidables précédents sont de grande
complexité *
• Il est donc nécessaire de développer des heuristiques
• Les méthodes usuelles utilisent des conditions
suffisantes (mais en général non nécessaires) pour
établir certaines propriétés
• La recherche d’invariants permet de restreindre
l’ensemble des possibilités
* Le problème de l’accessibilité a été démontré primitif récursif en
Avril 1998 par Zakariae Bouziane
ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-3404.pdf
71. Techniques d’analyse
• Principe
pour montrer que ∀ M ∈ [M0] P (M) sans construire [M0] :
on recherche les semi flots de places et de transitions
on en déduit des invariants linéaires qui sont des propriétés Q vraies
pour [M0]
∀ M ∈ [M0] Q (M)
il reste à montrer que ∀ M ∈ [M0] Q(M) ⇒ P(M)
on déduit que ∀ M ∈ [M0] P (M)
Techniques d’analyse
• si les invariants linéaires sont insuffisants on
cherche d’autres invariants par induction
• pour montrer que ∀ M ∈ [M0] P (M) on
montre que :
P (M0)
∀ M, M’ ∈ [M0] ∀ t ∈ T M (t> M’ P (M) ⇒ P (M’)
on induit que ∀ M ∈ [M0] P (M)
72. Techniques d’analyse
• Il est souvent difficile de démontrer
directement que ∀ M ∈ [M0] P (M)
• On procède alors par étapes
si l’on sait que ∀ M ∈ [M0] Q (M)
on définit [M0]Q = { M | M0 ∈ [M0]Q Q(M) }
on déduit que [M0] ⊆ [M0]Q
on montre que ∀ M ∈ [M0]Q P (M)
on déduit que ∀ M ∈ [M0] P (M)
Techniques d’analyse
M0 x
[M0] [M0]Q = { M | M0 ∈ [M0]Q Q(M) }
P
Q
[M0]Q est plus « facile » à caractériser que [M0]
73. Techniques d’analyse
• Bornage
– on recherche une couverture de semi flots de places
– on en déduit directement que le réseau de Petri est
borné
– on déduit aussi une borne pour chaque place
– on déduit aussi des invariants linéaires Q
– on déduit [M0]Q
Techniques d’analyse
• Etat d’accueil Ma
on recherche une norme de Keller pour Ma dans [M0]Q
• Vivacité d’une transition t
on recherche M et s tels que Ma (s> M (t>
• Vivacité du réseau de Petri
on montre la vivacité de chaque transition t
74. Monotonie
• P monotone ssi ∀ M, M’ ∈ [M0] M ≤ M’ ⇒
( P (M) ⇒ P (M’) )
une propriété monotone reste vraie quand le marquage
croit
– La franchissabilité et le franchissement sont
monotones
∀ M1, M’1 ∈ [M0] M1 ≤ M’1 ⇒ ( M1 (s> ⇒ M’1 (s> et
M1 (s> M2 ⇒ M’1 (s> M’2 avec M2 ≤ M’2
Monotonie
• La pseudo vivacité n’est pas monotone
• La quasi vivacité est monotone
• La vivacite n’est pas monotone
• L’existence d’un état d’accueil n’est pas
monotone
• Le bornage est monotone
75. Limites
Un réseau de Petri n’est pas un modèle de calcul
• Preuve
– on peut simuler le fonctionnement d’un réseau de Petri
par une machine de Minsky
– la machine de Minsky est un modèle de calcul
– pour la machine de Minsky l’accessibilité est
indécidable
– pour un réseau de Petri l’accessibilité est décidable
Limites
• Conséquences
– Il n’est pas possible de « tester » que M(p) = 0 pour une
place p ∈ P
• Preuve
si on pouvait le faire, on pourrait simuler une machine de Minsky
par un réseau de Petri
– Il n’est pas possible de définir des « priorités » entre
transitions franchissables
• Preuve
si on pouvait le faire on pourrait faire le test à 0
76. Constructions
• Union de réseaux de Petri
R1 = < P1 , T1 ; Pre1 , Post1 ; M10 >
R2 = < P2 , T2 ; Pre2 , Post2 ; M20 >
R = < P , T ; Pre , Post ; M0 >
P = P1 ∪ P2 T = T1 ∪ T2 M0 = M01 ∪ M02
Pre = Pre1 ∪ Pre2 Post = Post1 ∪ Post2
– mise en commun de transitions T1 ∩ T2 ≠ ∅
– mise en commun de places P1 ∩ P2 ≠ ∅
en général R n’hérite d’aucune propriété (bornage,
vivacité, …) de R1 ou de R2
Constructions
• Réductions
– Il est possible de définir des règles de suppression de
places ou de transitions qui conservent certaines
propriétés telles que bornage ou vivacité
77. Extensions
• Deux types
– il est possible de définir un isomorphisme entre un
réseau de Petri étendu et un réseau de Petri
l’extension est en général une abréviation
tout résultat (propriété, théorème ou décidabilité ) est conservé
– il est impossible de définir un isomorphisme
l’extension a pour objectif d’augmenter la puissance du
modèle, éventuellement vers un modèle de calcul
l’extension diminue les possibilités de preuve
aucun résultat n’est conservé
Extensions
• isomorphes à un réseau de Petri
– Réseaux de Petri colorés
C = {c1, c2,…ck } ensemble de couleurs
M : P → { C → N } chaque place contient des jetons
colorés
• Exemple
les fonctions Pre et
Post doivent aussi
être « colorées »
C = {r, v, b }
M(p) (r) = 3
M(p) (v) = 2
M(p) (b) = 2
78. Extensions
– Réseaux de Petri à prédicats
P = { π1, π2, …πn } πi = { pi1, pi2,…pin }
T = { τ1, τ2, … τn } τi = { ti1, ti2,…tim }
chaque place πi est un ensemble de places
chaque transition ti est un ensemble des transitions
les fonctions Pre et Post sont étiquetées par des prédicats
portant sur les ensembles P et T
Extensions
• Non isomorphes à un réseau de Petri
– Arcs inhibiteurs
t est franchissable
ssi M (p) = 0
un réseau de Petri avec arcs inhibiteurs est un modèle de
calcul
– Numériques
M : P → Z un jeton peut être négatif
un réseau de Petri numérique est un modèle de calcul
p t
79. Extensions
– Réseaux de Petri temporisés
• transitions temporisées
– on associe à chaque transition une durée définie par un intervalle
de temps
• places temporisées
– on associe à chaque place une durée définie par un intervalle de
temps
– Réseaux de Petri à files
• une place est une file (en général FIFO)
Extensions
– Réseaux de Petri interprétés
• on associe à chaque transition t un prédicat P(t)
• une transition est franchissable si et seulement si
M(t> et P(t)
• Exemple : Grafcet
80. II.6
Calcul des semi-flots
Équations linéaires homogènes
Calcul de X . A = 0 X ∈Nn A ∈Znxm
calcul du noyau de A
– Propriété
toute combinaison linéaire à coefficients dans N d’un
ensemble de solutions est une solution
!Xi "!n
!| Xi .A = 0!et!!#i "!!X = #i Xi !=!0
i
$ !
81. Notations
N+ = N {0}
ensemble des entiers strictement positifs
Q+ = {x ∈ Q | x ≥ 0}
ensemble des rationnels non négatifs
S = {X ∈ (N+)n | X . A = 0}
Noyau de l’application
S est soit vide, soit infini
Famille génératrice
Ensemble de solutions tel que toute solution est une combinaison
linéaire des éléments de cet ensemble
les coefficients λ peuvent être fractionnaires, mais les solutions X
doivent toujours être entières
• Support
Ensemble des coordonnées positives d’un vecteur
! = {X1, X2,!Xp |!"X #!S!$%1,%2,!%p #"+
!X = %i Xi !}!
i=1
p
&
X = (x1,x2,!xn )!! X = {xi | xi > 0}!
82. Propriété d’une FG
– Théorème
• Preuve
– condition suffisante P ⇒ Q
!!est!une!FG!ssi!"X #S!$X ' #!!|! X ' % X !
!!!FG!"!#X $S!X = %i Xi !"!#i X & Xi !
i
'
– condition nécessaire Q ⇒ P
pour cela il faut que λ.X ≥ λ’X’ et que ∃ xk | λxk = λ’x’k
ce qui permet d’annuler la coordonnée x’’k de X’’
les valeurs de λ et λ’ s’écrivent alors
et
X !S! peut!s'écrire!"X = "'X '+ X ''!
avec!X ' !#!,!X '' !S!et X '' $ X !
! = x'i
x 'i " X '
# ! !' = min
xi " X
!(xi . x'j
x 'j " X ' {x 'i }
# !)!
=
λX = λ’X’ + X’’
83. preuve
∃k λxk = λ’x’k
∀h λxh ≥ λ’x’h
soit!k!|!!' = xk . x'j
x 'j " X ' {x 'k }
# !alors!
!xk = x'i
x 'i " X '
# .!xk !=!xk . x'j
x 'j " X ' {x 'k }
# .!x'k !=!!'x'k !
!xh = x'i
x 'i " X '
# .!xh != xh. x'j
x 'j " X ' {x 'h }
# .!x'h !$ !'x'h !
λ’
≥λ’
en itérant le processus :
on obtient la suite :
qui est finie puisque les supports des Xi sont décroissants
donc en itérant jusqu’à ||Xn+1|| = ∅
C.Q.F.D.
!0 X0 = !'0 X '0 + X1 !avec!X '0 "#!,!X1 "S!et X1 $ X0 !
!i Xi = !'i X 'i + Xi+1 !avec!X 'i "#!,!Xi+1 "S!et Xi+1 $ Xi !
X0 = !j Xj !
j=1
n
" ,!!j #!+
!,!Xj #$!
84. Plus petite famille génératrice
– Définition
une PPFG est une FG de cardinal minimum
– Propriété
aucun élément d’une PPFG n’est une combinaison
linéaire des autres éléments
• Preuve : si on retire un élément Xi on n’a plus une FG
! = {X1, X2,!Xp}!FG!telle!que!"Xi #!!! {Xi }!n'est! pas!une!FG!
!!PPFG!ssi!!!FG!et!"Xi #!!et!"$j #!+
!Xi % $i Xj !
j%i
&
– Théorème
Les supports des éléments de Ξ ne sont pas comparables
• preuve (ad absurdum)
• condition suffisante ¬Q ⇒ ¬P
• condition nécessaire ¬P ⇒ ¬Q
!!est!une!PPFG!ssi!!!est!une!FG!et!
!!!!"Xi , Xj #!!i $ j! Xi % Xj !!et! Xi $ Xj !
!Xi , Xj "#!i $ j! Xi % Xj & # {Xj }!est!une!FG & #!n'est! pas!une!PPFG!
!!n'est! pas!une!PPFG " #X $!!X = %i Xi !et!&i! Xi
i
' ( X !
85. PPFG du Noyau de A
• Propriétés de A
– l’ensemble des lignes de A est une FG de l’image de A
il est donc possible d’ajouter à A une ligne combinaison linéaire
des autres lignes
– l’ensemble des lignes de non nulles de A est une FG de
l’image non nulle de A
l’ensemble Ξ des combinaisons linéaires conduisant à des lignes
nulles de A est une FG du noyau de A
le sous-ensemble Ξ’ de Ξ ne contenant que les
combinaisons linéaires de support minimal est une PPFG du
noyau de A
Algorithme de Farkas
La PPFG est construite pas à pas, par colonnes de A (c.à.d. par
équation linéaire homogène, ou par coordonnée)
1. On cherche toutes les combinaisons linéaires de A telles que les
lignes de A soient nulles
2. On retire de A toutes les lignes non nulles
Les combinaisons linéaires restantes sont une FG du noyau de A
3. On retire de A toutes les lignes dont les combinaisons linéaires ont
un support inclus dans le support d’une autre combinaison linéaire
de A
Les combinaisons linéaires restantes sont une PPFG du noyau de A
Gyula Farkas
(1847-1930)
86. Recherche de X tel que X.A = 0
F = In ; -- In est la matrice unité de même dimension que X --
tant que A ≠∅ faire
{ choisir une colonne k de A ;
pour tout i,j tels que Aik > 0 et Ajk < 0 ajouter à A et à F la ligne
p telle que
{ Ap. = (Aik . Aj. - Ajk . Ai. ) / pgcd (Aik , - Ajk ) ;
Fp. = (Aik . Fj. - Ajk . Fi. ) / pgcd (Aik , - Ajk ) }
pour tout i tel que Aik ≠ 0 supprimer de A et F la ligne i ;
pour tout i,j tels que ||Fi.|| ⊆ ||Fj.|| supprimer de A et F la ligne j ;
supprimer de A toutes les colonnes nulles }
Les lignes de F sont une ppfg de semi-flots
Exemple : semi-flots de places
C !!!a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
!1 0 1 0 0 0
1 !1 0 0 0 0
0 1 !1 0 0 0
!1 0 0 0 1 0
0 1 0 0 0 !1
0 0 0 !1 1 0
0 0 0 0 !1 1
0 0 0 1 0 !1
"
#
$
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
'
CR
M
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
91. Ingénierie des
protocoles
TD & Annales d’examens
Université Montpellier II
Faculté des Sciences
Département Informatique
Master
Richard G. TERRAT
92.
93. TD N° 1
Philosophie et Gastronomie
Edsger Wybe Dijkstra
(1930-2002)
Cinq amis, philosophes et gastronomes, se réunissent dans une trattoria napolitaine.
L’établissement ne propose que des spaghetti.
Ils s’installent autour d’une table ronde de 5 places où sont déposés 5 assiettes et 5 fourchettes,
situées chacune entre chaque assiette.
On sait bien que pour déguster des spaghetti, deux fourchettes sont nécessaires.
Les philosophes-gastronomes vont donc se les partager ainsi :
Chacun alternera des phases de
- pensée pendant laquelle il ne se servira pas de ses fourchettes
- restauration pendant laquelle il mangera ses spaghetti en se servant des
fourchettes situées de part et d’autre de son assiette.
Question
Modéliser par un réseau de Petri le comportement des philosophes-gastronomes
N.B. Il s’agit évidemment d’une allégorie, proposée en 1971 par E.W. Dijstra, dans laquelle
les philosophes sont la métaphore de processus et les fourchettes celle de ressources.
Le problème est celui de partage de ressources par des processus.
94. Un protocole de transfert de données
Description du protocole
On se propose d’étudier la phase de transfert de données d’un protocole de transmission sur
une liaison bidirectionnelle alternée (half-duplex). On fait l’hypothèse que cette liaison est
sans pertes, mais avec possibilité d’erreurs détectables grâce à un code détecteur mais non
correcteur d’erreurs.
L’objectif de ce protocole est d’assurer la transmission correcte de données entre un
émetteur E et un récepteur R via une liaison L d’une suite de messages Mk (k ∈ N) sans
perte ni duplication. La valeur de k ne fait pas partie du message transmis (à cause du fait
qu’elle n’est pas bornée).
L’émetteur E émet des messages qui peuvent être soit :
reconnus et acceptés par le récepteur R
perturbés et transformés en messages d’erreur X reconnus comme tels par le récepteur R
Le récepteur R émet, sur réception d’un message valide M, un accusé de réception positif
ACK et sur réception d’un message invalide X un accusé de réception négatif NAK
ACK ou NAK peuvent être soit :
reconnus et reçus par l’émetteur E
perturbés et transformés en messages d’erreur Y reconnus comme tels par l’émetteur E
Fonctionnement du protocole
Émetteur E
À l’instant initial E est à l’état repos
Dans l’état repos E peut envoyer un nouveau message M
Il passe alors dans l’état attente
Dans l’état attente, si E reçoit :
ACK il retourne à l’état repos
NAK ou Y il passe dans l’état réémission
Dans l’état réémission E peut réémettre le message M
Il retourne alors à l’état attente
Récepteur R
À l’instant initial R est à l’état repos
Dans l’état repos si R reçoit :
un message valide M, il accepte le message et passe dans l’état accepté
un message invalide X, il passe dans l’état refusé
Dans l’état accepté, R peut envoyer un ACK
Il retourne alors à l’état repos
Dans l’état refusé, R peut envoyer un NAK
Il retourne alors à l’état repos
Ligne L
L peut, à tout instant, perturber un message M en le transformant en X ou perturber un
ACK ou NAK en le transformant en Y
95. TD N°2
1. Modéliser ce protocole par un réseau de Petri
2. Tracer le graphe des marquages accessibles
3. Soit a la transition correspondant à l’envoi d’un nouveau message M et b celle
correspondant à la réception d’un message correct. Montrer que
∃ w ∈ L tel que |a|w |b|w
où |u|w désigne le nombre d’occurrences de la lettre u dans le mot w.
4. Ajouter au réseau de Petri précédent 2 places I et J telles que :
Post (I,a) = 1 ∀ t ∈ T t ≠ a, Post (I,t) = 0 et ∀ t ∈ T Pre (I,t) = 0
Post (J,b) = 1 ∀ t ∈ T t ≠ b, Post (J,t) = 0 et ∀ t ∈ T Pre (J,t) = 0
Montrer que l’on peut avoir m(J) m(I)
En déduire que le protocole est incorrect.
TD N°3
5. Construire la matrice de connexion C de ce réseau
6. Trouver les semi-flots de transitions. En déduire toutes les séquences répétitives issues
du marquage initial.
7. Trouver les semi-flots de places. En déduire que le réseau de Petri est borné. Compte
tenu de son marquage initial, quelles sont les bornes de chacune des places ?
8. En étiquetant toutes les transitions, donner une expression régulière du langage
L(M0,,M0) engendré par le réseau de Petri.
TD N° 4
9. Trouver une norme permettant de prouver que le réseau est réinitialisable.
10. Monter que le réseau est sans blocage.
11. Montrer que le réseau est vivant.
12. Vérifier tous les résultats trouvés sur le graphe des marquages accessibles
96. TD N°5
Une tentative d’amélioration du protocole « naïf » de transfert de données
Description
On se propose d’améliorer le protocole précédent ainsi :
On ajoute à chaque message transmis un bit ainsi défini :
0 : il s’agit de la première émission de ce message (envoi initial)
1 : il s’agit d’une réémission de ce message
Étude
Établir un nouveau protocole sur cette base.
Faire un modèle de ce protocole par un réseau de Petri .
En déduire les propriétés de ce nouveau protocole.
97. TD N°6
Le protocole du bit alterné
Description
On se propose d’améliorer le protocole « naïf »
On ajoute à chaque message à transmettre un bit ainsi défini :
0 : émission (ou réémission) d’un message de rang pair
1 : émission (ou réémission) d’un message de rang impair
! ce bit alterne à chaque réception d’un ACK dont le bit est différent de celui du dernier
message envoyé ; il y a ensuite émission initiale d’un nouveau message
! ce bit reste inchangé sur réception d’un ACK dont le bit est identique à celui du dernier
message envoyé ou sur réception d’un ACK en erreur ; il y a ensuite réémission du même
message
☞ il peut être vu comme une numérotation modulo 2 des messages émis
On modifie les accusés de réception ainsi :
On supprime le « NAK »
On ajoute un bit ainsi défini au « ACK » :
0 : invite à émettre (ou réémettre) un message de rang pair (donc accuse
implicitement réception du message précédemment correctement reçu de rang impair)
1 : invite à émettre (ou réémettre) un message de rang impair (donc accuse
implicitement réception du message précédemment correctement reçu de rang pair).
! ce bit alterne sur réception initiale correcte d’un nouveau message de la parité attendue
! ce bit reste inchangé sur réception d’un message de parité inverse de celle attendue ou
d’un message en erreur
☞ il peut être vu comme une numérotation modulo 2 des accusés de réception émis
A l’état initial les bits à ajouter aux messages ou aux « ACK » sont à 0.
L’initiateur de la communication peut aussi bien être l’émetteur que le récepteur ; s’il s’agit
du récepteur, le premier « ACK » envoyé est une simple invitation à émettre et n’accuse
évidemment réception d’aucun message.
Étude
Établir un nouveau protocole sur cette base.
Faire un modèle de ce protocole par un réseau de Petri .
En déduire les propriétés de ce nouveau protocole.
98.
99. Université Montpellier 2 Ingénierie des Protocoles
UFR des Sciences Mars 2006
Master Informatique Tous documents autorisés
Allocation de Circuits Virtuels
Sujet
On s’intéresse à un pico-réseau ayant l’architecture suivante :
A, B, D, E sont des sites terminaux
C1 et C2 sont des sites commutateurs
Les liaisons physiques sont représentées par les 6 arcs sur le schéma ci-dessus
On souhaite établir un maximum de 3 circuits virtuels CV entre
A et B (1 CV)
A et D (1 CV)
A et E (1 CV)
Pour ce faire il faut allouer une suite de voies logiques VL pour chaque CV
Or les commutateurs sont très frustes. Ils ne peuvent gérer qu’une seule VL par liaison
physique.
On ne peut donc établir à un instant donné que 2 CV au plus sur les 3 possibles.
On suppose que le site A est Maître de la gestion des VL , donc des CV
A
C
1
C
2
B D E
100. Questions
1. Représenter par un Réseau de PETRI simple et pur l’allocation et la libération de CV par le
site A
2. Représenter la matrice de Connexion C de ce Réseau de PETRI. Permet-elle de reconstituer
de façon unique le réseau de PETRI initial ? Expliquer pourquoi.
3. Rechercher les semi-flots et les invariants de places. En déduire que le réseau de PETRI est
sain .
Montrer que seuls 2 CV sur 3 peuvent être alloués.
4. Rechercher les invariants de transitions. En déduire quelles sont les séquences répétitives
possibles.
5. Rechercher une norme permettant de prouver que le marquage initial correspond à un état
d’accueil.
Directives
Il est (fortement) conseillé d’utiliser les éléments suivants :
Places Transitions
BL site B Libre ab Allocation du CV AB
DL site D Libre ad1 Allocation du CV AD via C1
EL site E Libre ad2 Allocation du CV AD via C2
C1L site C1 Libre ae Allocation du CV AE
C2L site C2 Libre
Ces places étant marquées quand les sites sont libres (« idle »)
AB CV AB alloué lb Libération du CV AB
AD1 CV AD alloué via C1 ld1 Libération du CV AD via C1
AD2 CV AD alloué via C2 ld2 Libération du CV AD via C2
AE CV AE alloué le Libération du CV AE
Ces places étant marquées quand les CV sont alloués
101. Université Montpellier 2 Ingénierie des Protocoles
UFR des Sciences Mars 2007
Master Informatique Tous documents autorisés
Un protocole de connexion-déconnexion
On se propose d’étudier un protocole (bien connu) de connexion-déconnexion décrit ci-après.
Pour ce protocole, on demande d’établir :
1. la matrice de connexion
2. les semi-flots de places
3. les semi-flots de transitions
4. une norme de Keller prouvant que l’état initial est un état d’accueil
et
5. d’en déduire que le réseau est borné et vivant
Description
Phase de connexion :
A l’état initial les 2 sites sont au repos
Le site A est l’appelant, le site B l’appelé
Le site A envoie un message de demande de connexion DC au site B puis attend sa réponse
Le site B, sur réception du message DC envoie un message de confirmation de connexion
CC puis passe directement dans l’état connecté
Le site A, sur réception du message CC passe dans l’état connecté
Phase de déconnexion :
La déconnexion peut être initiée aussi bien par le site A que par le site B
Le site initiateur connecté envoie à l’autre site un message de demande de déconnexion
DD puis attend sa réponse
Lorsqu’un site connecté reçoit un message DD, il répond par un message de
confirmation de déconnexion CD puis retourne à l’état de repos
Lorsqu’un site en attente de déconnexion reçoit un message CD ou DD il retourne à
l’état de repos
103. Université Montpellier 2 Ingénierie des Protocoles
UFR des Sciences Mars 2008
Master Informatique Tous documents autorisés
Validation à 2 Phases
Sujet
Le texte ci-dessous décrit le fonctionnement du protocole de validation à deux phases (two-step
commitment) utilisé pour maintenir la cohérence en tout-ou-rien d'un ensemble de transactions
réparties.
Une entité, appelée Maître gère un certain nombre de transactions interdépendantes, avec
d'autres entités appelées Esclaves. Lors de ces transactions, les modifications sont consignées
dans des journaux inaltérables, gérés sur chacune des entités.
A l'issue de la suite de transactions gérée sur l'entité Maître, celle-ci décide de valider les mises
à jour, c'est à dire de provoquer les écritures effectives sur les bases de données de chaque entité
(y compris elle-même). Si une seule entité (Maître ou Esclave) ne peut faire ces mises à jour,
pour cause de panne, toutes les entités doivent aussi renoncer à leurs propres mises à jour. La
suite de transactions est donc validée pour toutes les entités ou aucune (tout ou rien). Le but de
ce protocole est d'assurer cette propriété.
Le protocole simplifié
Dans une première phase, l'entité Maître diffuse à toutes les entités esclaves un message D de
demande de verrouillage. Elle attend alors les réponses de toutes les entités esclaves.
Sur réception de D, une entité esclave en fonctionnement normal :
1. Écrit sur son journal un message : W (Attente)
2. Envoie une reponse positive : R+
Sur réception de D, une entité esclave en panne, éventuellement via son entité de transport,
envoie une réponse négative : R-
Dans les deux cas, l'entité esclave attend ensuite un nouveau message de l'entité Maître.
Sur réception des réponses R de toutes les entités esclaves, l'entité Maître entre dans sa seconde
phase.
Si elle reçoit toutes les réponses R+ des entités esclaves, l'entité Maître :
1. Écrit sur son journal un message S (Succès)
2. Diffuse à toutes les entités esclaves un message C (Consolidation)
3. Effectue ses mises à jour et termine dans l'état Consolidé
Si elle reçoit au moins une réponse R- d'une entité esclave, l'entité Maître :
1. Écrit sur son journal un message P (Panne)
2. Diffuse à toutes les entités esclaves un message A (Abandon)
104. 3. Renonce à ses mises à jour et termine dans l'état Abandon
Sur réception d'un message C, une entité esclave effectue ses mises à jour et termine dans l'état
Consolidé
Sur réception d'un message A, une entité esclave renonce à ses mises à jour et termine dans l'état
Abandon
Les états Consolide et Abandon des entités Maître et Esclave sont des états terminaux. Il n’y
donc pas à « boucler » les processus pour revenir à l’état initial.
afin de modéliser l’existence d’autres entités esclaves (non représentées dans ce modèle et
qui peuvent éventuellement tomber en panne), on considèrera que lors de la transmission du
message R+ celui-ci peut se transformer en message R- (transition tr)
Questions
1. Construire la matrice de Connexion de ce modèle
2. Calculer les semi-flots de places et les invariants qui en découlent. En déduire que le réseau
est borné. Donner la borne de chaque place.
3. Montrer qu’il existe deux flots de places dont les supports contiennent les places
correspondant aux états Consolidé et Abandon des entités Maître et Esclave. En déduire deux
nouveaux invariants.
4. A partir des invariants issus des semi-flots et des flots de places, montrer que l’entité Esclave
ne peut terminer dans l’état Consolidé alors que l’entité Maître termine dans l’état Abandon de
même que l’entité Maître ne peut terminer dans l’état Consolidé alors que l’entité Esclave
termine dans l’état Abandon.
5. En s’inspirant de la norme de Keller, montrer que l’ensemble des 2 seuls états terminaux
possibles constitue un ensemble d’états d’accueil, c’est-à-dire que l’un ou l’autre de ces états
peut être atteint à partir de tout marquage extérieur à cet ensemble.
N.B. Sur le Réseau de Petri ci-joint :
les places
M4 et M5 représentent les états Consolidé et Abandon du Maître
E3 et E4 représentent les états Consolidé et Abandon de l’Esclave
les transitions
t4 représente l’écriture du message S et l’envoi du message C
t5 représente l’écriture du message P et l’envoi du message A
t7 représente l’écriture du message W et l’envoi du message R+
105. • •
M0
M1
M2 M3
M4 M5
D
R+
R-
C
A
E0
E1
E2
E3 E4
t1
t2
t3
t4
t5
t6
t7
t8
t9
tr