MÉTHODES FORMELLES
COURS3: RÉSEAUX DE PÉTRI
Sana Younes Dridi
younessana@yahoo.fr
1
Faculté des Sciences de Tunis
Département des Sciences de l’Informatique
Section Mastère
INTRODUCTION
Un système est constitué par un ensemble d’éléments
en interaction dynamique.
Il possède des variables d'entrée et des variables de
sortie
Un modèle est une représentation (mathématiques) des
relations qui existent entre les variables de sortie et les
variables d’entrée du système.
Cette représentation nécessite souvent l’introduction de
variables supplémentaires appelées variables d’état.
Dans un bon modèle, les relations mathématiques qui le
constituent permettent de déterminer « exactement » les
valeurs des variables de sortie en fonction des variables
d’état des variables d’entrée
2
PLAN
RdP ordinaire
RdP généralisé
RdP et algèbre linéaire
Propriétés d’un réseaux de Petri
RdP Temporisé
3
RÉSEAU DE PÉTRI : RDP
Un RdP est composé de places, transitions et arcs:
Une place est représentée par un cercle
Une transition par un trait:
Un arc relie soit une place à une transition ou bien d'une
transition à une place jamais une place à une place ou
une transition à une transition
5
EXEMPLE
Tout arc doit avoir à son
extrémité un sommet (place ou
transition)
P1 est en sortie (en aval) de T1.
T2 est en sortie de P1.
De même, P1 est en entrée (en
amont) de T2.
La place P3 est en entrée de T1.
6
RDP: DÉFINITION
On appelle Réseau de Pétri non marqué le
quadruplet Q =< P; T; I;O > où
P est un ensemble fini non vide de places ;
T est un ensemble fini non vide de transitions ;
P∩T = Ø
I(Ti) est l’ensemble des places qui sont en entrée de la
transition Ti ;
O(Ti) est l’ensemble des places qui sont en sortie de la
transition i.
On appelle Réseau de Pétri marqué R =< Q;M0 >
où M0 est le marquage initial.
7
MARQUAGE
Le marquage d'un réseau est son état. Formellement,
un marquage est une application M : P N
Chaque place contient un nombre entier positif ou nul
de marques ou jetons
C'est un vecteur colonne de dimension le nombre de
places dans le réseau. Le iéme élément du vecteur
correspond au nombre de jetons contenus dans la place
Pi.
8
MARQUAGE INITIAL
On appelle marquage initial, noté M0, le marquage
à l’instant initial (t = 0).
Exemple:
9
CONDITIONS/ ÉVÉNEMENTS
Les places symbolisées par des cercles représentent
des conditions qui traduit l’état d’une ressource du
système
une machine est au repos,
une machine est en réparation
une commande en attente
Les transitions symbolisées par des tirets représentent
l'ensemble des événements (les actions se déroulant
dans le système) dont l'occurrence provoque la
modification de l'état du système .
début de traitement sur une machine,
panne sur une machine
début de traitement d’une commande 10
CONDITIONS/ÉVÉNEMENTS
Une condition sera toujours satisfaite ou non
satisfaite.
Un événement ne peut se produire que si toutes
ses conditions amonts sont satisfaites,
11
PLACES/TRANSITIONS
La condition peut contenir plus d’un jetons
Lors d’une occurrence d’un événement :
on décrémente de 1 le nombre de marques dans
chacune des conditions amonts,
on incrémente de 1, le nombre de marques dans
chacune des conditions avales.
Avec ce type d’extension, on ne parlera plus :
de conditions, mais de places,
d’événements, mais de transitions et par conséquent on
parlera de réseau de places et de transitions.
Réseaux de de conditions et d’événements
Réseaux de places et de transitions : 12
EXEMPLE
Atelier de coupe de bois
Un atelier est constitué d’une machine de coupe et d’un
stock. Quand une commande arrive et que la machine de
coupe est disponible, la commande peut être traitée
(Opération de découpe). Une fois le traitement terminé, la
commande qui a été traitée est stockée. Sinon, la commande
doit attendre que la machine se libère avant de pouvoir être
traitée.
Conditions:
La machine de coupe est au repos
Une commande est en attente
La commande est en cours de traitement
La commande est terminée.
Evénements:
Une commande arrive
La machine débute le traitement de la commande
La machine termine le traitement de la commande
13
Dans P2: deux commandes en
attente
Dans P1: un jeton indique que
la machine est libre, alors que
l’absence d’un jeton indique que
la machine n’est pas disponible.
Dans P3: indique qu’une
commande est en train d’être
traitée par la machine de coupe
Dans P4: Le nombre de jetons
dans la place P4 indique le
nombre de commandes qui ont
été traitées et stockées
14
FRANCHISSEMENT D'UNE TRANSITION
Une transition est franchissable (tirable) lorsque toutes
les places d'entrée de la transition contiennent au moins
un jeton.
Le franchissement (le tir) consiste à retirer un jeton de
chacune des places d'entrée et à rajouter un jeton à
chacune des places de sortie de la même transition.
Exemple: le franchissement de T1 consiste à enlever un jeton
de P1 et à ajouter un jeton à chacune des places P2, P3 et
P4 (sortie de la transition T1).
Avant franchissement Apres franchissement
15
EXEMPLE
Il n’y a pas conservation à priori du nombre de
jetons dans le graphe
18
CAS PARTICULIERS
Transition source: une transition sans place
d'entrée.
Le franchissement d'une transition source
consiste à rajouter un jeton à chacune de ces
places de sortie.
Transition puits: une transition sans place en
sortie de la transition
Le franchissement d'une transition puits
consiste à retirer un jeton de chacune de ses
places d'entrée.
19
SÉQUENCE DE FRANCHISSEMENT
Une séquence de franchissement « s » est une
suite de transitions 〈T1, T2, …, Tn〉 qui permet, à
partir d’un marquage « M », de passer au
marquage « M’ » par le franchissement successif
des transitions définissant la séquence.
T1T2 et T1T3 sont deux
séquences de franchissement
M0=[1000]T
M1=[0100]T après T1
M2=[0001]T après T3
20
MARQUAGE ACCESSIBLES
L'ensemble des marquages accessibles est
l'ensemble des marquages Mi qui peuvent être
atteint par le franchissement d'une séquence S à
partir du marquage initial M0.
*M0={Mi tel que Mi[SMj}
Exemple:
*M0={M0M1M2M3}
T1, T1T2, T1T3
M0=[1000]T
M1=[0100] T
M2=[0010] T
M3=[0001] T 21
EXEMPLE 1:
Évidemment, un graphe de marquage peut être
infini. Il est facile de voir ce fait en examinant la
place « p2 » qui ne fait que recevoir des jetons.
22
EXEMPLE 2
Le graphe d’accessibilité est encore une fois infini.
En voici une partie :
23
RDP SANS CONFLIT
Un RdP sans conflit est un réseau dans lequel chaque
place a au plus une transition de sortie.
Un RdP avec conflit est un réseau qui possède donc
une place avec au moins deux transitions de sorties.
Un conflit est noté: [Pi , {T1,T2,…,Tn}] ; avec T1,T2,…,Tn
étant les transitions de sorties de la place Pi .
Exemple:
24
Le conflit est [P1 , {T1,T2}]
CONFLIT
Une des caractéristiques importante des RdP de
conditions et d’événements réside dans leur
caractère non déterministe en cas de situation de
conflit.
P1 et P2 en compétition pour accéder à une unité
de stockage
25
RDP À CAPACITÉS
Un RdP à capacités est un RdP dans lequel des
capacités (nombres entiers strictement positifs)
sont associées aux places.
Le franchissement d’une transition d’entrée d’une
place Pi dont la capacité est cap(Pi) n’est possible
que si le franchissement ne conduit pas à un
nombre de jetons dans Pi qui est plus grand que
Cap(Pi).
26
EXEMPLE
Dans figure Fig.c le franchissement de T1 conduit à
3 jetons dans P2 d’où T1 ne peut pas être franchie
27
RDP À PRIORITÉS
Dans un tel réseau si on atteint un marquage tel
que plusieurs transitions sont franchissables, on
doit franchir la transition qui a la plus grande
priorité.
28
EXEMPLE
Système décrivant 4 saisons.
S'il est printemps et l’événement "début d‘été" se
produit, la saison change à l’été. Ensuite, si
l‘événement "début de automne " se produit, la
saison est automne, etc …
30
EXEMPLE: ASSEMBLAGE D'UN MOTEUR
L'assemblage d'un moteur est constitué de 3
opérations séquentielles, dans 3 ateliers différents :
Chaque moteur est posé sur une palette spéciale; il
y en a 5 au départ
pose du bloc
pose du carter
test qualité
32
PLAN
Définition
RdP généralisé
RdP et algèbre linéaire
Propriétés d’un réseaux de Petri
RdP Temporisé
34
RDP GÉNÉRALISÉ
Un RdP généralisé est un RdP dans lequel des
poids (nombres entiers strictement positifs) sont
associés aux arcs.
Si un arc ( Pi,Tj ) a un poids k : la transition Tj n'est
franchie que si la place Pi possède au moins k
jetons. Le franchissement consiste à retirer k jetons
de la place Pi
Si un arc ( Tj,Pi ) a un poids k : le franchissement
de la transition rajoute k jetons à la place Pi
Lorsque le poids n’est pas signalé, il est égal à 1
par défaut
35
PROPRIÉTÉ
Tout réseau de Petri généralisé peut être transformé
en RdP ordinaire.
Malheureusement ce type de transformation bien
que possible engendre souvent une grande
complexité.
44
PLAN
Définition
RdP généralisé
RdP et algèbre linéaire
Propriétés d’un réseaux de Petri
RdP Temporisé
45
RDP GÉNÉRALISÉ: DÉFINITION FORMELLE
R = (P, T, Pre, Post)
P : ensemble fini des places
T : ensemble fini des transitions
Pre : PxT -> N fonction d'incidence avant
Pre(p, t) contient la valeur entière « n » associée à l’arc
allant de « p » à « t »
Post : PxT -> N fonction d'incidence arrière
Post(p, t) contient la valeur entière « n » associée à l’arc
allant de « t » à « p »
46
REPRÉSENTATION MATRICIELLE DE RDP
Pre: La matrice Pre définit la pré-condition (les contraintes pour que
les transitions soient franchissables)
Post: la matrice Post définit la post-condition, c’est-`a-dire ce qui se
passe après le franchissement.
47
TRANSITION SENSIBILISÉE
Une transition t d’un réseau de Pétri est sensibilisée
pour un marquage M si et seulement si :
Pre(p,t)
52
TRANSITION TIRABLE
Définition: Dans un RdP, toute transition tirable « t » peut être
tirée et son tir conduit à un nouveau marquage M’ définit par:
For all p ∈ P, M’(p) = M(p) – Pré(p, t) + Post(p, t)
Définition (Matrice d'incidence): La matrice d’incidence d’un
réseau, notée C, est définie par :
for all p∈P, t∈T, C(p,t) = Post(p,t) – Pré(p,t)
Grâce à cette définition, on peut exprimer le calcul d’un
nouveau marquage « M’ », à partir d’un marquage « M »,
s’obtient, suite au tir de la transition « t », en calculant, pour
toute place « p » du réseau :
M’ = M + C(p,t)
53
Trouvez le marquage après le franchissement de t1
en utilisant les matrices d'incidences
54
VECTEUR CARACTÉRISTIQUE
est le vecteur caractéristique de la séquence de
transitions s = t1t2…..tn
(t) donne le nombre d'occurrences de la transition
t dans s
: T N
Exemple:
Soit la séquence t1t2t2t3t1
Le vecteur caractéristique est [221]T
56
EQUATION FONDAMENTALE
L’équation fondamentale d’un marquage M’ à partir d’un
marquage M
Où est le vecteur caractéristique de la séquence de
transitions = t1t2…tn
Cette équation permet de calculer en une seule opération,
sans parcourir le réseau, le marquage obtenu après le
franchissement de la séquence complète.
Les résultats de l'équation fondamentale, même s'ils sont
toujours calculables, n'ont de sens que si la séquence
représentée par est effectivement réalisable.
57
SÉQUENCE RÉPÉTITIVE
Une séquence est dite répétitive si à partir d’un
marquage initial, on aboutit à un marquage final
identique au marquage initial.
Montrer que la séquence S = T3T2T1 est répétitive
58
SYNCHRONISATION PAR RENDEZ VOUS
Le franchissement de la transition ne peut se faire
que si la place P1 du processus 1 et la place P2 du
processus 2 contiennent chacun au moins un jeton.
62
SYNCHRONISATION PAR SIGNAL (SÉMAPHORE)
Si la place « signal » est
marquée et la place « attente
» ne l’est pas, cela signifie
que le processus P1 a envoyé
le signal mais le processus P2
ne l’a pas encore reçu.
Si, par contre, la place «
signal » n’est pas marquée et
que la place « attente » est
marquée, cela signifie que le
processus P2 est en attente
du signal. 63
SYNCHRONISATION PAR APPEL/RÉPONSE
Une variante du modèle
précédent qui consiste à
faire un signal d’appel
provenant du processus
P1 et un signal de
réponse provenant du
processus P2.
64
REMARQUE
Comment compter le nombre de tir d'une transition
Que devons nous ajouter au graphe de réseau de
Pétri pour le comptage
65
EXCLUSION MUTUELLE
Système avec plusieurs processus
partagent une même ressource
Le jeton dans la place P0 représente
une ressource mise en commun entre
le processus 1 et le processus 2.
Le franchissement de la transition T1
lors de l’évolution du processus 1
entraîne la “consommation” du jeton
dans la place P0. La ressource que
constitue ce jeton n’est alors plus
disponible pour l’évolution du
processus 2.
Exclusion mutuelle est garantie par
l’utilisation exclusive du jeton de la
place P0 par les processus P1 et P2.
66
EXERCICE:
On veut modéliser l'accès à une base de données,
avec les contraintes suivantes :
K "processus" qui tentent d'accéder à la BD soit pour
lire, soit pour écrire.
Pas d'écritures simultanées sur les données.
Pas de lecture et écriture simultanées : risque
d'incohérence des données lues.
Par contre, lectures possibles en parallèle.
Modélisez ce système en complétant le réseau de
Petri suivant.
67
PLAN
Définition
RdP généralisé
RdP et algèbre linéaire
Propriétés d’un réseaux de Petri
RdP Temporisé
70
VIVACITÉ
Lors de l’évolution du système, si certaines
transitions ne sont jamais franchies, cela indique
que l’événement associé à la transition ne se
produit pas et que le marquage d’une partie du RdP
n’évolue pas. Cela indique que le sous système
modélisé par cette partie ne fonctionnera pas.
Il y a donc un problème au niveau de la conception
du système.
Il faut pouvoir détecter ce phénomène par l’analyse
de propriétés du modèle RdP du système
71
VIVACITÉ ….
Réseau vivant: chacune de ses transitions est
vivante.
Transition Ti vivante: pour tout marquage M, il
existe une séquence de franchissement
(transitions) qui permettra de franchir Ti.
Exemple de réseau non vivant: transition T3 non
vivante.
72
QUASI - VIVACITÉ
Une transition T est quasi vivante pour
un marquage initial M0 s’il existe une
séquence de franchissements à partir
de M0 contenant T
Un RdP marqué est quasi vivant pour
un marquage initial M0 si toutes ses
transitions sont quasi vivantes pour ce
marquage initial.
Ce RdP n’est pas vivant car T2 etT3 ne
sont pas vivante
Ce Rdp est quasi-vivant
74
BLOCAGE (DEADLOCK)
Un deadlock(blocage) est un marquage à partir
duquel plus aucune transition n'est tirable.
75
RDP REINITIALISABLE ….
Réseau réinitialisable ou propre: pour chaque
marquage, il existe une séquence de
franchissement permettant de revenir dans l'état
initial.
77
RDP BORNÉ…..
Toutes ses places sont bornées
Place k bornée: nombre de jetons toujours inférieur
à une borne k.
Réseau sauf(binaire) : k=1.
Exemple :
modélisation d'un stock à capacité limitée.
modélisation d'un fonctionnement de type automatisme
logique .
Tester si le système logique est cohérent revient alors à
vérifier que son modèle RdP est sauf.
79
EXEMPLE
Remarque: les propriétés précédentes dépendent
du marquage initial.
Exemple, pour le RdP suivant si le marquage initial était
[0 N]T, ce RdP serait borné (N borné).
Propriété: Si un RdP marqué n’est pas borné pour
le marquage initial M0 alors il n’est pas borné pour
tout marquage initial tel que:
M’0> M0. 80
PLAN
Définition
RdP généralisé
RdP et algèbre linéaire
Propriétés d’un réseaux de Petri
RdP Temporisé
82
TIMED PETRI NETS - RÉSEAUX DE PETRI
TEMPORISÉS
Dans le modèle classique, les transitions sont
activées sans tenir compte des contraintes
temporelles comme les temporisations
Deux façons de modéliser la temporisation:
par une temporisation associée aux places
RdP P- temporisé: Timed Places Petri nets (TPPNs).
ou associée aux transitions
RdP T- temporisé: Timed Transitions Petri nets (TTPNs)
83
RDP P- TEMPORISÉS
A chaque place P est associé une temporisation T,
éventuellement nulle
T peut être constant ou variable
Principe de fonctionnement: lorsqu’un jeton est
déposé dans une place P, ce jeton doit rester au
moins pendant le temps T.
On dit que le jeton est indisponible pendant cette
durée. Quand la temporisation T s’est écoulée,
alors le jeton devient disponible
84
RÉSEAU DE PETRI STOCHASTIQUE
Définition: Un réseau de Petri stochastique est un
réseau de Petri dans lequel les temps de
franchissement des transitions sont générés par
des variables aléatoires de distributions données
quelconques à support dans [0,∞).
Utilisation:
Permet de modéliser des tâches avec des temps
d’exécution non déterministes
Possibilité de prendre en compte des pannes
aléatoires
89
SPN VERS CTMC
Le graphe d’accessibilité d’un SPN ressemble à
une CTMC
Pour chaque marquage de graphe est associé un
état de la CTMC
Pour chaque transition franchissable est associée
un évenement de transition dans la CTMC
90
EXEMPLE 1: SPN ET GRAPHE DE MARQUAGE
Stochastic Petri net (SPN)
91
EXEMPLE 2: 2 PROCESSEURS ET 1 MÉMOIRE
PARTAGÉE
Construire le graphe de marquage de ce réseau
Ecrire le générateur infinitisimal de la chaine de
Markov correspondante
99
TRANSITIONS IMMÉDIATES
Les transitions immédiates modélisent
les évènements qui ont une durée
d’exécution nulle
Lorsqu’elles sont franchies, elle sont
franchies immédiatement et ont la
priorité de franchissement sur toutes les
autres transitions temporisées
Si deux ou plusieurs transitions
immédiates puissent être franchies au
même moment, une probabilité de
franchissement de chacune de ces
transitions doit être mentionnée sur le
modèle 102
GSPN
Generalised Stochastic Petri Nets (GSPN)
Réseau de Petri stochastique généralisé
Extension du formalisme SPN
Deux primitives sont nouveaux:
Les transitions immédiates
Le temps de franchissement des transitions non
immédiates (temporisées) peut suivre des lois de
probabilités autres que exponentielles
103
TRANSITIONS IMMÉDIATES
Les transitions immédiates modélisent
généralement les évènements:
Actions de contrôles qui prennent un temps négligeable
d’exécution (e.g. accès à la mémoire partagée dans le
modèle du multiprocesseur)
Actions de choix entre deux ou plusieurs alternatives.
Cette actions sont généralement instantanées
104
T2 et T5: deux évènements
d’accès à la mémoire
Elles sont instantanées
NB
L’évaluation des chaines de Markov peut devenir
très complexe si la taille de la chaine est énorme
Les réseaux de Petri offrent des méthodes
d’analyse plus riches pour des systèmes arbitraires
GSPN Generalized Stochastic Petri Nets: le délai
des transitions peut être:
Déterministe égal à zero
Suit une loi exponentielle
Suit une loi aléatoire
109
AUTRES EXTENSIONS
Réseaux de pétri colorées: Si on désire distinguer
au sein d’un marquage d’une même place, des
marques de types différents
(cours M2 ….)
110