Vous êtes sur la page 1sur 9

Sommaire

Réseaux
de
!"
# $ % !!
!&
% !

Petri $ %
'!(
'&(
!
!
!
$ % !
!
!
&"
&!
&&
% '!( &
% '&( &
% '!( &
% '&( &
&
# &
# '!( &
# '&( "
P. Moreaux $ # !
&
##
##

Université de Reims Champagne - Ardenne


UFR de Sciences Exactes et Naturelles
Département de Mathématiques et Informatique

P. Moreaux Réseaux de Petri - 2/2

PLAN MODÉLISATION ET VÉRIFICATION

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

P. Moreaux Réseaux de Petri - 3/3 P. Moreaux Réseaux de Petri - 4/4


SYNCHRONISATION CONFLIT

r1
q1

e
a

r2 q1 r1
d q2 g

b c f b a d c

q3 r3 q2 r2

a, e : une voiture arrive q1 : pompiste 1 au repos


b : pompiste 1 arrête de remplir q2 : pompiste 1 remplissant le réservoir q1 : processus 1 au repos
c : pompiste 1 recommence à remplir q3 : pompiste 1 vérifiant le niveau q2 : processus 1 accédant au fichier
d, g : une voiture est traitée d'
essence r1 : processus 2 au repos
f : pompiste 2 a fini de vérifier l'
huile r1 : pompiste 2 au repos r2 : processus 2 accédant au fichier
r2 : pompiste 2 vérifiant l'
huile
r3 : pompiste 2 après vérification

q1 r1
Libre
a
q1 r1
q2 r2

a c
b c f
q3 r3
q2 r2

d g b d

P. Moreaux Réseaux de Petri - 5/5 P. Moreaux Réseaux de Petri - 6/6

SYSTÈME DE SYSTÈME
COMMUNICATION PRODUCTEUR - CONSOMMATEUR

Émetteur Récepteur Producteur Consommateur


tantque vrai faire tantque vrai faire tantque vrai faire tantque vrai faire
préparer message lire message (ch1) préparer message lire message
envoyer message (ch1) analyser message envoyer message traiter message
lire accusé de réception (ch2) préparer accusé de réception fintantque fintantque
analyser accusé de réception envoyer accusé de réception (ch2)
fintantque fintantque

q1 r1

p1 p5
b a d c

q2 r2
t1 t5

p2 p6 q1 : producteur au repos a : le producteur décide d'envoyer un m.


q2 : producteur fabriquant un m. b : le producteur envoie le m.
p9
r1 : consommateur au repos c : le consommateur décide de lire un
t2 m.
t6
r2 : consommateur lisant un m. d : le consommateur a fini de lire le m.

p3 p7 r1
q1

t3 t7
a c
p10
m
p4 p8 q2 r2

t4 t8
b d

P. Moreaux Réseaux de Petri - 7/7 P. Moreaux Réseaux de Petri - 8/8


DÉFINITION DES DYNAMIQUE DES
RÉSEAUX DE PETRI RÉSEAUX DE PETRI

Réseau de Petri : R = (P, T, Pre, Post) Franchissabilité


- P : ensemble fini des places t est franchissable ("enabled") en M (M[t>) ssi :
- T : ensemble fini des transitions pour toute place p de P : M(p) ≥ Pre(p,t)
- Pre : PxT -> N fonction d' incidence avant
- Post : PxT -> N fonction d' incidence arrière Franchissement
Si t est franchissable en M,
Marquage du réseau : M : P -> N : M(p) est le nombre de jetons de p en M. le franchissement (tir, "firing") de t produit le marquage M'(M[t>M' ):
pour toute place p de P, M' (p) = M(p) - Pre(p,t) + Post(p,t)

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

P. Moreaux Réseaux de Petri - 9/9 P. Moreaux Réseaux de Petri - 10/10

EXEMPLE DE GRAPHE PROPRIÉTÉS DES


D’ACCESSIBILITÉ RÉSEAUX DE PETRI

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

Réseau marqué S = (R, M0) avec M0 = (0,3,0)


Propriété d’accessibilité ou comportementale
DEPEND du marquage initial
Graphe d’accessibilité de S
- bornitude
- vivacité
a a a - état d’accueil
(0, 3, 0) (1, 2, 0) (2, 1, 0) (3, 0, 0)
b b b

c d Propriété structurelle
vraie pour TOUT marquage initial
(0, 0, 1)
- invariants de places ou de transitions

Méthodes de preuve des propriétés


- analyse du graphe des marquages accessibles
- réduction du réseau
- algèbre linéaire
- autres ...

P. Moreaux Réseaux de Petri - 11/11 P. Moreaux Réseaux de Petri - 12/12


BORNITUDE
Réseaux de Petri - 14/14
ω ω 0
ω ω 0

b
a

ω ω ω

Réseau K-borné ("K-Bounded Net")


b

- une place p est K-bornée ssi


1 ω 0

pour tout M de A(R, M0) : M(p) ≤ K


EXEMPLE D’ARBRE DE COUVERTURE

- (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

Réseau non borné


c

ω ω ω
1 0 ω

ωω ω

Arbre de couverture
b

Algorithme de construction (Peterson, 1981)


soit ω défini par : ∀ n ∈ N : ω + n = ω - n = ω; n < ω; ω <= ω
debut
X <- { M0 }
a

tantque X non vide faire


a

choisir un M dans X
pour toute t telle que M[t>M' faire
(* tester la bornitude: *)
0 1 ω

pour toute p dans P faire


c

si il existe M" dans le chemin de M0 à M'

ωω ω
tq M' => M" et il existe p tq M'(p) > M"(p) alors
M'(p) <- ω
p3

finsi
finpour
b
p1

créer un noeud M -t-> M'


finpour
a

X <- { M | M est une feuille générée, il existe une


p2

transition franchissable en M, il n'y a pas de noeud

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

équivalent à : son graphe d'


accessibilité est fortement connexe

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 ?)

Si M0 = p1 (R,M0) est binaire et non vivant


c

14 a 24 b 13 a 23

P. Moreaux Réseaux de Petri - 17/17 P. Moreaux Réseaux de Petri - 18/18

RELATIONS ENTRE LES PROPRIÉTÉS STRUCTURELLES


PROPRIÉTÉS COMPORTEMENTALES - INVARIANTS -

Équation fondamentale d'évolution

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

P. Moreaux Réseaux de Petri - 19/19 P. Moreaux Réseaux de Petri - 20/20


P-FLOTS ET T-FLOTS CALCUL DES P et T-FLOTS

L’ensemble des P ou T-flots est un Q-espace vectoriel


q1 r1
a Une famille de flots {f1,…,fn} est une base de P-flots ssi pour tout P-flot f de R, il
Comment vérifier : existe un unique n-uple (a1,…,an) de Qn tel que f = a1.f1 + … + an.fn.
q2 r2 ∀ M ∈ A(R, M0),
M(q1) + M(q2) + M(q3) = 1
(invariant sur les places) Une famille de rythmes {g1,…,gm} est une base de T-flots ssi pour tout T-flot g de
b c R, il existe un unique m-uple (a1,…,am) de Qm tel que g = a1.g1 + … + am.gm.
d
et :
q3 r3 ∀ M ∈ A(R, M0),
M[b.c>M'=> M = M'
(invariant sur les transitions)
e q1 r1

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

∀ M ∈ A(R, M0), M[b.c>M'=> M = M'<=> C.g = 0


Les pompistes
avec : gT = [0, 1, 1, 0, 0] = (b.c)T

Un T-flot (rythme) est un vecteur g de Q|T| tel que : C.g = 0 a b c d e


Un T-semiflot (semi-rythme) est un vecteur g de N|T| tel que : C.g = 0 q1 [-1 0 0 0 1]
La séquence b.c s' appelle un invariant de transitions ("T-invariant") q2 [1 -1 1 0 0]
C = q3 [0 1 -1 0 -1 ]
r1 [-1 0 0 0 1]
r2 [1 0 0 -1 0]
r3 [0 0 0 1 -1 ]

P. Moreaux Réseaux de Petri - 21/21 P. Moreaux Réseaux de Petri - 22/22

CALCUL DE BASES DE CALCUL DE BASES DE


P-FLOTS (1) P-FLOTS (2)

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

est à dire telle qu’il existe k tel que ci,k ≠ 0 et


R2[i] : Suppression de ligne isolée i c' Théorème : La dimension du SEV des P-flots est |P|-rangC
∀ j ≠ i , cj,k = 0
Exemple (suite)
a b c d e
Après une exécution de boucle, nous avons la matrice C5
q2+q1 [0 -1 1 0 1]
C3 --- R2[q1] ---> C4 = q3 [0 1 -1 0 -1 ] Après la deuxième exécution :
r1-q1 [0 0 0 0 0] d e
r2+q1 [0 0 0 -1 1] q3+q2+q1 [ 0 0]
r3 [0 0 0 1 -1 ] C6 = r1-q1 [0 0]
r2+q1 [-1 1]
r3 [ 1 -1 ]
est à dire telle que ∀ i , ci,k = 0
R3[k] : Suppression de colonne k, nulle c'

b c d e Après la troisième exécution :


q2+q1 [-1 1 0 1] q3+q2+q1 [ ]
q3 [1 -1 0 -1 ] C7 = r1-q1 []
C4--- R3[a] ---> C5 = r1-q1 [0 0 0 0] r2+q1+r3 []
r2+q1 [0 0 -1 1]
r3 [0 0 1 -1 ]
Une base de flots est { q3+q2+q1, r1-q1, r2+q1+r3 }

P. Moreaux Réseaux de Petri - 23/23 P. Moreaux Réseaux de Petri - 24/24


CALCUL DE BASES DE CALCUL DE BASES DE
T-FLOTS (1) T-FLOTS (2)

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 ]

est à dire telle que ∀ k, ci,k = 0


R3'[i] : Suppression de ligne i nulle, c'
Après la première exécution de boucle :
b c d a+e
Algorithme de Gauss q2 [-1 1 0 1]
q3 [ 1 -1 0 -1 ]
debut C1’ = r1 [0 0 0 0]
tantque il existe une ligne et une colonne faire r2 [0 0 -1 1]
Choisir une ligne i r3 [0 0 1 -1 ]
Choisir une colonne k telle que ci,k ≠ 0
tantque il existe une colonne l ≠ k telle que
ci,l ≠ 0 faire
(* ci,l <- 0 *) Après la deuxième exécution :
Appliquer R’1[l -> (ci,k . l - ci,l . k) / pgcd(ci,k, ci,l) ]
b+c d a+b+e
fintantque
Appliquer R’2 à saturation (* colonne k éliminée *) C2’ = r2 [ 0 -1 1]
Appliquer R’3 à saturation (* ligne i éliminée *) r3 [0 1 -1 ]
fintantque
L'ensemble des indices de colonnes est une base de rythmes
fin
Après la troisième :
b+c a+b+d+e
Théorème : La dimension du SEV des T-flots est |T|-rangC C3’ = [ ]

Une base de rythmes est { b+c, a+b+d+e }.

P. Moreaux Réseaux de Petri - 25/25 P. Moreaux Réseaux de Petri - 26/26

P et T-SEMIFLOTS PLUS PETITES FAMILLES


GÉNÉRATRICES DE
P et T-SEMIFLOTS

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 ||

Algorithme de Farkas pour le calcul d’une ppfg de P-semi-flots

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

Note: support(j) est le support du P-semi-flot.

P. Moreaux Réseaux de Petri - 27/27 P. Moreaux Réseaux de Petri - 28/28


EXEMPLE DE CALCUL DE EXEMPLE DE CALCUL DE
PPFG DE P-SEMI-FLOTS (1) PPFG DE P-SEMIFLOTS (2)
Après la première exécution de boucle :
b c d
p1+q1 [-1 0 1]
p1+q2 [ 0 -1 1]
p2+q1 [-1 0 1]
p1 p2 p3
p2+q2 [ 0 -1 1]
C1 = p3 [-1 1 0]
a q3 [ 1 -1 0]
r1 [1 0 -1 ]
q1 b
r2 [0 1 -1 ]

Après la deuxième exécution :


c d
q2 q3
p1+q1+r1 [ 0 0]
p1+q1+q3 [-1 1]
c p2+q1+r1 [ 0 0]
p2+q1+q3 [-1 1]
r1 r2
C2 = p3+r1 [ 1 -1 ]
p3+q3 [0 0]
p1+q2 [-1 1]
d
p2+q2 [-1 1]
r2 [ 1 -1 ]

Après la troisième et la quatrième :


Trois processus synchronisés p1+q1+r1 []
p2+q1+r1 []
p3+q3 []
p1+q1+q3+r2 []
a b c d C3 = p2+q1+q3+r2 []
p1 [-1 0 0 1] p1+q2+r2 []
p2 [-1 0 0 1] p2+q2+r2 []
p3 [0 -1 1 0] p1+q2+p3+r1 []
q1 [1 -1 0 0] p2+q2+p3+r1 []
C = q2 [1 0 -1 0] (les lignes p1+q1+q3+p3+r1 et p2+q1+q3+p3+r1 ont été éliminées car de support non
q3 [0 1 -1 0] minimal)
r1 [0 1 0 -1 ]
r2 [0 0 1 -1 ] Une ppfg de P-semi-flots est l’ensemble des indices de lignes.

Interprétation : « changement d’identité » des jetons

P. Moreaux Réseaux de Petri - 29/29 P. Moreaux Réseaux de Petri - 30/30

CALCUL D’UNE PPFG


RÉDUCTIONS
DE T-SEMIFLOTS

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

debut Une réduction est caractérisée par :


tantque il existe une ligne et une colonne faire - ses conditions d’application
Choisir une ligne i - la transformation du réseau
pour tout couple de colonnes k,l telles que ci,k > 0
- les propriétés préservées
et ci,l < 0 faire
Ajouter la colonne (ci,k . l - ci,l . k )/ pgcd( ci,k , -ci,l )
finpour
pour toute colonne k telle que ci,k ≠ 0 faire
Supprimer la colonne (* k *) Bonnes propriétés d’une réduction
finpour - applicabilité des conditions :
pour tout couple de colonnes (k,l) telles que
- règles « souvent » vérifiées
Support(l) ⊂ Support(k) faire
Supprimer la colonne (* k *) - à énoncer au niveau structurel
finpour - transformation efficace :
Supprimer toutes les lignes nulles - réduction du GA surtout
fintantque - préserver vivacité et bornitude
L'ensemble des indices de colonnes est une ppfg
de semi-rythmes
fin

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

P. Moreaux Réseaux de Petri - 31/31 P. Moreaux Réseaux de Petri - 32/32


PRÉ-AGGLOMÉRATION POST-AGGLOMÉRATION
DE TRANSITIONS DE TRANSITIONS
Transitions post-agglomérables
Transitions pré-agglomérables Soit (R, m0) un réseau de Petri. Un ensemble F de transitions est post-
Soit (R, m0) un réseau de Petri. Un ensemble F de transitions est pré- agglomérable avec un ensemble de transitions H ssi :
agglomérables avec une transition h ssi : 1) il existe une place p modélisant un état intermédiaire entre le
1) il existe une place p modélisant un état intermédiaire entre le franchissement d’une transition de H et celui d’une transition de F :
franchissement de h et celui d’une transition de F : m0(p) = 0, Post(p, .) = 1H, Pré(p, .) = 1F
m0(p) = 0, Post(p, .) = 1h, Pré(p, .) = 1F 2) les transitions de F n’ont pas d’autre entrée que p :
2) h ne produit des marques que dans p : ∀ f ∈ F, Pré(.,f) = 1p
Post(., h) = 1p 3) il existe une transition f de F ayant une place de sortie :
3) h ne partage ses entrées avec aucune autre transition : ∃ f ∈ F, f ≠ ∅
- ∀ t h, t ∩ h = ∅
4) h a au moins une place en entrée : h ≠ ∅

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’)

P. Moreaux Réseaux de Petri - 33/33 P. Moreaux Réseaux de Petri - 34/34

PLACE IMPLICITE EXEMPLE DE RÉDUCTIONS

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)

Suppression de place implicite


Avant réductions -----> Après réductions
Soit (R, m0) un réseau de Petri et p0 une place implicite.. Le réseau réduit (R’ m0)
est défini par la suppression de p0 et de tous les arcs adjacents.

P. Moreaux Réseaux de Petri - 35/35 P. Moreaux Réseaux de Petri - 36/36

Vous aimerez peut-être aussi