Vous êtes sur la page 1sur 51

LO19 Gnie logiciel : Rseaux de Petri 1

LO19 : Gnie Logiciel :


Walter SCHN

Mthodes danalyse, de spcification et de conception des
logiciels : modlisation du comportement dynamique :
Rseaux de Petri

LO19 Gnie logiciel : Rseaux de Petri 2
Rseaux de Petri (RdP) :
gnralits
Utiliss pour modliser les systmes
tats/vnements discrets.
Particulirement efficaces pour modliser
des processus parallles avec accs
concurrents des ressources (type de
problme frquent en gnie informatique !)
Nombreuses autres applications (RdP
stochastiques en thorie de la sret de
fonctionnement)
LO19 Gnie logiciel : Rseaux de Petri 3
Rseaux de Petri : objets de base
Un RdP est compos d'un
ensemble de
Places reprsentes par

Transitions reprsentes par

Relies par des arcs orients
LO19 Gnie logiciel : Rseaux de Petri 4
RdP : modlisation de systmes
vnements/conditions
Condition : place
contenant ou non un jeton
Transition franchissable :
Prconditions satisfaites

Aprs franchissement :
Postconditions satisfaites.
Vraie Fausse
LO19 Gnie logiciel : Rseaux de Petri 5
RdP : modlisation de systmes
avec ressources
Type de ressource =
place. Nombre de
jetons = nombre de
ressources disponibles
Transition
franchissable : toutes
ressources en entre
disponibles
LO19 Gnie logiciel : Rseaux de Petri 6
RdP : modlisation de systmes
avec ressources
Les ressources, indiscernables, sont
consommes ("Pr-ressources") et
produites ("Post-ressources") lors des
transitions
Avant Aprs
Le nombre total de jetons n'a aucune raison d'tre
conservatif
LO19 Gnie logiciel : Rseaux de Petri 7
RdP : valuation des arcs
Permet d'exprimer que l'on
consomme/produit plus d'une ressource :
La valuation par dfaut d'un arc est 1
Avant
3
2
Aprs
3
2
LO19 Gnie logiciel : Rseaux de Petri 8
RdP : modlisation du
paralllisme
Processus
parallles
Rendez-vous
Smaphore,
mmorisation
ou dcompte de
franchissement
Partage de ressource
LO19 Gnie logiciel : Rseaux de Petri 9
Formalisme des rseaux de Petri
Un rseau de Petri non marqu se formalise
par :
2 ensembles finis P(places) T(transitions).
2 applications Pre et Post de PxT->N faisant
correspondre tout couple place/transition
la valuation de l'arc reliant la place
respectivement l'entre (Pre) et la sortie
(Post) de la transition, 0 si l'arc n'existe pas.
LO19 Gnie logiciel : Rseaux de Petri 10
Formalisme des rseaux de Petri
Pre : notation matricielle :

P1
2
2
P2
P3
a
b
c
d
| |
3 P
2 P
1 P
1 0 0 0
0 0 1 0
d c b a
(
(
(

0 2 0 1
P1
2
2
P2
P3
a
b
c
d
| |
3 P
2 P
1 P
1 0 0
0 0 1
0 1 0
d c b a
(
(
(

0
2
0
Places en
entre
d'une
transition
Transitions
en sortie
d'une place
LO19 Gnie logiciel : Rseaux de Petri 11
Formalisme des rseaux de Petri
Post : notation matricielle :

P3
c
d
P1
2
2
P2
a
b
| |
3 P
2 P
1 P
0 1 0 0
0 0 0 1
d c b a
(
(
(

2 0 1 0
P1
2
2
P2
P3
a
b
c
d
| |
3 P
2 P
1 P
0 0 0
2 1 0
0 0 1
d c b a
(
(
(

1
0
0
Places en
sortie
d'une
transition
Transitions
en entre
d'une place
LO19 Gnie logiciel : Rseaux de Petri 12
Formalisme des rseaux de Petri
Le marquage est alors reprsent par un
vecteur colonne :
P1
2
2
P2
P3
a
b
c
d
3 P
2 P
1 P
0
2
0
(
(
(

LO19 Gnie logiciel : Rseaux de Petri 13


Formalisme des rseaux de Petri
Il n'est pas interdit qu'une place
soit en entre et en sortie d'une
transition. Le rseau est alors dit
impur.
Un rseau pur ne contient pas ce
genre de boucles ce qui se
traduit par :
0 ) t , p ( Post ). t , p ( e Pr : T t , P p = e e
LO19 Gnie logiciel : Rseaux de Petri 14
Fonctionnement du rseau
Une transition t est franchissable si le
nombre de jetons dans toutes les places
d'entre est suprieur la valuation de l'arc
d'entre correspondant ce qui se traduit par :
3
2
) t , p ( e Pr ) p ( M : P p > e
Pour les places qui ne sont pas en entre de t : Pre(p,t)=0 la
condition est automatiquement satisfaite.
) t (., e Pr M >
Parfois not :
LO19 Gnie logiciel : Rseaux de Petri 15
Condition de franchissement
d'une transition
Matriciellement, cela
signifie que le vecteur
marquage est suprieur
la colonne correspondante
de la matrice Pre : ici a et
c sont franchissables.
P1
2
2
P2
P3
a
b
c
d
3 P
2 P
1 P
1 0
0 0
0 1
] d c b a [
(
(
(

0 0
2 1
0 0
3 P
2 P
1 P
0
2
0
(
(
(

LO19 Gnie logiciel : Rseaux de Petri 16


Condition de franchissement
d'une transition
Ce vecteur s'obtient pas les rgles
habituelles de l'algbre linaire en
introduisant un vecteur caractristique de la
transition :
d
c
b
a
0
1
0
0
1 0 0
0 0 1
0 1 0
0
2
0
|
|
|
|
|
.
|

\
|
(
(
(

=
|
|
|
.
|

\
|
0
2
0
t . e Pr ) t (., e Pr

=
LO19 Gnie logiciel : Rseaux de Petri 17
Marquage aprs franchissement
Marquage M' aprs franchissement :

t . Post t . e Pr M ' M

+ =
) t , p ( Post ) t , p ( e Pr ) p ( M ) p ( ' M : P p + = e
Ou en notation matricielle
Cette proprit qui reste vraie pour les rseaux
impurs donne son intrt la matrice dite
d'incidence : C=Post-Pre
) 0 ' M , t . e Pr M : Comme ( > >

LO19 Gnie logiciel : Rseaux de Petri 18
Marquage aprs franchissement
P1
2
2
P2
P3
a
b
c
d
(
(
(

1 0 0
0 2 0
0 0 1
e Pr
0
1
0
(
(
(

+
(
(
(

=
(
(
(

0
1
1
0
2
0
0
1
1
P1
2
2
P2
P3
a
b
c
d
(
(
(

0 1 0
2 0 1
0 0 0
Post
0
0
1
(
(
(

1 1 0
2 2 - 1
0 0 1
C
0
1 -
1
Transition franchissable si marquage suprieur la colonne
correspondante de Pre. Nouveau marquage obtenu en ajoutant la
colonne correspondante de C.
a
LO19 Gnie logiciel : Rseaux de Petri 19
Rsum pour une transition t
depuis un marquage M
Critre de
franchissement



Marquage aprs
franchissement
t . e Pr M

>
t . C M ' M

+ =
LO19 Gnie logiciel : Rseaux de Petri 20
Paralllisme structurel
Deux transitions t1 et t2 sont dites
structurellement parallles si elles n'ont
aucune place commune en entre :
0 ) 2 t , p ( e Pr ). 1 t , p ( e Pr : P p = e
2
t1 t2
LO19 Gnie logiciel : Rseaux de Petri 21
Paralllisme effectif
Elles sont de plus dites effectivement
parallles pour un marquage donn si ce
marquage permet de les franchir l'une et
l'autre :
2 t . e Pr M
1 t . e Pr M

>
>
2
t1 t2
LO19 Gnie logiciel : Rseaux de Petri 22
Conflit structurel
Deux transitions t1 et t2 sont dites en conflit
structurel si elles ont au moins une place
commune en entre :
0 ) 2 t , p ( e Pr ). 1 t , p ( e Pr : P p = e -
2
t1 t2
LO19 Gnie logiciel : Rseaux de Petri 23
Conflit effectif
Elles sont de plus dites en conflit effectif
pour un marquage donn si le marquage
permet de franchir l'une ou exclusif l'autre :
2 t . e Pr 1 t . e Pr M
2 t . e Pr M
1 t . e Pr M

+ <
>
> 2
t1 t2
Il y a alors choix exclusif entre t1 et t2
LO19 Gnie logiciel : Rseaux de Petri 24
Squences de franchissement
On appelle squence de franchissement une
suite de transitions franchissables partir
d'un marquage donn M0. Le marquage
volue donc au long de la squence, chaque
marquage intermdiaire permettant de
franchir la transition suivante :
Mn ... 2 M 1 M 0 M
tn 2 t 1 t

LO19 Gnie logiciel : Rseaux de Petri 25
Squences de franchissement
On souhaite pour une squence s=t1.t2tn
formuler l'quivalent du critre
ainsi que de la formule
Par rcurrence :
2 t . C 1 M 2 M 1 M
1 t . C 2 t . e Pr 0 M
2 t . e Pr 1 M

+ =
>
>
t Pre. M

>
t C. M M'

+ =
) 2 t 1 t .( C 0 M 2 M

+ + =
, 1 t . C 0 M 1 M 0 M
1 t . e Pr 0 M

+ =
>
LO19 Gnie logiciel : Rseaux de Petri 26
Squences de franchissement :
Equation fondamentale
Marquage aprs franchissement d'une
squence de franchissements :
s C M ' M

+ =
Le vecteur s tant le vecteur caractristique
dont les composantes sont les nombres
d'occurrences des transitions dans la squence.
LO19 Gnie logiciel : Rseaux de Petri 27
Squences de franchissement :
critre de franchissement
Ne peut tre obtenu qu'en retenant le plus
contraignant des critres
) n i 2 (
) 1 i t ... 2 t 1 t .( C i t . e Pr 0 M
1 t . e Pr 0 M
s
+ + + >
>

Il ne suffit en aucun cas d'exhiber un


vecteur caractristique pour lequel M+Cs
est un marquage valide (possibilit de
transitions intermdiaires infranchissables)
LO19 Gnie logiciel : Rseaux de Petri 28
Squences de franchissement :
exemple
abc n'est pas franchissable
a
P1
P2
b
P3
c
| |
3 P
2 P
1 P
1 0 0
0 1 0
0 1 1
c b a
(
(
(

Pre=
| |
3 P
2 P
1 P
0 1 0
0 0 1
1 0 0
c b a
(
(
(

Post=
(
(
(


1 - 1 0
0 1 - 1
1 1 1 -
C=
LO19 Gnie logiciel : Rseaux de Petri 29
Squences de franchissement :
exemple
a
P1
P2
b
P3
c
(
(
(

=
1 0 0
0 1 0
0 1 1
e Pr
(
(
(

=
1 - 1 0
0 1 - 1
1 1 - 1 -
C
(
(
(

=
0
0
1
a . e Pr

(
(
(

=
0
0
2
a . C b . e Pr

(
(
(

= +
0
0
2
) b a .( C c . e Pr


(
(
(

=
0
0
2
imal min _ Marquage
(
(
(

= +
(
(
(

0
0
1
s C
0
0
2

(
(
(

=
1
1
1
s

LO19 Gnie logiciel : Rseaux de Petri 30


Marquages accessibles
On appelle marquage accessible d'un RdP
marqu tout marquage obtenu partir du
marquage initial par une squence de
franchissement.
Se reprsente par un graphe : sommets =
marquages accessibles, arc reliant deux
sommets s'il existe une transition permettant
de passer d'un marquage l'autre.
LO19 Gnie logiciel : Rseaux de Petri 31
Graphe des marquages
accessibles
Il peut tre fini...
P1
2
2
P2
P3
a
b
c
d
(
(
(

0
2
0
(
(
(

0
1
1
(
(
(

1
0
0
c
d
b
a
(
(
(

0
0
2
a
b
LO19 Gnie logiciel : Rseaux de Petri 32
Graphe des marquages
accessibles
Mais aussi infini...
(
(
(

1
1
0
(
(
(

0
0
1
(
(
(

1
0
0
c
P1
P2
P3
a
b
c
a
b
(
(
(

1
2
0
(
(
(

0
1
1
a
b
(
(
(

1
3
0
(
(
(

0
2
1
a
b
c c
(
(
(

0
3
1
c
Et ainsi de
suite...
LO19 Gnie logiciel : Rseaux de Petri 33
Description d'un RdP par une
grammaire
Lettre = place (P1, P2)
Marquage = mot =
(P1P2)
transition = rgle de
substitution
P1
2
2
P2
P3
a
b
c
d
Mot initial
2
2
P
1 2
P P : a
2 1
P P : b
2
2 3
P P : d
3
2
2
P P : c
2
2
P
2 1
P P
3
P
c
d
b
a
2
1
P
a
b
LO19 Gnie logiciel : Rseaux de Petri 34
Proprits des rseaux de Petri
Deux grandes classes :
Proprits relatives l'tat : le nombre de
jetons reste-t-il born ?
Proprits relatives l'activit : tout le
rseau ou une partie du rseau ont ils
toujours la possibilit d'voluer ?
LO19 Gnie logiciel : Rseaux de Petri 35
Place borne, rseau born
Place k-borne : Pour tout marquage
accessible depuis le marquage initial le
nombre de jetons reste toujours infrieur k
Rseau k-born : toutes places k-bornes
Rseaux 1-borns : appels saufs (systmes
vnements/conditions)
Attention : proprits dpendant du
marquage initial. Rseau structurellement
born : born pour tout marquage initial fini
LO19 Gnie logiciel : Rseaux de Petri 36
Transition quasi-vivante, vivante
Transition t quasi-vivante (quasi-vivacit) :
on peut la franchir au moins une fois depuis
le marquage initial.
Transition vivante (vivacit) : tout stade
d'volution du rseau on peut la franchir.
Quasi-vivante et
non vivante
vivantes
|
.
|

\
|
-
st
0 M / s
LO19 Gnie logiciel : Rseaux de Petri 37
Rseau quasi-vivant, rseau
vivant
Un rseau est quasi-vivant si toutes ses
transitions le sont. Les transitions non
quasi-vivantes d'un rseau marqu sont
inutiles pour le marquage de dpart.
Un rseau est vivant si toutes ses transitions
le sont.
LO19 Gnie logiciel : Rseaux de Petri 38
Monotonie
Si une squence est franchissable pour un
marquage donn, elle le demeure pour tout
marquage strictement suprieur.
La diffrence entre les marquages de dpart
se trouve conserve l'arrive (on ne touche
pas aux jetons en question).
LO19 Gnie logiciel : Rseaux de Petri 39
Quasi-vivacit, vivacit,
monotonie
Une transition quasi-vivante pour un
marquage le reste pour un marquage
strictement suprieur.
Cela n'est pas vrai pour la vivacit :
2
3
P1
P2
a
b
c
3
1
P
2 1
P P
a
b
c
c
4
1
P
2
2
1
P P
a
b
c
2
2
P
a
Toutes
transitions
vivantes
Seul c vivant
|
.
|

\
|
> =>
st st
M ' M M
LO19 Gnie logiciel : Rseaux de Petri 40
Squences rptitives
Une squence est dite rptitive si pour tout
marquage pour lequel elle est franchissable,
elle est franchissable un nombre arbitraire
de fois.
Proprit : s est rptitive <=> le marquage
aprs franchissement de s inclut au sens
large dans le marquage avant
franchissement de s. Autrement dit : 0 s C >

LO19 Gnie logiciel : Rseaux de Petri 41


Squence rptitive <=> non
diminution du marquage
Preuve :
<= : Proprit de monotonie
=> : si le franchissement de s faisait
strictement dcrotre le marquage il
arriverait ncessairement un moment o on
ne pourrait plus la franchir ("le marquage
cherchant devenir ngatif").
: squence dite rptitive croissante.
0 s C

LO19 Gnie logiciel : Rseaux de Petri 42


Rseau non born <=> graphe
des marquages infini
Preuve :
=> : Evidence
<= : Si le rseau tait born, il y aurait un
nombre born de marquages possibles donc
le graphe des marquages serait fini.
LO19 Gnie logiciel : Rseaux de Petri 43
Proprit des rseaux non borns
Dans le parcours d'une (des) branches
infinies du graphe de marquage d'un rseau
non born, on finit ncessairement par
tomber sur un sur-marquage d'un marquage
dj rencontr. Autrement dit on rencontre
une squence rptitive croissante.
LO19 Gnie logiciel : Rseaux de Petri 44
Proprit des rseaux non borns
preuve
Soit un marquage quelconque de la branche
infinie, son nombre de sous-marquages est
fini. On ne peut donc construire une
branche infinie avec seulement les sous-
marquages.
Moralit rseau non born <=> existence
d'une squence rptitive croissante
accessible depuis le marquage initial ( le <=
tant une vidence).
LO19 Gnie logiciel : Rseaux de Petri 45
Rseaux non borns : graphe de
couverture : algorithme
On parcourt tous les
chemins du graphe des
marquages :
(
(
(

1
1
0
(
(
(

0
0
1
(
(
(

1
0
0
P1
P2
P3
a
b
c
c a
Si on rencontre un sur-marquage d'un marquage dj
rencontr sur le chemin, le rseau n'est pas born : on
arrte le parcours de ce chemin.
LO19 Gnie logiciel : Rseaux de Petri 46
Rseaux non borns : graphe de
couverture : algorithme
On remplace le nombre de jetons dans les
places ayant augment par le symbole
signifiant "un nombre arbitrairement grand"
(
(
(

e
1
0
(
(
(

0
0
1
(
(
(

1
0
0
c a
e
P1
P2
P3
a
b
c
(
(
(

e
0
1
a
c
b
Et l'on examine les volutions
possibles depuis ces sommets
particuliers...
LO19 Gnie logiciel : Rseaux de Petri 47
Graphe de couverture
L'algorithme prcdent aboutit toujours un
graphe born mais on perd de l'information
(
(
(

1
1
0
(
(
(

0
0
1
(
(
(

1
0
0
c
a
b
(
(
(

0
1
1
c
(
(
(

e
1
0
(
(
(

0
0
1
(
(
(

1
0
0
c a
(
(
(

e
0
1
a
c
b
Etc.
LO19 Gnie logiciel : Rseaux de Petri 48
Graphe de couverture pertes
d'information
Marquages accessibles, Squences
franchissables ?
x
y
z
2
a
x
a
e e
z y x
a
Accessibilit de xyz ?
x
b
a
) 0 ( ) (e
a
a
b
abb franchissable ?
LO19 Gnie logiciel : Rseaux de Petri 49
Marquage puits, blocage
Un marquage puits est un marquage d'o
aucun transition n'est franchissable
Un rseau de Petri comporte un blocage si
l'un de ses marquages accessibles est un
marquage puits. Le rseau n'a alors plus
aucune possibilit d'voluer.
LO19 Gnie logiciel : Rseaux de Petri 50
Blocage et vivacit
Un rseau avec blocage n'a l'vidence
aucune transition vivante. L'inverse est par
contre faux :
x
y
c
z
d
a b
Aucune transition n'est vivante (b rend tout tirage
ultrieur de a et c impossible, idem pour a avec b et d)
mais le rseau n'est jamais bloqu.
LO19 Gnie logiciel : Rseaux de Petri 51
Accs concurrents aux
ressources, interblocages
L'accs concurrent
des ressources par
plusieurs processus
peut conduire des
situations
d'interblocage :
Processus 1
R1
R2
Processus 2
Processus 1 s'alloue R1, puis
processus 2 s'alloue R2 =>
marquage puits