Vous êtes sur la page 1sur 93

Réseaux de Petri :

Variantes et domaines
d’application

Pr. Janah SAADI


Plan
Introduction
Notions de base
Composition graphique
Dynamique
Quelques structures et notions
propriétés

Algèbre linéaire
Matrices d’incidence
Équation fondamentale
Classes des Réseaux de Petri
Introduction
• Les Réseaux de Petri ont été introduits au début des années 60 par
Carl Adam Petri
• Ce sont des outils de modélisation des systèmes à événements discrets

•Ils ont pris un essor important durant les années 70 grâce aux travaux de
chercheurs du M.I.T
Ils présentent les avantages suivants :
• Clarté de la représentation des outils graphiques

• Modélisation simple de phénomènes comportant du parallélisme, de la


synchronisation et du partage de ressources.

• Capacité de description formelle permettant de faire de la preuve

• Résultats théoriques abondants.


Spectre d’utilisation très large:
• Systèmes d’information
• Protocoles de réseaux
• Algorithmes d’allocation de ressources
• Systèmes de production
• Systèmes économique
• Systèmes biologiques
•….
Plusieurs variantes:
•RdP autonomes
•RdP Interprétés
•RdP Généralisés
•RdP Temporisés
•RdP Colorés
•RdP à Capacités
•RdP Continu
•RdP Hybride
•RdP Stochastique
L’utilisation des réseaux de Petri permet

La représentation graphique du système


La simulation du comportement futur du système
L’analyse structurelle
L’analyse des performances
La commande du système (prise de décision)
1) Introduction
Notions de base
4) Extensions intéressantes
2) Notions de base

1. Constituants d’un RdP (places transitions et arcs)


2. Marquages et poids
3. Dynamique des RdP
4. Notions complémentaires
1- Constituants d’un RdP (places transitions et arcs)

Un réseau de PETRI, est graphe bi-parties constitué informellement de


deux types de noeuds:
• Des places
• Des transitions

Des arcs relient une place à une transition ou une transition à une place,
mais jamais une place à une place ou une transition à une transition

Oui Non Non


2- Marquages et poids

On associe à un réseaux de Petri un marquage qui représente le


nombre (entier) de jetons (ou marques) associés à chaque place

Remarque: On suppose que les places sont d’une capacité infinie

Le marquage, à un instant t, du réseau correspond au nombre de


jetons dans chaque place.

P1
M:P N
T1
M = [2, 1]
P2
Places, transitions, arcs et marquages

P1 P1

T1 T1
P2 P2
T6 T6
T2 T2
P3 P4 P3 P4

T3 T4 T3 T4
P5 P5 P5 P5
T5 T5
P7 P7

a - RdP non marqué b - RdP marqué


Le marquage à un instant t définit l’état du système décrit par le RdP.
Remarque : Le marquage d’un RdP est numérique (nombre entier) alors
que celui d’un Grafcet est booléen (état actif ou inactif)
M = [1,0,1,0,0,2, 0]
3-Dynamique des Réseau de Petri
Franchissement de transition

Avant franchissement Après franchissement

P1 P2 P1 P2

T1 T1
P3 P4 P3 P4

Transition validée T1 : Chacune des places en amont de T1 contient au moins


une marque.
Franchissement d’une transition validée T1 :
- on retire, une marque a chacune des places en amont de T1.
- on ajoute une marque a chacune des places en aval deT1.
Exemple d’un système

Calculateur 1
Une mémoire commune
Deux calculateurs:
N’a pas besoin de la
Mémoire mémoire
commune Demande la mémoire
Utilise la mémoire

Calculateur 2
Modèle RdP du système

Mémoire Graphe orienté à


libre bipartie:
p1 p7 p4
Transitions (t1-t6)
Places (p1-p7)
t1 t4 contiennent un nombre
p2 p5 non-négatif de jetons
t6
Arcs liant deux sommets
t3 de nature différente
p3
t2 t5 p6 Sémantique
Transitions représentent
les évènements
Calculateur 1 Calculateur 2 Marquage des places
représente l’état du
système
Fonctionnement du système

Le marquage du réseau évolue au


Mémoire • cours
Graphe orienté à bipartie:
du franchissement des
libre – Transitions (Rectangles
p1 p7 p4 transitions
aplatis)
Le franchissement d’une
– Places (Cercles) contiennent
transition
un nombreest fonction des
non-négatif de
t1 t4
conditions
jetons des ressources des
p5
–places amont
p2
Arcs liant deux sommets de
t3 t6t6 Une transition
nature est dite validée,
différente
t2 t5
dans un marquage, si, dans
• Sémantique
p6
p6
p3
chaque place amont le nombre
– Transitions représentent les
deévènements
jetons est au moins égal au
poids de l’arc sortant
Calculateur 1 Calculateur 2 – Marquage des places
représente l’état du système
Fonctionnement du système

• Le
Le franchissement de la transition
marquage du réseau évolue
Mémoire validée consiste à:
libre au cours du franchissement des
p1
p1
p1 p7
p7
p7 p4
p4
p4
transitions
– Enlever des jetons
Le franchissement des transition
d’une places
t1
t1 t4
t4
amont (le nombre
est fonction est égal
des conditions desau
p5
p5
p5
poids de l’arc
ressources amont)
des places amont
p2
p2
p2

t6
t6
t6
– Ajouter des jetons
Une transition est diteaux places
valide, dans
t3
t3
t3 aval (le nombre
un marquage, est égale
si, dans chaqueau
t2
t2
t2 t5
t5 p6
p6
p6
poids de l’arcnombre
place amont aval) de jetons est
p3
p3
p3
au moins égal au poids de l’arc
sortant
Calculateur 1 Calculateur 2
Réseau de Petri Généralisé

• Un réseau dans lequel le poids affecté à chaque arc est égal à 1 est
un réseau de Petri élémentaire.
élémentaire
• Un Réseau de Petri dans lequel le poids de certains arcs est
supérieur à 1 est un Réseau de Petri Généralisé

P1 P1

2
Ta Ta
3
P2 P3 P2 P3

W:A N+ W:A {0, 1}

réseau de Petri généralisé réseau élémentaire


Validation d’une transition

Une transition est validée si chacune des places en entrée de la


transition contient au moins autant de jetons que le poids affecté à
l’arc reliant la place à la transition.

P1 P1

P2 P2

2 2

T1 T1

P3 P3

T1 validée T1 non validée


Franchissement d’une transition

Le franchissement d’une transition consiste à enlever de chacune


des places amont un nombre de marques égal au poids de l’arc
reliant cette place à la transition franchie.

P1 P1

P2 P2

2 2
Franchissement de T1
T1 T1

P3 P3
Franchissement d’une transition

Après franchissement d’une transition on rajoute dans chacune


des places aval un nombre de jetons égal au poids de l’arc reliant
cette place à la transition franchie.

P1 P1

P2 P2

2 2
Franchissement de T1
T1 T1

P3 P3
Franchissement d’une transition

Marquage avant déclenchement


P1

P2
M0 = [1, 2, 0]

T1

P3
Franchissement d’une transition

Marquage avant Franchissement


P1

P2
M0 = [1, 2, 0]
Marquage après Franchissement
2

T1
M1 = [1, 0, 1]
P3
En t0, il y avait 3 jetons dans le
réseau ; en t0 + ∆t, il y en a 2.

Attention: Il n’y a pas de principe de conservation des jetons. Le


nombre de jetons produits n’est pas lié au nombre de jetons
consommés.
Réseaux de Petri généralisés- synthèse

T1 non validée T1 validée

P1 P2 P1 P2 P
1 P2
3 3 3
T1 T1
2 T1
2 2
P3 P3
P4 P3
P4 P4

Avant Après
franchissement franchissement
Graphe de marquages
accessibles

P1

P2
T1 et T2 sont franchissables.
2
Hypo H1 : le moniteur choisit T1
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4

T2
2
P5
Graphe de marquages
accessibles
P1

P2
T1 et T2 sont franchissables.
2
Hypo H1 : le moniteur choisit T1
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]

T2
2
P5
Graphe de marquages
accessibles
P1

P2
T1 et T2 sont encore franchissables.
2
On peut continuer sur cette « branche ».
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
2
P5
Graphe de marquages
accessibles
P1

P2
T1 et T2 sont encore franchissables
2
Hypo H2 : le moniteur choisit T1
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
2
P5
Graphe de marquages
accessibles
P1

P2
T1 et T2 sont encore franchissables
2
Hypo H2 : le moniteur choisit T1
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Revenons un pas en arrière.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Revenons un pas en arrière.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Hypo H3 : le moniteur choisit T2
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Hypo H3 : le moniteur choisit T2
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Hypo H3 : le moniteur choisit T2
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Revenons deux pas en arrière.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Revenons deux pas en arrière.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Revenons deux pas en arrière.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Hypo H4 : le moniteur choisit T2
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Hypo H4 : le moniteur choisit T2
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0]
T1 T2

T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2

2
Hypo H4 : le moniteur choisit T2
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0] [1, 5, 0, 3, 2]
T1 T2

T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2
Seule, T1 est franchissable.
2
Continuons sur cette dernière branche.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0] [1, 5, 0, 3, 2]
T1 T2
T1
T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

P2
Seule, T1 est franchissables.
2
Continuons sur cette dernière branche.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0] [1, 5, 0, 3, 2]
T1 T2
T1
T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
[1, 3, 1, 3, 2]
P5

C’est le même vecteur !


Graphe de marquages
accessibles
P1

P2
Seule, T1 est franchissables
2
Continuons sur cette dernière branche.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0] [1, 5, 0, 3, 2]
T1 T2
T1
T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5
Graphe de marquages
accessibles
P1

On a finalement un graphe. Il P2

correspond à tous les marquages


2
obtenus à partir du marquage initial.
T1

[2, 5, 1, 4, 0]
P3
T1 T2
P4
[2, 3, 2, 4, 0] [1, 5, 0, 3, 2]
T1 T2
T1
T2
[2, 1, 3, 4, 0] [1, 3, 1, 3, 2] 2
P5

C’est le graphe des marquages accessibles.


accessibles
Réseaux de Petri autonomes

P1 T1 P2
Printemps été

T4 T2

P4 T3 P3
hiver automne

Cycle des saisons

Un RdP autonome décrit le fonctionnement d’un système qui évolue de façon


autonome. c'est-à-dire dont les instants de franchissement ne sont pas connus
on pas indiqués.
Réseaux de Petri non autonomes

P1 T1 P2
Printemps été
21 mars
21 décembre T4 T2 21 juin

P4 T3 P3
hiver automne
21 septembre

Cycle officiel des saisons

Un RdP non autonome décrit le fonctionnement d'un système dont l‘évolution


est conditionnée par des événements externes ou par le temps. Un RdP non
autonome est synchronisé et/ou temporisé
Structures particulières

Graphe d’événements
Un graphe d’événements est un RdP tel que chaque place a exactement une
transition d’entrée et une transition de sortie.
Structures particulières

Graphe d’états
Un graphe d’états est un RdP tel que chaque transition a exactement
une place d’entrée et une place de sortie.
Réseau de Petri borné, réseau sauf

Une place Pi est bornée pour M0 si pour tout marquage accessible à partir de
M0 le nombre de marques dans Pi est borné.
Un RdP est borné si toutes ses places sont bornées quelque soit M0 borné.

P1
P1
T1 T1
P2
P2
T2

RdP borné RdP non borné

Si la borne est égale à 1, le RdP est dit sauf


Vivacité

Une transition Tj est vivante pour M0 si pour tout marquage accessible de Mi,
il existe une séquence de franchissement S à partir de Mi qui contient Tj
P1
T1
P1 P2
T1 T2
P2 P3
T2 T3

-a- T1 est vivante -b- T1 est non vivante


Un RdP est vivant si toutes ses transitions sont vivantes

-a- RdP vivant -b- RdP non vivant


Blocage

Un blocage est un marquage tel qu'aucune transition n’est validée.


Un RdP est dit sans blocage pour un marquage M si aucun marquage
accessible à partir de M n’est un blocage.

P1
P1
T1 T2 T1 T2
P2 P3 P2 P3
T3
T3 T4
P4
P4 P5
T4 T5 T6

-a- RdP avec blocage -b- RdP sans blocage


mais non vivant
Conflits

Un conflit effectif est l’existence d’un conflit structurel


K = <Pi, {T1,T2,…}> et d'un marquage M, tel que le nombre de marques dans
Pi est inférieur au nombre de transitions de sortie validées par M.

P1

conflit effectif
T1 T2

P1 P2 P3 P1

T1 T2 T1 T2

Pas de conflit effectif Pas de conflit effectif


Exemple de conflit

Deux mémoires communes


Calculateur 1 Deux calculateurs où
chacun d’entre eux a
besoin de deux mémoires
communes pour effectuer
Mémoire commune sa tâche
Mémoire commune États de chaque calculateur
:
N’a pas besoin de la mémoire
Demande une mémoire
Utilise une mémoire et
Calculateur 2 demande la deuxième
Utilise les deux mémoires
Exemple de conflit

Mémoires
libres
p1 p9 p5
Modèle RdP

t1 t5

p2 p6
Conflit structurel
t4 t8

t2
t6

p3 p7
2 2

p4 t3 t7 p8

Calculateur 1 Calculateur 2
Exemple de conflit

Mémoires
libres
p1 p9 p5
Modèle RdP

t1 t5

Après le franchissement de t8,t4,t5


p2 p6
t4 t8

t2
Conflit effectif
t6

p3 p7
2 2

p4 t3 t7 p8

Calculateur 1 Calculateur 2
Exemple de conflit
Mémoires
libres
p1 p9 p5
Modèle RdP

t1 t5

p2 p6
Après le franchissement de t1
t4 t8

t2
t6 Blocage le RdP n’est pas
p3 p7 vivant
2 2

p4 t3 t7 p8 Le système est mal conçu!

Calculateur 1 Calculateur 2
Invariants linéaires de places
et composantes conservatives

Un invariant linéaire de places {P1, ..., Pr} est une somme pondérée des
marquages de ces places telle que :
q1M(P1) + … + qr M(Pr) = constante, pour tout M ∈ *M0.
L'ensemble des places {P1, …, Pr} est une composante conservative

P1 T1 P2
Printemps été

T4 T2

P4 T3 P3
hiver automne

A tout instant on a l’invariant : m1 + m2 + m3 + m4 = 1


L'ensemble des places {P1, P2, P3, P4} est une composante conservative
Séquences répétitives
et composantes répétitives

Une séquence répétitive est une séquence de franchissement S = T1 ... Tr à


partir d'un marquage M qui donne le même marquage M.

L'ensemble (T1 … Tr) est une composante répétitive.


P1

T1
P2 P3 P4

T2 P4 T3

A partir du marquage initial, si on franchit la séquence S=T1T2T1T3 on


revient au marquage initial
Recherche des propriétés
graphe des marquages
Le graphe des marquages est composé :
Nœuds = marquages accessibles
arcs = franchissement des transitions
0
P1 T1 2
2 T1 1 M2
T1
0 1
T2 0
P2 T2
M0 M1 1
M3

On peut trouver toutes les propriétés du RdP à partir du graphe des marquages.

On peut voir qu’il est borné, qu’il n'est pas vivant et qu’il a 2 états de blocage.
exemple
P1 P = {P1, P2, P3, P4, P5}
2 T = {T1, T2, T3, T4, T5}
T1
P3
P2
V(T1, P2) = 1
T2 T3 V(P1, T1) = 2

P4 P5 .
2 V(T5, P1) = 2
T4 T5
Exemple (suite)
M0
T2
M1 T5
M2 T3
T4

T3 T1

T2
M3 M4
T4
1 1 3 1 1
0 1 0 1 0
M0 = 0 M1 = 0 M2 = 0 M3 = 1 M4 = 1
1 0 0 0 1
1 1 0 0 0
Analyse par énumération
Il consiste à construire un graphe des marquages accessibles sur lequel on
peur vérifier l’ensemble des propriétés des RdP

Exemple :
P1 T2
T1 P2

P3 T3
Analyse par énumération
0 0
0 0
M0 = T3 Blocage
1 1
0 1

T1

1 1 0
0 0 1
T3 T2 Blocage
1 0 0
0 1 1

T1

2 2 1 0
0 0 1 2
T3 T2 T2 Blocage
1 0 0 0
0 1 1 1
Propriétés des réseaux de Petri
ensemble des marquages accessibles

P1
T1
P2 P3

T2 T3
P4 P5
T4

II y a 5 marquages M0, M1, M2, M3, M4 atteignables qui constituent l’ensemble


des marques accessibles du RdP (noté *M0).

Le franchissement de T1 puis de T2 s’appelle une séquence de franchissement,


on note S = T1T2 cette séquence.
Algèbre linéaire
Introduction

On obtient l’évolution d’un RdP:


en suivant graphiquement le marquage et la
propagation des jetons
Grâce à l’équation fondamentale
Algèbre linéaire:
Matrices d’incidence
Équation fondamentale
Algèbre linéaire
Notations

Pré (pi,tj) =
poids de l’arc pi → tj si l’arc existe
0 sinon
Post (pi,tj) =
poids de l’arc tj → pi si l’arc existe
0 sinon
S est le vecteur caractéristique d’une séquence S tel que:
S est une séquence de franchissement réalisable à partir d'un marquage
Mi donnant Mk
S est un vecteur de dimension n égale au nombre de transitions dans le
réseau et sa composante numéro j correspond au nombre de fois où la
transition tj est franchie dans la séquence S
Algèbre linéaire
Matrices d’incidence et équation
fondamentale
Dans les matrices d’incidence, les transitions représentent
les colonnes et les places représentent les lignes
Matrice d'incidence avant
W _ = [pré(pi, tj )]
Matrice d'incidence arrière
W + = [post (pi, tj )]
Matrice d'incidence
W = W + −W −
Équation fondamentale
M k = Mi + W × S
Algèbre linéaire
P1
T1
P2 P3

T2 T3
P4 P5
T4

Un RdP ordinaire non marqué est un quadruplet Q = <P, T, Pré. Post>


P = {P1, P2, …, Pn} est un ensemble fini et non vide de places
T = {T1, T2, ..., Tm} est un ensemble fini et non vide de transitions
P∩T=∅
Pré : P x T {0,1} est l'application d'incidence avant
Post : P x T {0,1} est l’application d'incidence arrière
Matrices d'incidence
Matrice d'incidence avant : W- = [w-ij] où w-ij =Pré(Pi, Tj)
Matrice d'incidence arrière : W+ = [w+ij] où w+ij =Post(Pi, Tj)

T1 T2 T3 T4 T1 T2 T3 T4
1 0 0 0 P1 0 0 0 1 P1
0 1 0 0 P2 1 0 0 0 P2
W- = 0 0 1 0 P3 W+ = 1 0 0 0 P3
0 0 0 1 P4 0 1 0 0 P4
0 0 0 1 P5 0 0 1 0 P5

Matrice d'incidence : W = W+ - W-
T1 T2 T3 T4
-1 0 0 +1 P1
+1 -1 0 0 P2
W= +1 0 -1 0 P3
0 +1 0 -1 P4
0 0 +1 -1 P5
Équation fondamentale
Franchissement de la transition T2

0 -1 0 0 +1 0 0 0
0
1 +1 -1 0 0 1 -1 0
1
1 + +1 0 -1 0 . = 1 + 0 = 1
0
0 0 +1 0 -1 0 +1 1
0
0 0 0 +1 -1 0 0 0

Mi W ST Mk

Mi + W . S = Mk

Remarque : A un vecteur F de dimension m, il peut correspondre zéro, une ou


plusieurs séquences de franchissement.
Algèbre linéaire
Exemple
p1

M k = Mi + W × S
t1

1 − 1 0 0 1  1 0
0        p2 p3

   1 − 1 0 0  1 0
M 2 = 0  +  1 0 − 1 0  x   = 1  t2
    0    t3

0   0 1 0 − 1   1 p4
0  0 0 1 − 1  0 p5
  0
t4
Composantes conservatives et
invariants de marquages

F = (q1, q2, …, qn) avec qi ∈ N tel que FT.W = 0


F est un P-semi-flot
Mi = M0 + W . S
Pour tout marquage Mi atteignable par une séquence de franchissement S :

FT . Mi = FT . M0 + FT . W . S
Si FT . W = 0, on a FT . Mi = FT . M0 quelle que soit S
Composantes conservatives et
invariants de marquages (suite)
-1 0 0 +1
+1 -1 0 0
[1 1 0 1 0] +1 0 -1 0 = [0 0 0 0 0 ]
0 +1 0 -1
0 0 +1 -1
FT W

{P1, P2, P4} est une composante conservative. Avec le marquage initial
M0 = (1, 0, 0, 0, 0), on a l’invariant linéaire de places : m1 + m2 + m4 = 1.

Il existe des algorithmes de calcul des P-semi-flots minimaux


(SILVA – MEMMI)
Composantes répétitives et
invariants de franchissement
Y = (q1, q2, …, qm) avec qi ∈ N tel que : W.Y = 0
Y est un T-semi-flot
Si il existe une séquence de franchissement S telle que S est un T-semi-flot,
alors :
Mi = M0 + W . S = M0
S est une séquence répétitive = invariant de franchissement
Composantes répétitives et
invariants de franchissement
(suite)
-1 0 0 +1
1
+1 -1 0 0
1
+1 0 -1 0 . = [0 0 0 0 ]
1
0 +1 0 -1
1
0 0 +1 -1
W Y

S = {T1, T2, T3, T4} est un invariant de franchissement.

L’invariant d’un T-semi-flot est une condition nécessaire pour qu’un RdP
soit réinitialisable.
Quelques classes de RdP

Réseaux de Petri à arcs inhibiteurs


Réseaux de Petri colorés
Introduction de couleur à chaque marque d’une place
Réseaux de Petri Temporisés
Introduction de la temporisation
Réseaux de Petri continus
Introduction du marquage continu
Réseaux de Petri hybrides
Introduction du marquage continu et discret dans le même
réseau de Petri
….
Extensions
Réseaux de Petri a arcs inhibiteurs

T1 non validée T1 validée

P1 P2 P1 P2 P1 P2

T1 T1 T1

P3 P3 P3

Avant Après
franchissement franchissement
Les réseaux de Petri colorés
Gb Db
Chariot Bleu
Deux
Ab Bb systèmes
Gr Dr identiques
Chariot rouge
Ar Br
b r
P1 P1
déplacement à gauche déplacement à gauche
b r
T1 T1
arrivée à gauche arrivée à gauche

b r
P2 déplacement à droite P2 déplacement à droite

b r
T2 arrivée à droite T2 arrivée à droite

Chariot Bleu Chariot rouge


Simplification par fusion

On voit que le modèle des deux systèmes est compose de deux RdP identiques.
Peut-on représenter le fonctionnement des deux chariots par un seul RdP ?
P1
On fusionne les deux RdP en un seul :

T1

P2

T2

Ce modèle ne décrit pas correctement le fonctionnement des deux chariots


Quelques classes de RdP
les RdP Colorés

Les réseaux de Petri colorés


Association d’un identificateur ou une « couleur » à chaque
marque
À chaque transition est associé un ensemble de couleurs où
chacune de ces couleurs indique une possibilité de
franchissement
Une fonction est associée à chaque arc afin de traduire la
relation entre la couleur associée à la transition et choisie pour
franchir cette transition et la couleur associée à la place
correspondante
Introduction de la couleur permet de :
Distinguer les marques
Éviter de répéter des motifs redondants lors de la modélisation
Modéliser des systèmes complexes par une représentation relativement
simple
Notion de couleur

II faut distinguer les marques entre elles pour cela on associe un


identificateur ou une couleur a chaque marque.
On associe la couleur rouge au chariot rouge et la couleur bleue au chariot
bleu.
P1 P1
b r f( b) =b b r
f(r) = r id
T1 {b , r } T1 {b, r}
id
P2 id
P2

id
T2 T2 {b , r}
{b, r}
Notion de fonction
Il y a similitude dans le déplacement des chariots : alternance des mouvements vers la
gauche et vers la droite;
Peut-on représenter les deux mouvements par une même place Pr pour le chariot rouge
?
Pour distinguer l'état "déplacement à droite" de l'état "déplacement à gauche", on associe les
couleurs g et d à la place Pr.
Or définit une fonction f telle que f(g) = d et f (d) = g.
Pr Pr
g d
Franchissement id
f id f
Tr {g,d} Tr {g,d}
par rapport à g
Pr
g
Franchissement
f id
par rapport à d Tr {g,d}
Couleurs et fonctions dans le cas
général
On veut construire un RdP coloré avec une place et une transition pour le
système des deux chariots.
On définit des doublets de couleurs composes de deux couleurs simples : par
exemple le couple <g, r> dans la place P1 indique que le chariot rouge se
déplace vers la gauche.
P1
<g, r >
<g, b >
f id
T1 {<g, r >, <g, b >, <d, r>, <d, b >}

Avec : f(<g, r>) = <d, r >


f(<d, r>) = <g, r>
f(<g, b >) = <d, b >
f(<d, b >) = <g, b >
RdP coloré = abréviation

P1 P1
< >
Dépliage
f Ta1 Tb1
T1
id { , }
Pa2 Pb2
P2 < a > Pliage
id Ta2 Tb2
T2 { <a>,<b> }

Avec : f(<a >) = < >


f(<b >) = < >

Le RdP coloré est général dans sa structure et permet d’avoir une grande
concision.
Quelques classes de RdP
les RdP Colorés
f(C1)= C1 +C2
f(C2)= C2 Franchissement
de T2/C2
Franchissement Franchissement
C1 C1
de T1/C1 de T2/C1
C2

f f f
{C1,C2} {C1,C2} {C1,C2}
t1 f t1 t1
f f

id id C1 id
C2 C2

id id id
{C1,C2} {C1,C2} {C1,C2}
t2 t2 t2
Modélisation
Par coloration totale, tout RdP ordinaire R peut être transformé en un
RdP coloré avec une seule place et une seule transition.
P
Mc0

Pré
T {<T1 >, …,<Tm>}
Post
Dans ce modèle la place P résulte de la fusion des places Pi de R et la
transition T, de la fusion des transitions Tj de R.
L'ensemble des couleurs associées à la place P est l’ensemble des places Pi,
soit :
C(P) = {<P1 >, …,<Pn>}
et l’ensemble de couleurs associées à la transition T est :
C(T) = {<T1 >, …,<Tm>}
Exemple d’application : une ligne de
fabrication

Stock 1 Machine 1 Stock 2 Machine 2

La ligne de fabrication produit deux types de pièces p1 et p2 a l’aide de deux


machines munie chacune d’un stock d'entrée.
Toutes les pièces passent dans le même ordre sur les deux machines. Elles
sont portées par des palettes (ni pour les pièces de type pi) recyclées à la fin
de la production de chaque pièce.
L’ordonnancement du système consiste à envoyer alternativement les
deux types de pièces : p1, p2, p1, p2, ...
RdP coloré pour la ligne de fabrication
(coloration par rapport au type de pièce)
n1 C1
n2 C2
ST1

T1
{C1, C2}
ML1
MO1 succ(C1) = C2
C1
succ(C2) = C1
T1. {C1, C2}
succ
ST2
Dans ce modèle, la coloration est faite par,
T2 {C1, C2} rapport aux pièces, l'ensemble de couleurs
ML2 (C1, C2) est associé à toutes les places et a
MO2 C1 toutes les transitions.

T2. {C1, C2} modèle = géographie de la ligne de


succ fabrication.
RdP coloré pour la ligne de fabrication
(coloration par rapport aux pièces et aux
machines)
L'emploi de couleurs simples n’est pas toujours le meilleur choix.
Par exemple, si le nombre de machines dans la ligne de fabrication
augmente, le modèle global devient complexe.
Une solution consiste a colorer le modèle par rapport aux machines.
n1 <C1, m1>
n2 <C2, m2>
ST
C x M = {<ci, mj>} 1 ≤ i ≤ 2, 1 ≤ j ≤ 2
Succ1(<C1,mj>) = <C2, mj> T1 CxM
Succ1(<C2,mj>) = <C1, mj>
Succ2(<Ci,m1>) = <Ci, m2> succ1
<C1, m1>
MO <C2, m2> ML
Succ2(<Ci,m2>) = <Ci, m1>
Succ1(<Ci,mj>) = <Ci+1, m1> (modulo 2) T2 CxM
Succ1 = ordonnancement
Succ2 = gamme de fabrication succ1
Les réseaux de Petri
temporisés
Un RdP temporisé permet de décrire un système dont le fonctionnement dépend du
temps. Ils sont utiles pour l’évaluation des performances d'un système.

La temporisation peut être modélisée de deux façons :

• temporisation associée aux places (RdP P-temporisé)


• temporisation associée aux transitions (RdP T-temporisé)

Un RdP P-temporisé est un doublet <R, Tempo> tel que :


• R est un RdP marqué
• Tempo est une application de l'ensemble des places P dans Q.
Tempo (Pi) =di : temporisation associées à la place Pi.

Un RdP T-temporisé est un doublet <R, Tempo> tel que :


•R est un RdP marqué
• Tempo est une application de l'ensemble des places P dans Q.
Tempo (Ti) =dj : temporisation associées à la transition Tj
Principe du fonctionnement d'un
réseau de Petri P-temporisé
T1 T1 T1 T1

P1 d1 P1 d1 P1 d1 P1 d1
T2 T2 T2 T2
P2 P2 P2 P2
d2 d2 d2 d2
T3 T3 T3 T3

Marque indisponible
dans P1
Marque disponible dans d1
P1
Marque indisponible
dans P2 d2
Franchissement de T1

Franchissement de T2
Principe du fonctionnement d'un réseau de
Petri T-temporisé
T1 T1 T1 T1

P1 d1 P1 d1 P1 d1 P1 d1
T2 T2 T2 T2
P2 P2 P2 P2
d2 d2 d2 d2
T3 T3 T3 T3

Marque non réservée dans P1


d1
Marque réservée dans P1 d2
Marque non réservée dans P2

(fin de ) Franchissement de T1
Décision de Franchir T2

Franchissement de T2
Quelques classes de RdP
les RdP Continus

Les réseaux de Petri continus


Le nombre de marque des place est un nombre réel non négatif
À chaque transition est associé une vitesse ou un débit de
franchissement.
La vitesse de franchissement peut être variable (RdP continu à
vitesses variables) ou constante (RdP continu à vitesses
constantes).
Utilisation du RdP continu permet de :
Éviter un nombre de marquages très grand
Modéliser des systèmes complexes avec un nombre de ressources très
important
Quelques classes de RdP
les RdP hybrides

Les réseaux de Petri hybrides


contiennent deux types de places et de transitions
Places continues (C-places) et places discrètes (D-places)
Transitions continues (C- transitions) et transitions discrètes (D-
transitions)
Un arc doit relier une C-transition à une D-place dès lors que l’arc
réciproque existe
L’utilisation du RdP hybrides est bien adaptée pour modéliser
un fonctionnement permanent
Conclusion
Les RdP sont d’un formalisme aisé facile à manipuler
Atout indéniable un « arsenal » théorique important
s’avèrent très intéressant pour l’analyse structurelle et des performances :
lors la conception des systèmes
pour leur diagnostic
La modélisation à l’aide des réseaux de Petri offre des techniques formelles et
opérationnelles particulièrement bien adaptées pour la visualisation et l’analyse des
systèmes comportant:
lors la conception des systèmes du parallélisme
pour leur diagnostique de la synchronisation
du partage des ressources
Etant suffisamment généraux pour modéliser des phénomènes très variés, les
réseaux de Petri ont été appliqués à plusieurs domaines tels que celui de la
production, de l’informatique et du transport. D’autre part, les propriétés des réseaux
de Petri ont été et sont encore largement étudiées
Bibliographie

David, Alla « du Grafcet aux Réseaux de Petri » Edition Hermes

G. W. BRAMS, « Réseaux de PETRI : théorie et pratique », Editions


MASSON, 1983

P. ANDRE, A. VAILLY, « Conception des systèmes d’information


Panorama des méthodes et des techniques »,
Editions Ellipses, janvier 2001

Vous aimerez peut-être aussi