|
Introduction aux Réseaux de Petri
INTRODUCTION
AUX RÉSEAUX DE PETRI
Université Paul Sabatier — Toulouse III
Institut Universitaire
Professionnalisé d’Ingénierie des Systèmes
Informatiques
Cours (12
heures)
Ronan Champagnat
—
LAAS-CNRS
—
Tél : 0 561 336 416
E-mail :
champa@laas.fr
Février 1999
Introduction aux Réseaux de Petri
SUJET DU COURS
Les réseaux de Petri en quelques mots
Classe d'outils de modélisation mathématique et graphique de systèmes
Hypothèse d'un espace d'état discret
Objectif de maîtrise du parallélisme et du partage des ressources
Atout : lisibilité graphique
Application lorsque notions d'événements et d'évolution simultanée
Utilisation en recherche dans le domaine des sciences pour l'ingénieur informatique, automatique, sûreté de fonctionnement, télécommunications
Utilisation de plus en plus fréquente dans l'industrie
Un modèle, pour quoi faire ?
Représentation abstraite du fonctionnement d'un système
Spécifier, concevoir, tester (simuler)
Analyser
Introduction aux Réseaux de Petri
PLAN DU COURS
Première partie De l'observation à la modélisation
Étude d'un exemple de système élémentaire
Recherche d'un modèle de comportement
Deuxième partie Définitions et notations
Éléments de théorie des réseaux de Petri
Structures de base pour la modélisation
Graphe des marquages accessibles
Troisième partie Analyse des réseaux de Petri
Propriétés dépendant de la structure et du marquage initial
Propriétés structurelles
Introduction aux Réseaux de Petri
PREMIÈRE
PARTIE
AU FEU
!
De l'observation à la
modélisation
Étude d'un exemple élémentaire
Système de pompiers faisant la chaîne pour éteindre un incendie
Introduction aux Réseaux de Petri
Principe et objectifs de la
modélisation
Principe : représentation abstraite d'un système
Identification du système
Structure : 3 pompiers (sous-systèmes) en chaîne
Entrée : pompe à eau (débit donné)
Sortie : eau projetée (débit discontinu)
Utilisation d'un outil formel de modélisation
Admission d'hypothèses simplificatrices
Objectifs
Spécifier et/ou concevoir le système
Simuler son comportement
Évaluer ses performances théoriques
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Observation du comportement du
système
Comment représenter le système ?
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Diagramme espace -
temps
Hypothèses de modélisation
Quelles classes de fonctions ?
(quels sont leurs paramètres ?)
Recherche d'un modèle
Les courbes importent-elles ?
(quels sont les points importants
?)
temps
Pompier 1
Pompier 2
Pompier 3
pompe
maison
chemin
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Discrétisation du diagramme espace -
temps
Identification discrète des états
Intérêt : états dénombrables
Changements d'états = événements
Discrétisation événementielle du temps
Événement repère temporel
Deux hypothèses
Événts instantanés
Événts indép. asynchr.
Historique des événemts
temps
Pompier 1
Pompier 2
Pompier 3
apporte
arrose
remplit
revient
échangent
échangent
apporte
revient
revient
apporte
remplit
pompe
maison
échangent
chemin
apporte
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Historique du comportement
Espace d'état du système
C'est l'ensemble des états accessibles
4 états par pompier 64 combinaisons
Certaines combinaisons impossibles (états inaccessibles)
Recherche des états accessibles (sans les
contraintes temporelles) par simulation
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Simulation du
comportement
Qu'est-ce-qu'un graphe ?
Structure G = (X, U) X : ens. fini de sommets xi U : famille d'arcs (xi , xj )
cf. théorie des graphes
Graphe d'occurrence des états du système
X = ensemble des états du système
(xi , xj ) U ssi xj est direct. accessible depuis xi (24 états accessibles différents)
Fermeture graphe fortement
connexe
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Premier modèle du comportement
:
automates à états finis
Qu'est-ce qu'un automate ?
Automate associé au graphe d'état
État courant = sommet marqué
Événements associés aux arcs
cf. théorie des automates
P
V
P
E
E
P
V
P
P
R
P
P
P
P
P
P
V
A
E
E
A
V
P
A
R
P
A
P
P
A
P
V
V
E
E
V
V
P
V
R
P
V
P
P
V
V
E
E
R
E
E
P
E
E
V
V
P
R
V
P
V
V
A
R
V
A
V
V
V
R
V
V
marque
(état courant)
P
=
apporte
(seau plein)
V
=
revient
(seau vide)
A
=
arrose
R
=
remplit
E
, =
échange
(v.p. p.v.)
E
Quel est l'état suivant ?
Inconvénients du modèle
Modèle « à plat »
Modèle non modulaire
Explosion combinatoire du nombre
d'états
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Deuxième modèle du comportement
:
réseaux de Petri
Structuration par sous-systèmes
Pompier = automate à états finis
Quel fonctionnement global ?
Communication entre sous-systèmes
Synchrone : fusion (ou ajout) de transitions
(Asynchrone : ajout (ou fusion) de
places)
Réseau de Petri
(RdP)
Première partie : de l'observation à la
modélisation
P
V
R
E
V
P
E
E
P
V
E
A
Pompier 1
Pompier 2
Pompier 3
¶
·
¸
¹
½
¼
·
¶
º
»
¼
½
R
¸
¹
º
»
¼
½
¶
·
V
P
V
P
V
P
E
E
A
E
E
Introduction aux Réseaux de Petri
Modèle réseau de Petri
Structure
Places
Transitions
Arcs toujours mixtes
(alternés)
Dynamique
état = distribution de marques (jetons) dans les places
évolution indéterministe :
transition(s) sensibilisé(s) si places
amont marquées
Première partie : de l'observation à la
modélisation
apporte
apporte
revient
revient
apporte
revient
t
1
t
2
t
3
t
4
t
5
t
6
t
7
t
8
j
échangent
arrose
remplit
échangent
transition
place
marque
transitions
sensibilisées
P1
P4
P3
P6
P2
P9
P7
P5
P10
P8
P12
P11
Introduction aux Réseaux de Petri
Analyse du modèle
Théorie des réseaux de Petri
1962 : thèse de C. A. Petri ; 1998 : plusieurs milliers de publications
Outil mathématique : recherche universitaire + applications industrielles
Expression de relations entre les états d'un système et des événements
Analyse théorique de propriétés (vérification formelle d'un modèle)
Notions multidisciplinaires (d'automatique,
d'informatique, de math. discrètes)
Propriétés du modèle
Réseau réinitialisable
3 composantes conservatives {p1,p2,p3,p4}, {p5,p6,p7,p8}, {p9,p10,p11,p12}
1 composante
répétitive {t1,t2,t3,t4,t5,t6,t7,t8}
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
Enrichissements du
modèle
Extension du modèle de comportement du système
Ajout de pompiers supplémentaires (en parallèle, en chaîne)
Explosion du graphe des marquages accessibles
Prise en compte du temps
Extension du modèle réseau de Petri
Prise en compte des aspects aléatoires
Durées temporelles stochastiques (par exemple définies par lois normales)
Modélisation d'aléas de fonctionnement (par exemple pompier qui chute)
Évaluation de performances par simulations de
Monte-Carlo puis analyse statistique
Première partie : de l'observation à la modélisation
Introduction aux Réseaux de Petri
DEUXIÈME PARTIE : définitions et
notations
Élements de théorie des réseaux de Petri
Définition
Règle de fonctionnement
Représentation matricielle
Séquence de franchissement
Structures de base pour la modélisation
Expression du parallélisme
Communication entre séquences parallèles
Expression des conflits
Expression du test d'une variable
Autres opérations sur les variables
Graphe des marquages accessibles d'un réseau
Introduction aux Réseaux de Petri
Introduction à la
théorie
Un peu d'histoire
Origine : théorie des automates
1962 : thèse de Carl Adam Petri (professeur de physique à Hambourg) « Kommunikation mit Automaten » (Communication avec les automates )
Années 70 : premiers travaux au MIT (W. Holt, F. Commoner et M. Hack)
Années 80 : recherche très active en Europe
Aujourd'hui : + de 5000 publications, deux congrès internationaux annuels
Un vaste champ théorique
Théorie de base : réseaux de Petri autonomes (RdP)
Extensions (réseaux de Petri non autonomes) :
RdP interprétés
RdP temporisés,
RdP stochastiques,
RdP colorés,
RdP prédicats-transitions,
RdP à objets...
Deuxième partie : définitions et notations
Introduction aux Réseaux de Petri
Définition
Structure d'un réseau de Petri
Un réseau de Petri R est un quadruplet : R = < P, T, Pre, Post >
P est un ensemble de places
T est un ensemble de transitions
Pre : application d'incidence avant Pre : P x T N
Post : application d'incidence arrière Post : P X T N
Pre (p, t) = 0, signifie qu'il n'y a pas d'arc entre la place p et la transition t
Réseau marqué
Un réseau marqué est une paire N = < R, M >
R est un réseau de Petri
M est le marquage initial M : P N
M(p) = nombre de marques (jetons) contenues dans la
place p
Deuxième partie : définitions et
notations
X
U
Introduction aux Réseaux de Petri
Règle de
fonctionnement
Référence de fonctionnement de tout réseau de Petri
Transition sensibilisée (franchissable)
Si pP, M(p) Pre(p,t) alors t est sensibilisée par M
Franchissement (tir) d'une transition t depuis un marquage M
Pré-condition : ds toute pl. amont p de t , consommation de Pre(p,t) jetons
Post-condition : dans toute pl. aval p de t, production de Post(p,t) jetons
Nouveau marquage M' : pP, M' (p) = M (p) Pre(p,t) Post(p,t)
Propriétés primitives du tir
Atomicité (pas de chevauchement)
Asynchronisme (un seul à la fois)
Indéterminisme (aucune règle de choix)
Aucune mesure temporelle (seul l'ordre
compte)
Deuxième partie : définitions et
notations
3
5
2
p
1
t
p
2
p
3
p
4
p
5
M
M'
marquage
initial
marquage
final
Introduction aux Réseaux de Petri
Représentation
matricielle
Notations d’algèbre linéaire
P = {p1,...,pm}, T = {t1,...,tn} ensemble de départ finis notations matricielles
Matrice d'incidence du réseau : C = Pre + Post
Transition sensibilisée
p M(p) Pre(p, t)
ou M Pre(·, t)
Franchissement d'une transition
M' = M - Pre(·, t) + Post(·,
t)
Deuxième partie : définitions et
notations
Pre
t
1
t
i
t
n
p
1
M
p
j
L
Pre
(
p
j
,
t
i
)
p
m
Post
t
1
t
i
t
n
p
1
M
p
j
L
Post
(
p
j
,
t
i
)
p
m
M
p
1
p
j
M
(
p
j
)
p
m
Introduction aux Réseaux de Petri
Séquence de
franchissement
Relation d'accessibilité dans un RdP
Si M' est produit depuis M par franchissement de t, on note : M M'
Transitivité : si M M' et si M' M'' , on pose s = t1t2 et M M''
s = séquence de franchissement
Toute trans.= séquence de longueur 1
Si M M' alors M' = M + Cs (équation fondamentale des réseaux de Petri)
s = vecteur dont les composantes, s(t), sont le nombre d’occurrence des transitions dans la séquence de franchissement
s n'exprime pas l'ordre des transitions
Non réciprocité (M' = M +
Cs M
M')
Deuxième partie : définitions et
notations
t1
t2
s
t
s
s
Introduction aux Réseaux de Petri
Expression du
parallélisme
Notions de base
Notation : Pre(. ,t) colonne t de la matrice Pre (vecteur des pré-cond. de t )
Parallélisme structurel entre t1 et t2 ssi Pre(. ,
t1)T . Pre(. , t2) = 0 t1 et t2 n'ont aucune
place d'entrée commune
Représentation graphique
Remarques :
Parallélisme « absolu » : t1 et t2 à deux sous-struct. non connexes de R
Possibilités de
communications
Deuxième partie : définitions et notations
Introduction aux Réseaux de Petri
Communication entre séquences
parallèles
Départ synchrone
Rendez-vous (synchrone)
Lecture
Sémaphore
(asynchrone)
Deuxième partie : définitions et notations
Introduction aux Réseaux de Petri
Expression des conflits
Notions de base
Conflit entre t1 et t2 ssi :
p P, Pre(p,t1).Pre(p,t2) 0 (t1 et t2 ont au moins une place d'entrée commune)
t1 et t2 tirables mais le tir de l'une peut invalider l'autre
Nécessité de faire un choix (résolution non spécifiée par la règle de fonct)
Complexité de la notion de
conflit
p
1
p
2
t
2
t
1
t
3
Deuxième partie : définitions et
notations
p
1
p
2
p
3
p
4
t
2
t
1
t
3
M
Pre(. ,t1)
M
Pre(. ,t2)
Conflit à choix libres
Conflit à choix libre généralisé
Cas de confusion :
Non transitivité de la relation être en conflit
Introduction aux Réseaux de Petri
Expression du test d'une
variable
Structure de base
Boucle élémentaire entre p (la var.) et t avec Pre(p,t) = Post(p,t) =
Si t franchie, alors p
Ambiguïté de la boucle élémentaire
Non visibilité dans la matrice d'incidence C (valeur 0)
Deux interprétations : lecture sans perturb. ou consommation/production
Problème du test à zéro
Si la borne (valeur maxi.) de p est connue, test de sur la place complémentaire de p p' complémentaire de p ssi pour toute t T, Pre(p',t) = Post(p,t) et Post(p',t) = Pre(p,t)
Sinon, extension de la théorie (RdP à arcs
inhibiteurs)
Deuxième partie : définitions et notations
Introduction aux Réseaux de Petri
Autres opérations sur des
variables
Incrémentation
décrémentation
Test d'égalité (p =)
Affectation (p :=)
Mise à zéro (p :=)
Deuxième partie : définitions et
notations
si p' complémentaire à
p
Les réseaux de Petri sont peu pratiques pour modéliser ces opérations
Introduction aux Réseaux de Petri
Graphe des marquages accessibles d'un réseau
Ensemble des marquages accessibles
Aucun sens sans la donnée du marquage initial M0
A(R,M0) = {M Nm s T*, M0 M } avec m = card(P)
Structure de graphe — noté A(R,M0)
Sommets : éléments de A
Arcs étiquetés par les transitions de R
Lien entre un RdP et son graphe des marquages accessibles
Propriétés remarquables de G propriétés remarquables du RdP
Finitude de A(R,M0) (R,M0) borné
Forte connexité de A(R,M0) (R,M0) rénitialisable
Circuits dans A(R,M0) composantes réptitives stationnaires de R
Problème de la taille de A (explosion
combinatoire du nb. de marquages)
s
Deuxième partie : définitions et notations
Introduction aux Réseaux de Petri
TROISIÈME PARTIE
:
Analyse des réseaux de Petri
Propriétés dépendant de la structure et du marquage initial (« bonnes propriétés »)
Vivacité des transitions d'un réseau
Activité des marquages d'un réseau
Bornes des places d'un réseau
Propriétés structurelles
Invariant de place
Invariant de transition
Introduction aux Réseaux de Petri
Généralités sur les propriétés des
réseaux de Petri
Expression des propriétés fondamentales des systèmes
Premières définitions dans le cadre de la théorie des RdP
Analogies avec d'autres sémantiques opérationnelles du parallélisme
Propriétés dépendant de la structure et du marquage initial
Activité du réseau :
existence de parties mortes (non-vivacité)
possibilités de blocages (non-quasi vivacité)
Possibilités de réinitialisation
Existence de bornes aux places (valeurs maxi. de marquages)
Propriétés ne dépendant que de la structure
Composantes conservatives (sommes pondérées de marq. constantes)
Composantes répétitives stationnaires (séqu. de
franchiss. cycliques)
Troisième partie : analyse des réseaux de Petri
Introduction aux Réseaux de Petri
Vivacité des transitions d'un réseau
Transition vivante et quasi-vivante
t T est quasi-vivante ssi s T*, M0 M’ et M’ Pre(., t) À partir de M0, on peut aller franchir au moins une fois t
t T est vivante ssi M A(R,M0), s T*, M M’ et M’ Pre(., t) Quel que soit le marquage M atteint, on peut toujours aller franchir t
Remarque : t vivante pour M0 t vivante pour M'0 M0
Réseau vivant
(R,M0) est vivant ssi toutes ses transitions sont vivantes
Interprétations
Principe : transition morte modèle
erroné
Troisième partie : analyse des réseaux de Petri
p
1
p
2
p
3
t
1
t
2
t
3
t
4
t
5
exemple :
s
s
Introduction aux Réseaux de Petri
Activité des marquages d'un réseau
Réseau réinitialisable
(R,M0) est réinitialisable ssi M A(R,M0), s T*, M M0
Blocage
M A(R,M0) est bloquant ssi t T, M < Pre(.,t)
(R,M0)
est sans blocage ssi
M A(R,M0), t T,
M Pre(.,t)
s
Troisième partie : analyse des réseaux de
Petri
Réseau vivant non
réinitialisable
Réseau
avec
blocage
p
1
p
2
p
4
p
3
t
1
t
2
t
3
Introduction aux Réseaux de Petri
Bornes des places d'un réseau
Place k-bornée
p P est k-bornée ssi k N, M A(R,M0), M(p) k
si k = 1, p est à marquage binaire (place sauve)
interprétation de p comme une variable booléenne
Réseau k-borné
(R,M0) est k-borné ssi toutes ses places sont au moins k-bornées c'est-à-dire k N, p P, M A(R,M0), M(p) k
si (R,M0) est k-borné, alors A(R,M0) est fini
Interprétations
Principe : syst. physique limité RdP borné
Marqu. accessible par séqu. de franchiss. évaluation de performance
Troisième partie : analyse des réseaux de
Petri
p
3
p
2
t
1
t
2
2
2
p
1
exemple :
exemple :
Introduction aux Réseaux de Petri
Méthodes de détermination des « bonnes
propiétés »
Écriture du graphe des marquages accessibles G(R, M0)
On énumère l’ensemble des marquages accessibles
Problème : lourd à mettre en œuvre lorsque la taille de l’ensemble des marquages accessibles devient grande
Analyse par réduction
Idée : trouver des règles de réduction telles que le réseau réduit conserve les « bonnes propriétés » du réseau à étudier, de façon à n’appliquer l’énumération des marquages accessibles qu’à des réseaux de taille raisonnable
Introduction aux Réseaux de Petri
Invariant de place
Composante conservative (fonction linéaire de marquages cte)
Déf. 1 : B P est une composante conservative de R ssi f : PN tq : et
Déf. 2 : la fonction constante M f T .M est un invariant de place
Prop. 1 : toute place p de B est bornée quel que soit M0 Nm
Prop. 2 : les composantes conservatives de R sont telles que f T.C = 0
Réseau conservatif
Déf. 3 : R est conservatif ssi P est une composante conservative (s’il existe pour P une couverture de composantes conservatives)
Prop. 3 : si R est conservatif,
alors (R,M0) est borné quel que soit M0 Nm
(la réciproque est
fausse)
Troisième partie : analyse des réseaux de Petri
Introduction aux Réseaux de Petri
Invariant de
transition
Troisième partie : analyse des réseaux de
Petri
Composante répétitive stationnaire (séq. de franchisst répétitive)
Déf. 1 : S T est une comp. répétitive stationnaire de R ssi s : TN tq : t S, s (t) 0 et C.s = 0
Déf. 2 : Si s est le vecteur caractéristique d’une séquence s, effectivement franchissable à partir d’un marquage accessible, alors s est un invariant de transition
Réseau répétitif stationnaire
Déf. 3 : R est répétitif stationnaire ssi T est une comp. répétitive stationnaire (s’il existe pour T une couverture de composantes répétitives stationnaires)
Prop. 2 : si (R,M0) est borné et vivant, alors R est répétitif stationnaire (la réciproque est fausse)
Introduction aux Réseaux de Petri
Exemple (analyse
intuitive)
Composantes conservatives
Sous-réseau {p1 , p2 , p3 } M(p1) + M(p2) + M(p3) = cte(M0)
Sous-réseau { p3 , p4 , p5 } M(pc) + M(pr) + 3M(pd) = cte(M0)
Couverture des places de R réseau
conservatif donc (R,M0) borné quel que soit
M0
Troisième partie : analyse des réseaux de
Petri
p
1
p
2
p
4
p
3
p
5
t
1
t
2
t
3
t
5
t
4
3
3
Composantes répétitives stationnaires
Sous-réseau { p1 , p2 , p3 } s1 = t1t2t3
Sous-réseau { p4 , p5 } s2 = t4t5
Couverture des transitions de R réseau répétitif (ne suffit pas pour conclure qu’il est vivant)
Introduction aux Réseaux de Petri
Exemple (analyse
algébrique)
Calcul des composantes conservatives
On cherche l'ensemble des solutions f N5 telles que f T.C = 0
3 équations linéairement indépendantes 2 ( = 53) composantes conservatives
2 invariants de place f1 M(p1) + f2 M(p2) + f3 M(p3) + f4 M(p4) + f5
M(p5) = cte(M0)
f
1
f
2
f
3
f
4
f
5
[
]
-
1
0
+
1
0
0
+
1
-
1
0
0
0
0
+
1
-
1
0
0
0
0
0
+
1
-
1
0
-
1
+
1
-
3
+
3
=
0
Û
-
f
1
+
f
2
=
0
-
f
2
+
f
3
-
f
5
=
0
f
1
-
f
3
+
f
5
=
0
f
4
-
3
f
5
=
0
-
f
4
+
3
f
5
=
0
f
1
=
f
2
f
1
+
f
5
=
f
3
f
4
=
3
f
5
Þ
f
1
1
f
2
1
f
3
1
f
4
0
f
5
0
et
f
1
0
f
2
0
f
3
1
f
4
3
f
5
1
Troisième partie : analyse des réseaux de Petri
Introduction aux Réseaux de Petri
Exemple (analyse
algébrique)
Calcul des composantes répétitives stationnaires
On cherche l'ensemble des solutions s N5 telles que C.s = 0
3 équations linéairement indép. 2 ( = 53) composantes conservatives
Recherche de 2 inv. de transitions (séq. répét. stat.) de proche en
proche
Troisième partie : analyse des réseaux de
Petri
s
1
=
s
2
s
1
=
s
3
s
4
=
s
5
Þ
s
1
1
s
2
1
s
3
1
s
4
0
s
5
0
et
s
1
0
s
2
0
s
3
0
s
4
1
s
5
1
-
1
0
+
1
0
0
+
1
-
1
0
0
0
0
+
1
-
1
0
0
0
0
0
+
1
-
1
0
-
1
+
1
-
3
+
3
s
1
s
2
s
3
s
4
s
5
=
0
Û
-
s
1
+
s
3
=
0
s
1
-
s
2
=
0
s
2
-
s
3
=
0
s
4
-
s
5
=
0
-
s
2
+
s
3
-
3
s
4
+
3
s
5
=
0
Introduction aux Réseaux de Petri
Pour aller plus
loin...
Références bibliographiques
Initiation R. David, H. Alla : « Du Grafcet aux réseaux de Petri » deuxième édition, 1992, HERMES (Série Automatique)
Recherche Lecture Notes in Computer Science : « Advances in Petri nets », SPRINGER-VERLAG
Sur le Web
Home page de Robert Valette (LAAS) http : //www.laas.fr/~robert
Cours polycopié 80 pages (fichier Post-Script)
Lien sur la page « Welcome to the world of Petri nets »
what's new ? (http://www.daimi.au.dk/~petrinet)
bibliography database (http://www.ec-lille.fr/~rdp)
tool database
applet tool
Troisième partie : analyse des réseaux de Petri