Académique Documents
Professionnel Documents
Culture Documents
Réseaux
de
!"
# $ % !!
!&
% !
Petri $ %
'!(
'&(
!
!
!
$ % !
!
!
&"
&!
&&
% '!( &
% '&( &
% '!( &
% '&( &
&
# &
# '!( &
# '&( "
P. Moreaux $ # !
&
##
##
Système Propriétés
description informelle énoncé informel
Introduction
Modélisation et vérification
Exemples de modélisation et RdP
synchronisation (pompistes)
ressource partagée
système de communication
système producteur - consommateur
Définition des RdP
syntaxe Modèle Formules
dynamique spécification formalisée expression formalisée
Ensemble et graphe d’accessibilité
Propriétés structurelles / d’accessibilité (comportementales)
Propriétés comportementales
bornitude
vivacité
état d’accueil
relations entre propriétés
Propriétés structurelles : invariants
équation fondamentale
flots et rythmes VÉRIFICATION
calculs de bases de flots et rythmes (Gauss)
semi-flots et semi-rythmes la spécification vérifie-t-elle
calculs de ppfg de semi-flots et semi-rythmes (Farkas) les formules ?
Réductions
Principes
Pré-agglomération
Post-agglomération
Place implicite
Exemple
NON OUI
r1
q1
e
a
r2 q1 r1
d q2 g
b c f b a d c
q3 r3 q2 r2
q1 r1
Libre
a
q1 r1
q2 r2
a c
b c f
q3 r3
q2 r2
d g b d
SYSTÈME DE SYSTÈME
COMMUNICATION PRODUCTEUR - CONSOMMATEUR
q1 r1
p1 p5
b a d c
q2 r2
t1 t5
p3 p7 r1
q1
t3 t7
a c
p10
m
p4 p8 q2 r2
t4 t8
b d
Séquence de franchissements
Réseau de Petri marqué (ou système): S = (R,M0) s = t1, t2, ..., tn alors :
- R : réseau de Petri M[s>Mn ssi M[t1>M1, M1[t2>M2, ..., Mn-1[tn>Mn
- M0 : marquage initial : P -> N
a c
3
p2 Ensemble des marquages accessibles ("Reachability Set") :
A(R, M0) = { M | il existe s telle que M0[s>M }
p1 p3
Graphe des marquages accessibles ("Reachability Graph") :
3 GA(R, M0) = graphe (orienté, étiqueté) dont
b d - les noeuds sont les marquages accessibles
- les arcs sont les franchissements entre deux marquages accessibles
a b c d a b c d
[0 1 0 0] p1 [1 0 0 0]
Pre = [1 0 3 0] p2 [0 1 0 3] = Post a c
[0 0 0 1] p3 [0 0 1 0] 3
p2
p1 p3
a b c d
[ 1 -1 0 0] p1 [0]
C = Post - Pre = [ -1 1 -3 3] p2 M0 = [ 3 ] 3
[ 0 0 1 -1 ] p3 [0] b d
a c
Vérification de spécifications
3
p2 - On traduit la spécification du système modélisé en des propriétés du réseau
de Petri associé.
p1 p3 - Vérifier la correction du système revient à prouver que le réseau vérifie ces
propriétés
3
b d
c d Propriété structurelle
vraie pour TOUT marquage initial
(0, 0, 1)
- invariants de places ou de transitions
b
a
ω ω ω
- (R, M0) est K-borné ssi toutes ses places sont K-bornées
1 ω 0
a
c
0 ω 1
p1
c
ω ωω
a
100
011
a
ω ω ω
p2 p3
ω 0 ω
b c
b
ω ω ω
1 0 ω
ωω ω
Arbre de couverture
b
choisir un M dans X
pour toute t telle que M[t>M' faire
(* tester la bornitude: *)
0 1 ω
ωω ω
tq M' => M" et il existe p tq M'(p) > M"(p) alors
M'(p) <- ω
p3
finsi
finpour
b
p1
1 0 ω
interne égal à M }
P. Moreaux
fintantque
fin b
P. Moreaux Réseaux de Petri - 13/13
VIVACITÉ (1) VIVACITÉ (2)
p1
a
Réseau pseudo-vivant
(R,M0) est pseudo-vivant ssi p2
pour tout M de A(R, M0), il existe une transition t telle que M[t>
b c
Transition quasi-vivante p3 p4
Il existe un marquage M de A(R, M0) tel que M[t>
e f
d
Transition vivante d est quasi-vivante, non vivante
Pour tout marquage M de A(R, M0), a, b,c e et f sont vivantes
il existe un marquage M'de A(R,M) tel que M'
[t>
34
f e d
Réseau vivant
(R,M0) est vivant ssi toutes ses transitions sont vivantes 13 14 1
c b
a e f a a
b c e f
e 23 11 24 f 2
b e a f c b c
12
33 b c 44 3 4
a
22
P. Moreaux Réseaux de Petri - 15/15 P. Moreaux Réseaux de Petri - 16/16
ÉTAT D’ACCUEIL PROPRIÉTÉS
RÉSEAU RÉINITIALISABLE COMPORTEMENTALES
État d'accueil
Ma est un état d'
accueil de (R, M0) ssi
pour tout M de A(R, M0), il existe une séquence de transitions s Dépendent du marquage initial du réseau
telle que M[s>Ma
Réseau réinitialisable
(R,M0) est réinitialisable ssi M0 est un état d’accueil, ie :
pour tout M de A(R, M0), il existe une séquence de transitions s p1 a p2 b
telle que : M[s> M0
p1
c p3 d p4
p5
a p3
p2 c
p4
Si M0 = p1 + p3 (R,M0) est binaire, vivant et réinitialisable
b
Si M0 = p1 + p3 + p4 (R,M0) est non borné (vivant ?)
14 a 24 b 13 a 23
Si M[t>M'alors
_
M'= M + C.t
_ _
Théorème 1 où t = le vecteur de N|T| : t [t'
] = 1 si t'= t, 0 sinon
Si (R, M0) est pseudo-vivant ou non borné,
il admet une séquence de franchissements infinie.
Si M[s>M'où s est une séquence de transitions, alors
_
M'= M + C.s
_ _
où s = le vecteur de N|T| : s[t] = n ssi t apparaît n fois dans s
Théorème 2
Si (R, M0) est vivant, p1
il est quasi-vivant et pseudo-vivant.
a b c d e f
a [-1 0 0 1 1 1] p1
C= [1 -1 -1 0 0 0] p2
p2 [0 1 0 -1 -1 0] p3
Théorème 3 [0 0 1 -1 0 -1 ] p4
SI (R, M0) est quasi-vivant et réinitialisable, b c
il est vivant. [0]
p3 p4 M0 = [ 0 ]
[1]
e f
[1]
d
s=feababee
[2] a
_ [2] b _ [2] p1
s = [0] c M0 + C.s = [ 0 ] p2
[0] d [0] p3
[3] e [0] p4
[1] f
T q2 r2
∀ M ∈ A(R, M0), M(q1) + M(q2) + M(q3) = 1 <=> ∀ M ∈ A(R, M0), f .M = cste.
avec : fT = [1, 1, 1, 0, 0, 0]
équivalent, d' après l'équation fondamentale d'
évolution, à :
b c d
∀ s, séquence de franchissements, fT.C.s = 0
q3 r3
Un P-flot est un vecteur f de Q|P| tel que : fT.C = 0
Un P-semiflot ("P-semi-flow") est un vecteur f de N|P| tel que : fT.C = 0
La constante fT.M0 s'appelle un invariant de places (P-invariant, "S-invariant")
e
R1[i -> a.i+b.j] : Remplacement de la ligne i par la ligne a.i + b.j avec a ≠ 0. La
nouvelle ligne est définie par ∀ k , ca.i+b.j,k = a.ci,k + b.cj,k Algorithme de Gauss
debut
Exemple : C --- R1[q2 -> q2+q1] ---> C1 --- R1[r1 -> r1-q1] ---> C2 ---- R1[r2 -> r2+q1] tantque il existe une ligne et une colonne faire
--->C3 Choisir une colonne k
Choisir une ligne i telle que ci,k ≠ 0
a b c d e tantque il existe une ligne j≠i telle que cj,k ≠ 0 faire
q1 [-1 0 0 0 1] (* cj,k <- 0 *)
Appliquer R1[j -> (ci,k . j - cj,k . i) / pgcd(ci,k, cj,k) ]
q2+q1 [0 -1 1 0 1] fintantque
C3 = q3 [0 1 -1 0 -1 ] Appliquer R2 à saturation (* ligne i éliminée *)
r1-q1 [0 0 0 0 0] Appliquer R3 à saturation (* colonne k éliminée *)
r2+q1 [0 0 0 -1 1] fintantque
r3 [0 0 0 1 -1 ] L'ensemble des indices de lignes est une base de flots
fin
Exemple
R1'[k -> a.k+b.l] : Remplacement de la colonne k par la colonne a.k + b.l avec a ≠ a b c d e
0. La nouvelle colonne est définie par ∀ i , ci,a.k+b.l = a.ci,k + b.ci,l q1 [-1 0 0 0 1]
q2 [1 -1 1 0 0]
C = q3 [0 1 -1 0 -1 ]
r1 [-1 0 0 0 1]
est à dire telle qu’il existe i tel que ci,k ≠
R2'[k] : Suppression de colonne isolée k c'
r2 [1 0 0 -1 0]
0 et ∀ l ≠ k , ci,l = 0 r3 [0 0 0 1 -1 ]
Support d'un P-flot f : Une famille {f1,…,fn} de P-semiflots de R est une plus petite famille génératrice
|| f || = { p ∈ P | f(p) <> 0 } (ppfg) de P-semiflots ssi :
+
(1) ∀ f P-semiflot de R , ∃ a1,…,an ∈ Q tels que f = a1.f1 + … + an.fn
(2) ∀ i , la propriété (1) n'
est pas vérifiée par {f1,…,fn} \ {fi }.
Support d'un T-flot (semi-rythme) g :
|| g || = { t ∈ T | g(t) <> 0 }
Une famille {g1,…,gm} de T-semiflots de R est une ppfg de T-semiflots ssi :
+
(1) ∀ g T-semiflot de R , ∃ a1,…,am ∈ Q tels que g = a1.g1 + … + am.gm
Le réseau R est couvert par des P-flots ssi (2) ∀ i , la propriété (1) n'
est pas vérifiée par {g1,…,gm} \ { gi }.
∀p ∈ P, ∃ P-flot f, tel que p ∈ || f ||
Théorème debut
tantque il existe une ligne et une colonne faire
- si p est dans le support d' un P-semiflot, Choisir une colonne k
p est bornée ∀ M0 pour tout couple de lignes (i,j) telles que ci,k > 0
- si R est couvert par des P-semiflots, et cj,k < 0 faire
R est structurellement borné : ∀ M0 , (R, M0) est borné Ajouter la ligne ( ci,k . j - cj,k . i )/ pgcd(ci,k ,-cj,k)
finpour
pour toute ligne i telle que ci,k ≠ 0 faire
Supprimer la ligne i
finpour
pour tout couple de lignes (i,j) telles que
Support(j) ⊂ Support(i) faire
Théorème Supprimer la ligne i
Si (R, M0) est borné et vivant, finpour
il est couvert par des T-semiflots Supprimer toutes les colonnes nulles
fintantque
L'ensemble des indices de lignes est une ppfg de
P-semi-flots
fin
Principe :
- transformation du réseau pour en réduire la taille et surtout celle de son GA
- de telle sorte que le réseau réduit soit équivalent au réseau initial dans un sens
à préciser.
Algorithme de Farkas pour le calcul d’une ppfg de semi-rythmes
Réductions fondamentales
Note : support(l) = support du T-semiflot. - Berthelot (1983) : 10 réductions !
- 3 réductions de base :
- pré-agglomération de transitions
- post-agglomération de transitions
- place implicite
- propriétés mises en jeu :
- Il existe une séquence infinie de franchissements
- pseudo-vivacité, quasi-vivacité, vivacité
- état d’accueil
- bornitude
Post-agglomération de transitions
Pré-agglomération de transitions Soit (R, m0) un réseau de Petri et (F,H) post-agglomérables. Le réseau réduit (R’
Soit (R, m0) un réseau de Petri et (F,h) pré-agglomérables. Le réseau réduit (R’ m0) est défini par :
m0) est défini par : - P’ = P \ {p} et T’ = T \ (F U H) U {h.f | f ∈ F, h ∈ H }
- P’ = P \ {p} et T’ = T \ (F U {h}) U {f.h | f ∈ F} - ∀ t ∈ T’ ∩ T, Pré’(.,t)= Pré(., t) et Post’(.,t) = Post(., t)
- ∀ t ∈ T’ ∩ T, Pré’(., t)= Pré(., t) et Post’(., t) = Post(., t) - ∀ f ∈ F, ∀ h ∈ H, Pré’(., h.f) = Pré(., h) et
- ∀ f ∈ F, Pré’(., h.f) = Pré(., h) + Pré(., f) - 1p et Post’(., h.f) = Post(., f) Post’(., h.f) = Post(., h) + Post(., f) - 1p
- ∀ p’ ∈ P’, m’0(p’) = m0(p’) - ∀ p’ ∈ P’, m’0(p’) = m0(p’)
Une base de données simple : 2 sites, un seul modifie, l’autre met à jour sa copie.
Place implicite
Soit (R, m0) un réseau de Petri. Une place p0 est implicite si :
1) il existe un P-flot v = p ∈ P λp1p avec λp0 > 0 et ∀ p ≠ p0, λp ≤ 0
2) ∀ t ∈ T, vt.m0 ≥ vt.Pré(., t)