Vous êtes sur la page 1sur 8

Chapter 1

Les réseaux de Petri

Les réseaux de Petri constituent un outil graphique et mathématique qui permet de simuler et modéliser
des systèmes dans lesquels les notions d’événements et d’évolution sont importantes. C’est Carl Adam
Petri qui a inventé ce formalisme en 1962.
Au départ, il s’agissait essentiellement de représenter les systèmes à événements discrets. Seuls les
systèmes qui changeaient de manière discrète pouvaient être représentés dans le cadre des réseaux de
Petri. Puis, beaucoup d’extensions ont vu le jours. Certaines sont vraiment dédiées à la modélisation de
systèmes biologiques. Par exemple, on peut citer les réseaux de Petri hybrides fonctionnels, qui permettent
de simuler l’évolution de systèmes dans lesquels certaines variables évoluent de manière discrète, d’autres
de manière continue, et dont les taux de variations sont fonctions des variables du système. Ce type de
représentation a un pouvoir d’expression très important.
Malheureusement, l’envers de la médaille est de ne pas pouvoir prouver des propriétés satisfaites par
ce type de modèles. C’est pour cela, que l’on va se focaliser sur les réseaux de Petri discrets.
L’avantage des réseaux de Petri est d’une part leurs fondations mathématiques fortes, et d’autre part
leur capacité à prendre en compte la concurrence. De plus un grand nombre de logiciels permettent de
simuler et d’analyser les Réseaux de Petri. Les différents outils conviviaux sont souvent dédiés à des
extensions temporelles des réseaux de Petri. On pourra par exemple se référer à WoPeD, à PNSim ou à
Tina.

1.1 Les concepts de base


La figure présente tous les éléments de bases des réseaux de Petri.

2
P3 place
P2 t1
jeton
P1
transition
t3 P4 flèche
t2
Label sur les flèches

Figure 1.1: Un réseau de Petri

Intuitivement :
• Le nombre de jetons dans chaque places indique l’état de la variable associée à la place considérée.
Exemple : Si dans la figure 1.1, P3 représente l’ATP, alors, il y a 3 ATP dans le système.
• L’état initial du système est donné par le vecteur composé des nombres de jetons dans chacune des

5
6 CHAPTER 1. LES RÉSEAUX DE PETRI

places. Exemple : si la figure 1.1, représente l’état initial du système, alors le vecteur initial est
M0 = (1, 1, 3, 3)t . On appelle ce vecteur le marquage initial
• Les transitions correspondent à des événements qui peuvent avoir lieu. Ces événements ne peuvent
avoir lieu que si certaines conditions sont vérifiées : il faut que chacune des places prédécesseurs ait
assez de jetons (ressources) pour l’événement en question.
Exemple 1: Représentation d’une réaction Exemple 2: L’assemblage d’une voiture né-
enzymatique AT P + Gl + enz → F rp. cessite 1 chassis, 5 roues, 1 moteur, 2 sièges :
car
ATP 1
1
roues 5
1 1
Gl 1
voiture
1 moteur 1
Frp
HPi HPi 2 assemblage
siège

On dit alors qu’une transition est franchissable.


• Parmi toutes les transitions franchissables, on en choisit une en particulier. On dit que l’on tire la
transition choisie.
• Il y a alors une modification de l’état (marquage) :
– consommation des ressources nécessaires pour l’événement : dans chaque place prédécesseur
de la transition, le nombre de jetons qui disparaissent est égal à l’étiquette de l’arc en question.
– production des éléments produits par l’événement : dans chaque place successeur de la tran-
sition, le nombre de jetons qui apparaissent est égal à l’étiquette de l’arc en question.
Exemple 1 (suite): Considérons le réseau de Petri représenté
ci-dessus. Si le marquage initial M0 est : (ATP:3, Gl:2, HPi:1, Frp:0), ATP
alors le marquage M1 après le tirage de la transition est (ATP:2, Gl:1, 1

HPi:0, Frp:1). On voit apparaître ici une difficulté : l’enzyme HPi 1 1


est consommé dans le réseau de Petri. Gl

– si on enlève la flèche de HPi vers la transition, HPi n’est plus 1


Frp
nécessaire au tirage de la transition, HPi 1 HPi

– on rajoute alors une flèche de la transition vers HPi.


Ce qui mène au réseau de Petri représenté à droite, dans lequel le tirage de la transition mène au
marquage M1 (ATP:2, Gl:1, HPi:1, Frp:1).

Exemple 2 (suite): Reprennons maintenant le cas du montage de la voiture. Si le marquage


initial M0 est : (carosserie:15, roues:16, moteur:3, sièges:5,voiture:3) alors le marquage M1 est
(carosserie:14, roues:11, moteur:2, sièges:3,voiture:4)

1.2 Représentation Matricielle


Le réseau de Petri de la figure 1.1 va être représenté de la manière suivante :
• un ensemble de place : {p1 , p2 , p3 , p4 }
• un ensemble de transitions : {t1 , t2 , t3 , t4 }
• une matrice P re qui représente les arcs allant d’une place à une transition. L’élément (i, j) de la
matrice P re est différent de 0 s’il y a un arc de la place i vers la transition j.
t1 t2 t3 
p1 1 0 0
Pour le premier exemple de ce chapitre, on a : P re = p2  1 0 0 
 
p3  0 1 1 
p4 0 0 1
1.3. DÉFINITIONS FORMELLES 7

• une matrice P ost qui représente les arcs allant d’un transition à une place. L’élément (i, j) de la
matrice P ost est différent de 0 s’il y a un arc de la transition i vers la place j.
p1 p2 p3 p4
t1 1 0 2 0
Pour le premier exemple de ce chapitre, on a : P ost =  0 0 0 1 
t2
t3 0 1 0 0
A partir de ces deux matrices, on définit la matrice d’incidence du réseau de Petri : C = P ostt − P re.
L’élément (i, j) de la matrice C donne le bilan pour la place i du tirage de la transition j.
 t1 t2 t3 
p1 0 0 0
Pour le premier exemple de ce chapitre, on a : C = p2  −1 0 1 
 
p3  2 −1 −1 
p4 0 1 −1

1.3 Définitions formelles


Définition 1.3.1 Un RdP est un quadruplet R = (P, T, P re, P ost) où
• P est un ensemble fini de places
• T est un ensemble fini de transitions
• P re est une application de P × T → N
• P ost est une application de T × P → N
A partir de P et T , on introduit la matrice d’incidence C = P ostt − P re

Définition 1.3.2 Un marquage est une application M : P → N

Définition 1.3.3 une transition t est franchissable si ∀p ∈ P, M (p) ≥ P re(p, t).


t
On note parfois M (t > ou encore M →

Définition 1.3.4 Si t est franchissable, pour le marquage M , le franchissement (tir) de la transition t


donne le nouveau marquage M 0 tel que

∀p ∈ P, M 0 (p) = M (p) − P re(p, t) + P ost(t, p) = M (p) + C(p, t)


t
On note M → M 0 ou M (t > M 0 .
En posant et le vecteur de base correspondant à la transition t, on peut écrire : M 0 = M + C.et

Définition 1.3.5 Soit s une séquence sur l’alphabet des transitions, on appelle vecteur caractéristique
le vecteur s formé des nombres d’occurrences de chaque transition.

Exemple : pour la séquence s = t1 t2 t1 t3 t1 , on a s = (3, 1, 1)t

Définition 1.3.6 (Equation Fondamentale.) Si s correspond à une suite de transitions franchiss-


ables, alors l’état obtenu après avoir franchi les transitions de s est donné par:

M = M0 + P ostt .s − P re.s
= M0 + C.s

Cette équation fondamentale est finalement assez triviale. Considérons le vecteur caractéristique s
associé à une séquence de transitions franchissables particulière. Lorsqu’on calcule ∆ = C × s, on obtient
un vecteur de p entiers (p est ici le nombre de places), où l’entier enPcoordonnées i, ∆i , correspond au
n
gain/perte de la place i à la suite de la séquence de transitions: ∆i = k=1 Ci,k sk . Dans cette expression,
on fait la somme des sk × Ci,k et chacun de ces produits correspond au nombre de fois où la transition k
apparaît multiplié par le gain/perte de jetons de la place i pour un seul tirage de la transition k.
8 CHAPTER 1. LES RÉSEAUX DE PETRI

Définition 1.3.7 (Conflit/parallélisme)


• Deux transitions t1 et t2 sont en conflit structurel si elles ont une place d’entrée en commun.
• Deux transitions t1 et t2 sont en conflit effectif pour le marquage M si t1 et t2 sont en conflit
structurel et si les 2 transitions sont franchissables.
• Deux transitions t1 et t2 sont parallèles structurellement si elles n’ont aucune place d’entrée en
commun.
• Deux transitions t1 et t2 sont parallèles pour un marquage donné M si elles sont parallèles struc-
turellement et si elles sont franchissables.

Définition 1.3.8 L’ensemble des marquages accessibles A(R, M0 ) d’un RdP R à partir d’un état initial
M0 est l’ensemble des marquages que l’on peut atteindre à partir de M0 .

1.4 Représentation de la dynamique


Deux notions peuvent représenter la dynamique : le graphe de marquage et le graphe de couverture.

1.4.1 Graphe de marquage


On utilise le graphe de marquages quand le nombre de marquages accessibles est fini :
• l’ensemble des sommets est l’ensemble des marquages possibles
• il existe une flèche allant d’un marquage M1 à un autre marquage M2 s’il existe à partir du marquage
M1 une transition tirable qui mène au marquage M2 .

Exemple. Tracer le graphe de marquage pour le réseau de Petri de la figure suivante:


P1

10000 20000

P2 P3 11000 10100

01000 00100
02000 10010 01100 10001 00200

01010 00101
P4 P5 00110 01001
00020 00002
00010 00001
00011
2

Malheureusement, le graphe de marquage ne peut plus être construit quand le réseau est non borné
c-à-d quand le nombre de marquages accessibles est infini. D’où le recours au graphe de couverture.

1.4.2 Graphe de couverture


Avant de décrire l’algorithme qui permet de construire le graphe de couverture, nous devons d’abord
introduire une relation d’ordre partiel entre deux vecteurs.
Ordre partiel sur les vecteurs. Soient 2 vecteurs v1 et v2 de même dimension. On dit que v1 ≤ v2 si
on a v1 (i) ≤ v2 (i) pour tout i (si l’inégalité est vraie composante par composante). On dit que v1 < v2
si d’une part on a v1 (i) ≤ v2 (i) et s’il existe une composante k pour laquelle on a v1 (k) < v2 (k)
1.5. QUELQUES PROPRIÉTÉS 9

Algorithme de construction d’un graphe de couverture


1. A partir du marquage initial M0 , calculer toutes les transitions franchissables ainsi que les marquages
successeurs correspondants. Si un des marquages est strictement supérieur à M0 , on met la variable
ω pour chacune des composantes supérieures aux composantes de M0 .
2. Pour chaque nouveau marquage Mi , on fait l’une des étapes suivantes :
(a) S’il existe sur le chemin de M0 jusqu’à Mi (ce dernier exclu) un marquage Mj = Mi alors on
confont Mi avec Mj et il n’est donc plus nécessaire de développer l’arbre à partir de Mi .
(b) Sinon, on prolonge le graphe avec les successeurs Mk de Mi : Une composante ω de Mi reste
une composante ω de Mk . S’il existe un marquage Mj sur le chemin de M0 à Mk tel que
Mk > Mj , alors on met ω pour chacune des composantes supérieures aux composantes de Mj .
Remarques :
• Le marquage symbolique ω désigne un nombre de jetons dans une place Pi qui peut atteindre un
nombre arbitrairement grand (l’infini). Il représente en effet une infinité de marquages possibles.
• Les opérations arithmétiques avec ω sont simple : l’addition de ω avec un entier donne ω; la
soustration de ω avec un entier donne ω.
T1 T2

Exemple. Soit le RdP suivant : . T1 est une transition source, fran-


P1
chissable un nombre infini de fois. D’où le recours au graphe de couverture. A partir du marquage
T
initial M0 = (0), seule la transition T1 est franchissable : M0 →1 M1 = (1). M1 est supérieur à M0 donc
M1 = (ω). A partir de M1 , les deux transitions T1 et T2 sont franchissables :
• Si on franchit T1 : M2 = (ω + 1) = (ω) = M1 et on ne cherche plus les successeurs de M2 .
• Si on franchit T2 : M3 = (ω − 1) = (ω) = M1 et on ne cherche plus les successeurs de M3 .
T1
T1
D’où le graphe de couverture correspondant : (0) (ω)

T2

Exemple. Utilisez l’algorithme de construction du graphe de couverture sur le RdP représenté ci-
dessous à gauche :

P1
0
T3 T2 M2 = 0 1
T1 0 M3 = 0
1 0
M0 = 0 T1 M1 = 1 T3
ω
0 1
1
T3 M3 = 0 T1 0 T2 0
M4 = 1 M5 = 0
ω
P2 P3 ω ω
T3

T2

1.5 Quelques propriétés


Un RdP ne peut pas atteindre n’importe quel marquage, et on ne pourra pas franchir n’importe quelle
séquence de transitions. Ici, on recense quelques propriétés classiquement utilisées qui qualifient une
partie de la dynamique des RdP.
1. une place p d’un RdP marquée (avec marquage initial) est k-bornée si ∀M 0 ∈ A(R, M0 ), M 0 (p) ≤ k
Si k = 1, la place est dite binaire.
2. un RdP marqué est k-borné (bounded) si toutes les places sont k-bornées. Si k vaut 1, le RdP est
dit binaire.
10 CHAPTER 1. LES RÉSEAUX DE PETRI

Voici un exemple de réseau non borné :

La place du haut représente les cellules prètes à se diviser, celles du bas des cellules filles jeunes.
3. Une transition t d’un RdP marqué (R, M0 ) est quasi-vivante s’il existe un état M 0 accessible à
partir de M0 pour lequel la transition t soit franchissable : M0 →s M et M →t .
4. Une transition t d’un RdP marqué (R, M0 ) est vivante si de tout état accessible à partir de M0 , il
existe une séquence de franchissement qui utilise t :

s t
∀M 0 ∈ A(R, M0 ), ∃s telle que M 0 → M 00 et M 00 →

un RdP est dit vivant si toutes ses transitions le sont.


5. Un RdP est réinitialisable (propre) si de tout état accessible, il est possible de revenir à l’état initial :

s
∀M ∈ A(R, M0 ), ∃s telle que M → M0

1.6 Invariants de Places


Définition 1.6.1 (Invariant de places)
• On a un invariant de place linéaire s’il existe une pondération sur le marquage des places telle que :

q1 m1 + q2 m2 + ... + qn mn = constante ∀M ∈ A(R, M0 )

telle que ∀i ∈ [1, ..., n], qi ∈ N


• L’ensemble des places telles que leur pondération est non nulle est une composante conservative
• un réseau est dit conservatif si l’ensemble des places du réseau forme une composante conservative.

Propriété 1.6.1 Soit F un vecteur de pondération des places. F est associé à un invariant de place ssi
F t .C = 0.

Preuve : L’équation fondamentale donne : M = M0 + C.s


D’après la définition de la composante conservative : F t .M = cte = F t .M0 + F t .C.s ∀s.
On en déduit que F t .C.s = 0, ∀s. 

Propriété 1.6.2 Si F1 et F2 sont associés à des invariants de places, alors pour tout (n1 , n2 ) ∈ N,
n1 F1 + n2 F2 est associé à un invariant de places.

F t .M0
Propriété 1.6.3 Toutes les places d’une composante conservative sont bornées et de plus M (pi ) ≤ qi
où qi est le poids associé à la place pi .

Preuve : la définition d’une composante conservative donne : qi mi + Σj6=i qj mj = Σqj mj ,


On sait aussi que Σj6=i qj mj ≥ 0
Σq m
On en déduit qi mi ≤ Σqj mj , et donc mi ≤ qji j 

Générallement, il y a une infinité de P-invariants. On cherche donc les invariants minimaux :


• les invariants minimum sont linéairement indépendants les uns des autres,
• le PGCD de leurs éléments est égal à 1
Mais à quoi servent les invariants de places ?
Ils correspondent à des règles de préservation de quantité de matière.
1.6. INVARIANTS DE PLACES 11


 a + 4e −→ ae4

ae4 −→ a + 4e
Exemple. Soit le système d’équations chimiques suivant :

 b + e −→ be

be −→ b+e
1. Le réseau de Petri est : 2. La matrice d’incidence :
a e b  
4 a −1 1 0 0
b 
 0 0 −1 1 

C = e  −4 4 −1 1 
t1 t3  
ae4  1 −1 0 0 
be 0 0 1 −1
ae4 be

4
Les lignes sont dans l’ordre a,b,e, ae4 et be.
t2 t4 Les colonnes sont dans l’ordre t1 , t2 , t3 , t4 .

3. Les P-invariants sont donnés par l’équations (α, β, γ, δ, ).C = 0:



 −α − 4γ + δ = 0 

α + 4γ − δ = 0 α + 4γ = δ
⇐⇒

 −β − γ + ε = 0 β+γ =ε

β+γ−ε=0

• Supposons que uniquement 2 éléments soient non nuls (10 choix possibles).
– α et δ : α = 1 et δ = 1 – Trouvé
– γ et δ : γ = 1 et δ = 4 – Impossible
– β et ε : β = 1 et ε = 1 – Trouvé
– γ et ε : γ = 1 et ε = 1 – Impossible
• Supposons que uniquement 3 éléments soient non nuls (10 choix possibles).
– α, γ et δ : α = 1, γ = 1 et δ = 5 – Impossible
– β, γ et ε : β = 1, γ = 1 et ε = 2 – Impossible
– γ, δ et ε : γ = 1, δ = 4 et ε = 1 – Trouvé
• Supposons qu’il y a qu’un élement nul (5 choix possibles).
– α = 0 : γ = 1, δ = 4, β = 1, ε = 2 – Composition des invariants précédents
– β = 0 : γ = 1, ε = 1, δ = 5, α = 1 – Composition des invariants précédents
– γ = 0 : α = δ = β = ε = 1 – Composition des invariants précédents
– δ = 0 : impossible
– ε = 0 : impossible
• Supposons qu’aucun élément soit nul. α = γ = β = 1, ε = 2, δ = 5 – Composition
Dans cet exemple nous avons trouvé tous les invariants de places par une méthode assez empirique. Elle
est difficilement automatisable.

Méthode pour la recherche des P-invariants. Cette méthode est basée sur le fait suivant. On ne
modifie pas les solutions d’un système linéaire en effectuant les opérations suivantes sur les lignes :
• échange de 2 lignes,
• multiplication d’une ligne par un entier
• addition d’une ligne à une autre
12 CHAPTER 1. LES RÉSEAUX DE PETRI

Le but de cette méthode est de triangulariser la matrice (ou une sous matrice carré). Cette méthode
amène toujours à une matrice qui est de la forme :
 
1 1 ... 1 1 ... 1
 0 1 ... 1 1 ... 1 
 
 .. . . . . .. 
 .
 . . . 1 ... 1 
 0 ... 0 1 1 ... 1 
 
 0 ... ... 0 0 ... 0 
 
 . .. .. .. 
 .. . . . 
0 ... ... 0 0 ... 0

Les lignes de “zéros” représentent les composantes conservatives. En effet, les lignes nulles de la matrice
sont des “compositions de places” telles qu’aucune transition ne peut faire changer.

Exemple. Reprenons le même exemple. La matrice C s’écrit comme suit :


 
a −1 1 0 0
b 
 0 0 −1 1
C= 
e −4 4 −1 1
ae4  1 −1 0 0
be 0 0 1 −1

Les lignes sont celles associées aux places : a, b, c, ae4 et be. On peut alors modifier les lignes de la
matrice (en utilisant les opérations précédentes) pour faire apparaître des lignes nulles:
1. on remplace la 5ème ligne (be) par b + be, elle devient nulle.
2. on remplace la 4ème ligne (ae4 ) par a + ae4 , elle devient nulle.
3. on remplace la 3ème ligne (e) par 4ae4 + be + e, elle devient nulle.
On obtient la matrice :  
a −1 +1 0 0
b 
 0 0 −1 +1  

a + ae4  0 0 0 0 

b + be  0 0 0 0 
e + 4ae4 + be 0 0 0 0
Les P-invariants sont donc : a + ae4 , b + be et e + 4ae4 + be

Vous aimerez peut-être aussi