Вы находитесь на странице: 1из 67

Introduction la vrification structurelle des rseaux de Petri et

des rseaux de haut-niveau


Master SAR, Module VFSR
Jean-Franois Pradat-Peyre
LIP6
Anne 2010-2011

Table des matires

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Les rseaux de Petri . . . . . . . . . . . . . . . . .


Les invariants de places . . . . . . . . . . . . . . .
Vrication structurelle des proprites de base . .
Invariant et proprits comportementales . . . . . .
Les rseaux de haut-niveau . . . . . . . . . . . . .
Introduction informelle aux rseaux de haut niveau
Dnition des rseaux colors . . . . . . . . . . . .
Dnition des rseaux bien forms . . . . . . . . .
Le graphe des marquages symboliques . . . . . . .
Rductions structurelles . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

5
7
10
14
17
18
23
28
40
53

Le paralllisme (ou la concurrence) soulve de nombreux problmes qui lui sont propres. En
particulier :
Comment exprimer ou modliser la communication et la synchronisation lintrieur dun
systme ou entre dirents systmes parallles ?
Comment valider cette modlisation ?
Un des premiers tenter de rsoudre ces questions fut C.A.Petri qui, dans les annes soixante
[Pet62], cra un modle spcique du paralllisme : les rseaux de Petri. Ce modle connut un
dveloppement immdiat par lintrt quil suscita tant dans le domaine de la recherche thorique
que dans le monde industriel.
En eet la smantique prcise associe ce modle en fait un excellent outil de simulation.
On peut soit parcourir une ou plusieurs suites dtats du rseau soit, si le graphe dtat est ni,
le dcrire entirement et ainsi vrier directement les proprits souhaites par le concepteur du
systme.
Loriginalit et lintrt des rseaux de Petri tiennent surtout aux nombreuses techniques
de validation autres que le simple examen de ce graphe, souvent coteux et quelquefois mme,
irralisable. Parmi ces mthodes alternatives, il y a dune part le calcul algbrique qui permet
de gnrer des invariants ( ots, semi-ots ..) et dautre part la rduction de rseaux qui ramne
ltude des proprits un rseau de taille plus petite.
Rapidement, les premiers rseaux de Petri se sont rvls tre nanmoins un modle trop limit pour les concepteurs dapplications informatiques ou plus gnralement industrielles. Cette
limitation est due principalement trois facteurs : il est impossible de modliser des comportements similaires au moyen dune seule reprsentation condense ; lanalyse du rseau nest pas
paramtrable, cest dire quil faut redessiner le rseau et recommencer son analyse lorsque lon
change le nombre dobjets ( processus, ressources) du systme ; les conditions et les consquences
de lvolution dun rseau, de nature purement quantitative ( nombre de marques ncessaires
dans les places, ajout ou retrait de marques ...), sont inadquates pour modliser des conditions et des volutions qualitatives ( nomination des objets, identit des tats de deux processus,
numrotation circulaire, relations associatives entre objets ...)
Ainsi des abrviations de rseaux de Petri ont-elles t introduites an de remdier ces
inconvnients. Les premires abrviations voir le jour furent les rseaux Prdicat/Transitions
[Gen79], [Gen81], et les rseaux colors [Jen81]. Puis devant la dicult danalyse de ces rseaux,
due entre autres leur absence de structuration, vinrent les rseaux rguliers[Hadd87] qui ont
permis de dnir de faon prcise la paramtrisation dun rseau, et dobtenir ainsi les premiers
rsultats thoriques non partiels sur les rseaux colors. La paramtrisation est indispensable si
lon veut, par exemple, valider la modlisation dun anneau jeton , o le nombre de sites est
laiss variable et reprsente un paramtre du rseau.

Ce document dnit les rseaux de Petri, les rseaux de haut-niveau (colors et bien forms)
puis les mthodes danalyse associes,

1. Les rseaux de Petri


Les rseaux de Petri sont utiliss an de modliser le comportement dynamique de systmes
discrets [?, ?]. Ils sont composs de deux types dobjets : les places et les transitions. Lensemble
des places permet de reprsenter ltat du systme ; lensemble des transitions reprsente alors
lensemble des vnements dont loccurrence provoque la modication de ltat du systme. Plus
prcisment, les places jouent le rle de variables dtat du systme et sont valeur entire.
A loccurrence dun vnement correspond le franchissement dune transition dpendant de la
satisfaction de prconditions.
Les rseaux de Petri est orent une reprsentation graphique simple des systmes modliss.
Une place est reprsente par un cercle, une transition par un rectangle, et les relations de
causalit au sein du systme sont reprsentes par la prsence - ou labsence - darc valus reliant
les places aux transitions.
Un des atot, et non le moindre, de ce formalisme est dorir de nombreux outils danalyse
structurelle, tels que la thorie des rductions ou le calcul dinvariants. Nous tudierons ces outils
dans les prochains chapitres.
Cette prsentation intuitive des rseaux de Petri est formalise par les dnitions suivantes.
Dfinition 1.1 Un rseau de Petri est un 4-uplet R = hP, T, W , W + i o :
P est un ensemble fini et non vide de places,
T est un ensemble fini de transitions,
W ( resp. W + ) est la fonction dincidence avant (resp. arrire ) de domaine P T et de
codomaine N .
Dans cette dnition, W (p, t) est la prcondition associe la transition t et la place p ; elle
dnit le nombre minimal de marques dans p ncessaire au franchissement t et retires de p en
cas de franchissement. De mme, W + (p, t) est la postcondition associe la transition t et la
place p ; elle dnit le nombre de marques apportes p par le franchissement de t.
Ces deux matrices peuvent tre synthtise en une seule : la matrice dincidence.
Dfinition 1.2 La matrice dincidence dun rseau de Petri est la matrice entire W M(P, T )
dfinie par : (p, t) P T, W (p, t) = W + (p, t) W (p, t). Cette matrice traduit le cot global

du franchissement dune transition pour chaque place - la diffrence entre ce qui est produit et ce
qui est consomm -.
Remarque De par sa dnition, cette matrice masque les "boucles" du rseau et il nest donc
pas quivalent de donner la matrice dincidence ou de donner les deux matrices pre et post.
Nous voyons maintenant la premire notion associe la dynamique dun rseaude Petri : le
marquage.
Dfinition 1.3 Un lment de N P est appel marquage dun rseau de Petri R et dfinit ltat
du rseau R un instant donn, cest dire le nombre de marques M (p) prsentes dans chaque
place p P du rseau de Petri R.
Un rseau de Petri marqu est donc un 5-uplet R = hP, T, W , W + , M0 i o :
hP, T, W , W + i est un rseau de Petri,
M0 est le marquage initial de R dfinissant ainsi ltat initial du rseau - cest dire, avant
tout franchissement -.
La dynamique dun rseau marqu est dnie par la rgle de franchissement des transitions.
Dfinition 1.4 Une transition t est dite franchissable pour un marquage M N P ssi : p
P, M (p) W (p). Le marquage M alors obtenu est dfini par :
p P, M (p) = M (p) W (p, t) + W + (p, t) = M (p) + W (p, t)
On note : M [t > M , ce qui signifie que t est franchissable pour le marquage M et atteint le
marquage M .
Remarque Cette rgle dvolution implique la fois latomicit dun franchissement et le fait
que les notions de squentialit, de non-dterminisme ou de concurrence sont galit dans
ce formalisme, toutes tant vues commes des schmas particuliers de causalit. Ce point est
galement une grande force de ce modle.
A partir de cette rgle de franchissement, il est possible dobtenir lensemble des suites nies
ou innies dvolution du systme partir du marquage initial. Cette suite densembles dnit
lensemble des marquages accessibles et peut tre reprsente sous forme de graphe, le graphe
des marquages accessibles.

Dfinition 0.1 Soit (R, M0 ) un rseau de Petri marqu. Lensemble des marquages accessible de
ce rseau, not Acc(R, M0 ) est dfini par : Acc(R, M0 ) = {M INP | s T tq M0 [s > M }. Le
graphe des marquages accessibles est le graphe orient et valu dont les noeuds sont les lments
de Acc(R, M0 ) et est tel, quil existe un arc valu par t T de M vers M ssi M [t > M .
Ce graphe dcrit compltement la smantique du systme. Cependant, il nest pas ncessairement ni et de plus, mme lorsquil est ni, ce graphe est souvent de taille trop importante pour
que lon puisse en tirer quelque proprit que ce soit sur le systme tudi.
Exemple :
non fini (b)

Lexemple suivant montre deux graphes de marquages accessible : lun fini (a) lautre

p1

p1
1

t2

0
t2

t1

t1

0
1
1

t2

1
0
1

t1

1
1
2

p3

p2

p2

(a)

(b)

Figure 1. Un exemple dvolution

2. Les invariants de places


Il est possible dobtenir des informations pertinentes sur le rseau tudi - rseau born,
pas de bloquage, exclusion mutuelle et mme dans certains cas la vivacit - par des techniques
structurels, cest dire indpendant du graphes des marquage accessibles.
En eet, soit X ZZP un vecteur entier sur les places. Si W (t) dsigne la te`me colonne de la
matrice dincidence W , alors lquation de changement dtat peut scrire :
t

X.M = t X.M + t X.W (t)

Si maintenant t X.W (t) = 0 alors il vient t X.M = t X.M , et en particulier, t X.M = t X.M0 cest
dire que la somme des marques contenues dans lensemble des places dni par Supp(X) reste
constante moyennant une pondration aprs le franchissement de la transition t :
X

pP

X(p).M (p) =

pP

X(p).M (p).

Les solutions entires X de lquation t X.W = 0 seront donc des invariants du rseau. Lintrt
de tels invariants est de permettre une analyse structurelle du modle tudi cest dire sans
dvelopper tout ou partie du graphe des marquages accessibles dont la taille devient rapidement
gigantesque ds que lon modlise un systme un peu complexe.
Dans la pratique, une famille gnratrice de telles solutions dans Q
l ou Q
l + est susante pour
prouver des proprits telles que lexclusion mutuelle, la bornitude du rseau, ou encore la
prsence de places implicites , proprit ncessaire lexcution de certaines rductions.
Lorsque ces solutions se trouvent dans lespace Q
l P , on parle de ots et lorsque celles-ci se
+ P
trouvent dans lespace (lQ ) , on parle alors de semi-ots ou encore de ots positifs. Les
premiers se calculeront par lalgorithme de Gauss, tandis que les seconds se calculeront par
lalgorithme de Farkas que nous allons prsenter dans un chapitre suivant - cf Algo ??, page ??
-.
Lintrt des semi-ots sur les ots est quils permettent dobtenir directement les proprits
recherches tandis quun calcul des ots ncessitera ensuite deectuer de nombreuses combinaisons linaires de ots avant de trouver linvariant recherch.
Les semi-ots permettent de plus lobtention de nombreux autres invariants du rseau , tels
que les trappes ou les verrous.
Dfinition 2.1 Soit W la matrice dincidence dun rseau de Petri. Alors toute solution non
nulle de lquation t X.W = 0 dfinit un invariant linaire du rseau. Si cette solution est
composante positive, on parle de semi-flot, dans le cas contraire on parle de flot.
Une famille gnratrice de semi-flots peut donc tre obtenue en appliquant lalgorithme de
Farkas sur la transpose de la matrice dincidence.
Exemple : Supposons que nous voulions modliser lexclusion mutuelle de deux processus sur une
ressource commune. Nous reprsentons le rseau de Petri correspondant .
Si lon veut alors prouver quil y a bien une exclusion mutuelle entre le processus a et le processus b,
la premire solution est de construire le graphe des marquages accessibles. On obtient alors un graphe
8 tats- que nous ne donnons pas car dj un peu difficile dessiner - et lon vrifie quil ny a aucun
marquage accessible dfinissant la prsence simultane des deux processus dans ltat excute.
La seconde mthode consiste calculer une famille gnratrice des semi-flots associs ce rseau, cest
dire rsoudre lquation t X.W = 0, X 0, o W est la matrice dincidence du rseau, par lalgorithme
de Farkas.
On obtient alors les trois semi-flots :
1. Attend(a) + Exec(a) + P assif (a) = cst(M0 ) = 1

9
Attend(b)

Attend(a)

r1

t1
Ressource
t3

Exec(a)

Exec(b)

t2

r2

Passif(a)

r3

Passif(b)

Figure 2. Une solution dexclusion mutuelle

2. Attend(b) + Exec(b) + P assif (b) = cst(M0 ) = 1


3. Exec(a) + Exec(b) + Ressource = cst(M0 ) = 1
Les deux premiers semi-flots traduisent que les processus a et b sont bien des processus, i.e il y a squentialit entre les transitions (t1, t2, t3) et (r1, r2, r3).
Le dernier semi-flot nous permet de prouver lexclusion mutuelle. En effet, celui-ci traduit le fait que
quelque soit lvolution du systme, la somme des marques contenues dans les places Exec(a), Exec(b) et
Ressource reste gale la valeur dfinie par le marquage initial cest dire 1.
Ainsi donc, il ne peut la fois avoir une marque dans la place Exec(a) et dans la place Exec(b) ce qui
correspond bien ce que nous voulions prouver.

Le rseau prsent comporte sept places et six transitions. Si lon voulait reprsenter lexclusion
mutuelle de dix processus sur une mme ressource, il faudrait un rseau de 31 places et 30
transitions. De plus, sil y a plusieurs ressources disponibles au nombre de n, un processus
pourrait tre dans ltat Attend et Execute pour autant de sous ensemble de lensemble des
ressources disponibles, soit 2n . Ceci conduirait dupliquer les places Attend et Execute 2n fois
pour chaque processus. Pour seulement dix processus et cinq ressources, un rseau modlisant le
systme complet comprendrait 1615 places et transitions.
Il va sans dire que la taille du graphe des marquages accessibles serait trs dicilement
manipulable et que mme un calcul des semi-ots deviendrait quelque peu problmatique. En
eet, en dehors de la complexit de la rsolution, les rsultats obtenus seraient dicilement
interprtables.
Ce simple exemple met en vidence deux des principales limitations des rseaux de Petri : la

10

taille des rseaux peut rapidement devenir trs importante et, surtout, la modlisation ncessite
de xer les paramtres du modle, ici le nombre de processus et de ressources. Si lon change la
valeur de ces paramtres, il faut refaire lanalyse.

3. Vrification structurelle des proprites de base


Dans le cadre de la validation il est fondamentale de dnir les proprites que nous voulons
observer ou prouver. Dans la thorie des rseaux de Petri, certaines proprites ont t plus souvent tudies que dautres ; en particulier la vivacit. Nous dnissons maintenant ces proprites
lmentaires.
Dfinition 0.2 Une rseau de Petri marqu (R, M0 ) est dit
vivant ssi M Acc(R, M0 ), t T , s T telle que M [s > M [t >
quasi-vivant ssi t T , s T telle que M0 [s > M [t >
pseudo-vivant ssi M Acc(R, M0 ), t T telle que M [t >
born ssi p P , kp IN tel que M Acc(R, M0 ), M (p) kp
Nous donnons quelques exemples de rseaux vriant (ou pas) ces proprites.

(a)

(b)

(c)

(d)

(e)

Figure 3. Quelques exemples de rseaux de Petri

Tous les rseaux de la gure ??, exept le rseaux (b), sont quasi-vivant. Les rseaux (c), (d)
et (e) sont pseudo-vivant, les rseaux (c) et (e) sont vivant et tous, execpt le rseau (e), sont
borns.
Une autre propritee joue un rle important dans la thorie des rseaux de Petri : lexistance
dun marquage ou tat daccueil.

11

Dfinition 0.3 Un rseau de Petri marque (R, M0 ) admet un marquage daccueil ssi il existe
un marquage Ma vrifiant :
M Acc(R, M0 ), s T telle que M [s > Ma
Ce marquage Ma est appel marquage daccueil.
Un marquage daccueil est donc un marquage que lon peut atteindre de tout marquage
accessible.
Il existe certaines relations entre ces proprites.
Proposition 0.4 Soit N = (R, M0 ) un rseau de Petri marqu.
Si N est vivant alors N est quasi-vivant et pseudo-vivant
Si N est quasi-vivant et admet M0 comme marquage daccueil alors N est vivant
De mme,certaine proprites sont monotones, cest dire quelles restent vraie lorsque lon
augmente le marquage initial.
Dfinition 0.5 Une proprite est monotone ssi
(R, M0 ), ( (R, M0 ) )=M0 M0 , ( (R, M0 ) )
Proposition 0.6 Les proprites quasi-vivant et non born sont monotones. Les proprites
pseudo-vivant, vivant, born et extistence dun marquage daccueil sont non monotones.
Cette proposition se dmontre sans dicult en utilisant le lemme de monotonie :
Lemme 0.7 (de monotonie) Soit (R, M0 ) un rseau de Petri marqu. M1 Acc(R, M0 ),
s T , M1 [s > M2 = M1 M1 , M1 [s > M2 et M2 M2
Toutes ces proprites peuvent sexprimer dans un langage de logique temporelle et peuvent
donc tre vries par des techniques de construction et de parcours du graphe des marquages
accessibles (lorsque celui ci est ni, cest dire lorsque le rseau est born). Nous verrons dans
les chapitres suivant comment des techniques structurelles ou algbriques permettent de vrer
ces proprites sans la connaissance de ce graphe.
Nous donnons ici une mthode simple, mais semi-automatique, de vrication de la vivacit
dun rseau donn qui utilise la notion de norme.

12

Dfinition 0.8 Soit (R, M0 ) un rseau de Petri marqu. Une fonction de lensemble des marquages de (R, M0 ) vers IN est une norme pour un marquage Ma ssi :
1. (M ) = 0 M = Ma
2. M , (M ) > 0= s T telle que
M [s > M
(M ) < (M )
Dfinition 0.9 Soit (R, M0 ) un rseau de Petri marqu. Une fonction de lensemble des marquages de (R, M0 ) vers IN est une norme stricte pour un marquage Ma ssi :
1. (M ) = 0 M = Ma
2. M , (M ) > 0= t T telle que
M [t > M
(M ) < (M )
Proposition 0.10 Soit (R, M0 ) un rseau de Petri marqu et Ma un marquage de ce rseau.
Les trois propositions suivantes sont quivalentes :
1. il exitse une norme stricte pour Ma
2. il exitse une norme pour Ma
3. Ma est un marquage daccueil
Verier la vivacit dun rseau peut donc se rammner a vrier laide dune norme que le
marquage initial est un marquage daccueil et que le rseau est quasi-vivant. La dicult consiste
trouver la norme.
Construction dune norme
1. Trouver les places intervenant dans la norme : en gnral un sous ensemble des places non
marques du marquage initial.
2. La norme tant souvant une combinaison linaire des places choisie, trouver la pondration
des places. On choisit gnralement les pondrations gales au facteur dloignement du
marquage daccueil (plus le fait quune place soit marque loigne du marquage daccueil,
plus on associe cette place une pondration forte).
Vrification dune norme
1. Calculer les invariants linaires du rseau et vrier la premire condition de la norme
laide de ces invariants

13

2. Etudier chaque cas en commanant par ceux correspondants aux plus grands facteurs
dloignement an de vrier la seconde condition de la norme. La transition trouver est
celle qui rduit ce facteur. Pour tablir que cette transition est franchissable on se sert la
fois de la dnition du cas, des cas dj tudis et des invariants.
Exemple :
Le rseau suivant modlise une chane automatise de peinture de portes dautomobile. Les portes et
la peinture sont supposs tre en quantit infinie et sont donc non modliss. Pour peindre une porte il
faut :
1. acqurir un robot pour dplacer la porte vers la zone de peinture (transition t1)
2. acqurir une machine peindre (transition t2) : on libre alors le robot qui na plus dutilit.
Une fois la porte peinte il faut :
1. acqurir de nouveau un robot pour dplacer la porte peinte (transition t3) : on libre alors la
machine peindre
2. dlivrer la porte peinte (transition t4) : on libre alors le robot.
Le marquage initial de ce rseau est dfini par : M0 (start) = x > 0, M0 (robots) = r > 0, M0 (machines) =
m > 0 et M0 (p) = 0 pour les autres places p.
Les flots positifs de ce rseau sont :
1. f1 start + p12 + p13 + p14 = x
2. f2 machines + p13 = m
3. f3 robots + p12 + p14 = r
On prend la fonction (M ) = 3.M (p12) + 2.M (p13) + M (14) et lon montre que cette fonction est
une norme stricte pour le marquage initial.
1. (M ) = 0 ssi M (p12) = M (p13) = M (p14) = 0 et en utilisant les invariants on obtient immdiatemment que (M ) = 0 ssi M = M0 .
2. Il faut diffrencier les cas possibles lorsque (M ) > 0.
(a) M (p14) > 0
La transition t4 est franchissable et son franchissement fait dcroitre la norme de 1.
(b) M (p14) = 0 et M (p12) > 0
Si t2 est franchissable alors la norme dcroit de 1. Sinon, cest que M (machines) = 0 et f2
implique alors que M (p13) = m. Dans ce cas, si t3 est franchissable alors de nouveau la norme
dcroit ; sinon f3 implique que M (p12)+M (p14) = r. Comme M (p14) = 0, M (p12) = r. Pour
que ce cas ne soit pas possible M (p14) = 0, M (p13) = m, M (machines) = 0, M (robots) = 0,
M (p12) = r M (start) = x m r il faut imposer que x m r < 0.
(c) M (p14) = 0, M (p12) = 0 et M (p13) > 0
Linvariant f3 implique M (robots) + M (p14) = m et donc que soit t3 soit t4 est franchissable
ce qui fait bien dcroitre la norme.

14

start

t1

p12
robots
r
t2

machines

p13

t3

p14

t4

Figure 4. Lexemple des robots


On a donc montrer que sous la condition x < m + r la fonction est une norme pour le marquage
initial et que donc celui ci est un marquage daccueil. Comme il est trivial (ici) de prouver que ce rseau
est quasi-vivant, on obtient que le rseau est vivant pour tout marquage satisfaisant x < m + r. On verra
que des invariants (les verrous du rseau) permettent de montrer automatiquement que ce rseau est
vivant si et seulement si il vrifit la condition x < m + r.

Exemple : Montrer que le rseau suivant est vivant en utilisant la fonction (M ) = 3.M (p12) +
2.M (p13) + M (14).

4. Invariant et proprits comportementales


In order to illustrate the possibility to translate conditions on the behavior of a model into
satisability of linear problems, let us consider the following Petri net (gure Fig 6) :

15

start

t1
control

p12

m+r-1

robots
r
t2

machines

p13

t3

p14

t4

Figure 5. Lexemple des robots controls

In this net there are two simple invariants :


Inv1 : q + p + u = 1 ; meaning that whatever the marking reached, the sum of tokens contained in place p and in place q and in place u is always equal to 1 (m
Acc(N, m0 ), m(p) + m(q) + m(u) = 1). This invariant characterizes a process structure
for which p, q and u are the states of the process.
Inv2 : r1 + r2 = 1 meaning that there is always at most one token in place r1 and r2.
These invariant can be used to obtain behavioral characterizations of the net, in particular to
characterize the reability of some transitions. For instance, we can easily prove that :
1. when p is marked then necessarily one of the transitions f 1 or f 2 is reable ;
2. when p is marked, transition t is not reable.
This can easily be achieved by expressing linear programming problems as follows : for each
place p dene a variable xp that will denote the number of tokens contained in this place ;
express preconditions of considered transition as inequations using these variables and augment
the set of constraints with those dened by the invariants of the net. Check then the satisability
of this system.
For instance, the second claim (when p is marked, transition t is not reable) can be translated

16
q

h
p
t

v
r1
f1

f2
r2

Figure 6. A model used to illustrate behavior characterization with algebraical conditions

into the problem : does the system dened by

xp 1 )
the place p is marked
xv 1
the transition t is reable
xu 1
)
xq + xp + xu = 1
the constraints dened by the invariants are satied
xr1 + xr2 = 1

admit a solution ? If not, then necessarily the claim is correct.


In the same way the rst claim (when p is marked necessarily one of transitions f 1 or f 2 is
reable) can be translated into the problem : does the system dened by

xp 1 )
xr1 < 1
xr2 < 1
xq + xp + xu = 1
xr1 + xr2 = 1

the place p is marked


neither the transition f 1 nor the transition f 2 is reable
)

the constraints dened by the invariants are satied

admit a solution ? If not, then necessarily the claim is correct.

17

5. Les rseaux de haut-niveau


Les rseaux de Petri Places-Transitions dnissent un cadre thorique simple et puissant pour
ltude de la concurrence. De plus, grce aux nombreux outils disponibles, ils supportent la
spcication et lanalyse de systmes concurrents dans de vastes domaines dapplication.
Cependant, ce formalisme met en avant le contrle au dtriment de la structuration des
donnes : il est facile de modliser et danalyser le contrle dun systme mais il est dicile
dintgrer dans cette phase de conception lorganisation des donnes transportes, changes ou
modies.
An de prendre en compte ce besoin sans modier la smantique des rseaux de Petri, diffrentes abrviations ont t dnies. Une abrviation de rseau est obtenue en attachant de
nouvelles informations aux noeuds et aux arcs et en dnissant une smantique de fonctionnement qui tient compte de ces paramtres. Le point clef est de garder la possibilit de dplier
cette abrviation en un rseau de Petri ordinaire dont le comportement est identique. Parmi ces
abrviations, on peut citer les rseaux colors ([?]), les rseaux Prdicats/Transitions ([?]), les
rseaux algbriques ([?, ?]), ou encore les rseaux bien forms ([?]). Ces dirents formalismes
se caractrisent par une syntaxe plus ou moins naturelle, par les modalits de paramtrisation
et par la possibilit danalyse directe (i.e. oprant sur le formalisme de haut-niveau) et dans
certains cas danalyse paramtre. De nombreux outils de modlisation et danalyse bas sur les
rseaux de haut-niveau sont aujourdhui disponibles. On peut citer par exemple CPN-AMI [?],
Design/CPN [?], GreatSPN [?] ou encore Prod [?].
Nous tudions principalement dans ce chapitre deux de ces abrviations : les rseaux colors
et les rseaux bien forms (ou WN pour Well-formed Nets) qui ont le mme pouvoir dexpression.
Les rseaux colors sont caractriss par une smantique fonctionnelle simple : une information
de couleur (ou de type) est associe aux jetons et aux franchissements et les valuations des
arcs sont des fonctions de couleur qui prcisent le nombre et la couleur des jetons consomms
ou produits lors du franchissement dune transition qui se fait pour une instance particulire de
couleur. Aucune contrainte syntaxique nest impose sur ces fonctions de couleur, ce qui simplie
la phase de modlisation mais rend dicile la dnition ou lextension de techniques danalyse
directe.
Le modle des WN est une abrviation fonctionnelle et paramtre des rseaux de Petri
qui restreint les fonctions de couleurs des compositions de fonctions lmentaires (identit,
successeur et diffusion) et qui impose que les valeurs de couleurs manipules soient des tuples de
valeurs prises dans des ensembles de base appels classes. Lintrt de cette syntaxe plus limite
est lobtention de techniques danalyse plus gnrales que celles des RdP (telle que la construction
du graphe des marquages symboliques) ainsi que lextension paramtre de techniques classiques

18

(telles que les rductions structurelles ou le calcul dinvariants).


Le plan de ce chapitre est le suivant : aprs une introduction informelle laide dexemples
aux rseaux de haut-niveau, nous dnissons prcisment les rseaux colors (section 3). Nous
dnissons alors les rseaux bien forms (section 4) et nous terminons par une introduction
dautres modles de haut-niveau, les rseaux de Petri interprts et les rseaux algbriques.

6. Introduction informelle aux rseaux de haut niveau


6.1. Un modle client-serveur
Le rseau place/transition R1 suivant (gure 7) modlise deux clients connects un serveur.
Un client dans ltat prt, dnot par une marque dans la place Cpret, envoie (par la
transition cenv) un message au serveur (place M ess) et passe dans ltat attente (place
Catt). A la rception dune rponse (place Rep), il retourne dans ltat prt par la transition
crec.
Le serveur dans ltat prt (Spret) peut recevoir (srec) un message et passe dans ltat
occup (Socc). Il traite ce message, puis envoie (senv) une rponse (Rep) et retourne dans
ltat repos.
Le marquage initial m0 = h2.Cpret + 1.Spreti dnote 2 clients et 1 serveur dans ltat prt. Par
souci de lisibilit, selon le cas, le marquage initial dune place est reprsent lintrieur ou
lextrieur de celle-ci.
Cpret
2

Spret
Mes

srec

cenv

Socc

Catt
Rep
crec

senv

Figure 7. Le rseau R1

Le modle est cependant trop abstrait car il ne distingue ni ltat de chacun des clients, ni
qui appartient un message ou une rponse. Un ot tel que [Cpret + M ess + Socc + Rep] exprime
quun message est prpar, en transit, trait ou que la rponse est transmise. On en dduit que
le nombre total de marques dans les places correspondantes est un invariant, gal 2, mais on
ne peut exprimer quil y a au plus un tel message sparment pour chaque client. On pourrait

19

introduire un sous-rseau par client et interconnecter tous ces sous-rseaux au serveur, mais le
rseau global deviendrait impraticable ds que le nombre de clients augmente. De plus, il en
faudrait une nouvelle version chaque fois quon change le nombre de clients.

6.2. Distinction des clients


Les rseaux colors ont pour but de distinguer les marques modlisant dirents objets ayant
les mmes types dtats et sujets aux mmes types dactions. Le rseau color R2 (gure 8
1 ) distingue les deux clients en les identiant chacun par une couleur. La classe des clients
est ici lensemble {1..2}. Les places Cpret et Catt ont cette classe pour domaine, cest--dire
quelles ne peuvent contenir que des marques de couleur < 1 > ou < 2 >. Le marquage initial
< 1 > .Cpret+ < 2 > .Cpret indique que tous les clients sont dans ltat prt. Il est dnot par
< client.all > .Cpret, ce qui pargne lnumration explicite de la liste de toutes les couleurs.
Un autre avantage de cette notation est quelle stend facilement un modle paramtr (i.e.
o lon ne prciserait pas explicitement le nombre de clients). Les places M ess, Socc, Rep ont le
mme domaine tandis que la place Spret reste non colore - on dit aussi de couleur neutre - car
le serveur est prt accepter un message de nimporte quel client.
Cpret
Class
client is 1..2;
Var
x in client;

<x>

cenv

client
<client.all>

Mess

<x>

<x>

<x>

srec
<x>

Socc

Catt

Rep

client
<x>

client
<x>

client
<x>

crec

Spret
client

<x>

senv

<x>

Figure 8. Gnralisation plusieurs clients (rseau R2)

Pour distinguer pour quel client est franchie une transition telle que cenv, on explicite le
domaine des transitions en dnissant un domaine de franchissement (ici Client pour la transition
cenv). On tiquette alors les arcs lis cette transition par une variable < x > prenant ses valeurs
dans la classe Client. Bien sr, la classe de la variable tiquetant un arc doit tre identique au
domaine de la place situe lautre extrmit de larc. La valeur choisie pour la variable lors
dune occurrence de franchissement prcise alors quelle est la couleur de la marque extraire
1

La reprsentation graphique des rseaux colors dpend de loutil utilis ; dans ce chapitre la plupart des
rseaux sont dessins avec loutil Macao de latelier CPN-AMI [?].

20

des places en entre et des marques dposes dans les places en sortie. Une transition nest
franchissable que sil y a dans ses places en entre assez de marques des couleurs dsignes.
Ainsi les franchissements relatifs chaque client sont dnots cenv(< 1 >) ou cenv(< 2 >) : ils
prcisent la couleur de la marque extraire de Cpret qui est aussi celle des marques produire
dans Catt et M ess. Tous les arcs, sauf ceux issus de places sans domaine (ici Spret), sont ainsi
tiquets.
Si le client < 1 > envoie un message qui est trait, puis le client < 2 > envoie aussi un
message, la squence cenv(< 1 >), srec(< 1 >), senv(< 1 >), cenv(< 2 >) donne le marquage
(< 1 > + < 2 >).Catt+ < 2 > .M ess+ < 1 > .Rep > + < 1 > .Spret. La transition crec nest
alors franchissable que pour le choix x =< 1 >, ce qui modlise bien un comportement eectif
du systme. Anticipant sur la notion de ot color (voir chapitre 8), nous prsentons un ot not
[< X > .Cpret+ < X > .Catt] qui montre que le nombre total de marques de chaque couleur
reste gal 1. Cet invariant exprime que chaque client est un processus squentiel qui est soit
dans ltat prt soit dans ltat attente.

6.3. Distinction des serveurs


Pour gnraliser le rseau R2 plusieurs serveurs, il faut introduire un nouveau domaine de
couleurs pour les serveurs. Ltiquetage dune transition comme srec doit distinguer par une
Spret
client

Spret
Mess

serveur

Mess

<serveur.all>
<x>

client

<y>

Mtraite

serveur

client

client
<y>

<x>

<x>

<x>

Socc
Rep

<x>

senv
<y>

<y>

srec

srec
<y>

serveur
<serveur.all>

<x,y>

Socc
traitement
<x,y>

Rep
client
<x>

senv
<y>

Figure 9. Gnralisation plusieurs serveurs (R3 et R4)

variable x la couleur du message trait et par une variable y la couleur du serveur traitant ce
message. Il ne surait pas de mmoriser indpendamment dans une place Socc quel serveur traite
un message et dans une place M traite quel client appartient ce message. Cela engendrerait
une confusion : si par exemple le serveur < 1 > traitait un message pour le client < 1 >
et respectivement le serveur < 2 > pour le client < 2 >, la transition senv(< 1, 2 >) serait
franchissable, ce qui ne correspondrait aucun traitement en cours (modle de gauche de la

21

gure 9). Pour cette transition, le domaine de couleur est alors Client Serveur, ce qui signie
quelle instancie un couple de valeur de Client, Serveur. Il est alors ncessaire de prciser pour
chaque variable apparaissant sur un arc attenant cette transition quelle composante du couple
instanci elle est associe. Sur lexemple donn, x est associ la premire composante et y
la seconde. Ainsi, le franchissement de senv pour le couple < 1, 2 > signie : on associe x la
valeur 1 et y la valeur 2 et on franchit la transition.
La gnralisation de marques et de variables sous forme de n-uplets de couleurs modlise
correctement de telles associations des clients et des serveurs (modle de droite de la gure 9). La
place Socc a maintenant un domaine traitement correspondant un doublet < client, serveur >.
Un franchissement tel que (srec(< 1, 1 >) produit un doublet < 1, 1 > dans Socc puis srec(<
2, 2 >) y produit galement un doublet < 2, 2 >. Le franchissement de senv ncessite la prsence
dun doublet < x, y > dans Socc. Pour le marquage courant, cela ne peut tre quun des doublets
< 1, 1 > ou < 2, 2 > de sorte quon ne risque plus un franchissement fautif avec x =< 1 > et
y =< 2 >. Un tel franchissement serait possible si un doublet < 1, 2 > tait produit dans Socc
aprs rception dun message du client < 1 > par le serveur < 2 >.

6.4. Le modle color complet


Pour quun client puisse dsigner le serveur qui devra traiter son message, les messages doivent
comporter cette identication ; ils deviennent ainsi des doublets de domaine < client, serveur >.
Sil y a des marques < x, y > dans la place M ess, la transition srec(x, y) nest franchissable que
si le serveur y dsign par une de ces marques est dans ltat prt.
Spret

Cpret
Class `
client is 1..2;
serveur is 1..2;
Domain
traitement is
<client, serveur>;
Var
x in client;
y in serveur;

<x>

cenv
<x>

client
<client.all>

Mess
serveur
traitement <serveur.all>

srec

<x,y>

<x,y>

<x,y>

Socc

Catt

traitement
<x,y>

Rep

client
<x>

crec

<y>

client
<x>

<x>

<x>

Figure 10. Le rseau R5

senv
<y>

22

6.5. Rseau de Petri sous-jacent


Le dpliage dun rseau color par rapport un domaine de couleur produit un rseau quivalent par duplication des places, transitions et arcs concerns par ce domaine. Cette opration
est applicable itrativement jusqu obtenir un rseau non color. Le rseau R6 suivant illustre
le dpliage du rseau R5.
1

Cpret_1
Mess_1_1

cenv_1_1

srec_1_1
Mess_1_2

Catt_1_1

cenv_1_2

crec_1_1

Catt_1_2

srec_1_2

Socc_1_1
Socc_1_2
Rep_1_1

senv_1_1
Rep_1_2

crec_1_2

Spret_1

Cpret_2
Mess_2_1

cenv_2_1

senv_1_2

srec_2_1

Spret_2

Mess_2_2
srec_2_2

Catt_2_1

cenv_2_2

crec_2_2

Catt_2_2

Socc_2_1
Socc_2_2
Rep_2_1

senv_2_1
Rep_2_2

crec_2_2

senv_2_2

Figure 11. Le rseau R6

Chaque client, 1 ou 2, engendre des places que lon suxe par sa couleur de marques. Ainsi
on obtient Cpret_1 ou Cpret_2 et Catt_1 ou Catt_2.
Chaque serveur, 1 ou 2, engendre un sous-rseau que lon suxe par sa couleur de marques.
Ces suxages se combinent dans le cas dun domaine obtenu par produit cartsien de domaines lmentaires, de sorte que la place M ess engendre 4 places M ess_1_1, M ess_1_2
pour un message du client 1 envoy chacun des serveurs et de mme M ess_2_1, M ess_2_2
pour le client 2.
Chaque transition engendre autant de transitions suxes quil y a de valeurs de n-uplets
de son domaine. Ainsi la transition cenv engendre cenv_1_1, cenv_1_2, cenv_2_1 et
cenv_2_2.
Le marquage initial distribue une marque, dans Cpret_1 et Cpret_2, et une marque dans
Spret_1 et Spret_2. Ce rseau possde une base de 6 ots : 2 caractrisent les clients, 2

23

caractrisent les serveurs et 2 autres concernent des circuits de traitements de messages.

7. Dfinition des rseaux colors


Deux familles de rseaux de haut niveau, les rseaux colors et les rseaux prdicats/transitions
ont t initialement introduits an de prendre en compte dans un rseau de Petri des comportements similaires mais devant tre distingus. Ces deux modles tant quivalents en terme de
modlisation [?], nous nous attacherons plus spciquement aux rseaux colors dont la dnition, plus formelle, a servi de support aux principales tudes thoriques.
Ces formalismes permettent de modliser des familles de systmes structure identique mais
de taille dirente. En eet, chaque place et chaque transition est associ un domaine de
couleur qui permet, pour le cas des places, de colorer les marques pouvant tre contenues dans
ces places, et pour le cas des transitions, de choisir une couleur de franchissement.
Ainsi pour distinguer plusieurs instances dun mme tat, on ne duplique plus les places et
les transitions comme on le fait avec les rseaux de Petri ordinaires, on les colore .
Les pr-conditions (resp. les post-conditions) deviennent des fonctions de couleur qui une
couleur de transition c1 et une couleur de place c2 associe le nombre de marques de couleur c2
consommer (resp. produire) lors du franchissement de la transition pour linstance c1 .

7.1. Notations
Avant de dnir plus prcisment les rseaux colors, donnons rapidement quelques dnitions
de base.
Dfinition 0.11 Un multi-ensemble sur un ensemble fini et non vide Y est une application de
Y vers IN.
Intuitivement, un multi-ensemble est un ensemble pouvant contenir plusieurs occurrences
dun mme lment. Chaque multi-ensemble a sur Y peut tre reprsent par la somme formelle
P
a = yY a(y).y, o lentier positif ou nul a(y) dsigne le nombre doccurrences de llment
y dans le multi-ensemble a. Par exemple, la somme m = 2. + 3. dsigne le multi-ensemble
contenant 2 fois la valeur et 3 fois la valeur sur un ensemble contenant les lments et .
Nous notons Bag(Y ) lensemble des multi-ensembles sur Y .

24

La somme de deux lments de Bag(Y ) et le produit dun lment de Bag(Y ) par un entier
se dnissent naturellement.
Dfinition 0.12 Soit a un lment de Bag(Y ).
Si b est un lment de Bag(Y ) alors la somme de a + b de a et b est un lment de Bag(Y )
P
dfini par : a + b = yY (a(y) + b(y)).y
si est un entier positif, alors le produit de .a de par a est un lment de Bag(Y ) dfini
P
par : .a = yY (.a(x)).x.
Bag(Y ) est muni dune relation dordre qui nest autre que lextension naturelle de la relation
dordre sur IN, ce que formalise la dnition suivante.
P

Dfinition 0.13 Soient a = yY a(y).y et b = yY b(y).y deux multi-ensembles sur Y . Alors


a est suprieur ou gal b, ce qui est not a b si et seulement si : y Y, a(y) b(y).
Les domaines de couleur dun rseau de haut niveau sont des produits cartsiens densembles
nis. On manipule donc des tuples et nous prcisons ici ce quest un tuple de valeurs et une tuple
de fonctions.
Dfinition 0.14 (Valeur de tuple) Soient C1 , . . . , Ck et C des ensembles finis. On appelle un
lment de C1 . . . Ck un k-tuple (ou simplement tuple) et on le note hc1 , . . . , ck i.
Dfinition 0.15 (Tuple de fonctions) Soient f1 , . . . , fk un ensemble dapplications de C dans
Bag(Ci ) (i [1..k], fi : C Bag(Ci )). Le tuple de fonctions hf1 , . . . , fk i est une fonction f
qui a pour domaine C et codomaine Bag(C1 ) . . . Bag(Ck ) avec c C, hf1 , . . . , fk i(c) =
hf1 (c), . . . , fk (c)i.
Une fonction dun ensemble C vers un ensemble Bag(C ) stend en une application linaire
de Bag(C) vers Bag(C ) par les rgles de calcul suivantes :
f (.c) = .f (c)
f (c1 + c2 ) = f (c1 ) + f (c2 )
De mme, Bag(C1 . . . Ck ) sidentie Bag(C1 ) . . . Bag(Ck ) par les rgles de calcul :
hc1 , . . . , .ci , . . . ck i = .hc1 , . . . , ci , . . . ck i
hc1 , . . . , ci + ci , . . . ck i = hc1 , . . . , ci , . . . ck i + hc1 , . . . , ci , . . . ck i

25

7.2. Le formalisme
Les rseaux colors orent une possibilit dexpression plus compacte que les rseaux ordinaires. En eet, dans un rseau color, une place peut contenir des jetons de direntes couleurs,
et une transition peut tre franchie de direntes manires suivant la couleur slectionne. Ceci
est ralis en attachant un domaine de couleur chaque place et chaque transition. Ainsi, pour un
nombre de places et de transition identique, le nombre de comportements pouvant tre exprims
par un rseau color est bien plus lev quavec un rseau de Petri ordinaire.
Un arc joignant une place et une transition est tiquet par une application linaire appele
fonction de couleur. Cette fonction dtermine pour chaque couleur de transition (ou instance
de franchissement) le nombre de jetons par couleur devant tre consomms ou produits dans la
place lors du franchissement de la transition pour la couleur choisie. Comme pour les rseaux
de Petri ordinaires, le choix de la couleur de franchissement dune transition se fait de faon
indterministe : si une transition t est franchissable pour une couleur c1 et pour une couleur c2 ,
rien ne prcise dans le formalisme le choix de linstance de franchissement de t. Ces dirents
concepts sont formaliss par les dnitions suivantes.
e, P osti o :
Dfinition 0.16 Un rseau color est un 5-tuple CN = hP, T, C, P r
P est un ensemble non vide et fini de places ;
T est un ensemble non vide et fini disjoint de P de transitions ;
S
C est la fonction de couleur de domaine P T et de codomaine avec un ensemble
contenant les ensembles finis et non vides. Un lment de C(s) est appel couleur de s et
C(s) dsigne le domaine de couleur de s ;
P ost (resp. P r
e) est la fonction dincidence avant (resp. arrire) qui associe chaque place
p P et chaque transition t T , une application de C(t) vers Bag(C(p)).
Dfinition 0.17 Un marquage m dun rseau est un vecteur index par P o pour chaque place
p P , m(p) est un lment de Bag(C(p)) et dsigne le nombre de marques colores dans cette
place p.
Un rseau color marqu est donc un couple < CN, m0 > o CN est un rseau color et m0
son marquage initial, i.e. le nombre de marques colores prsentes initialement dans chaque place
du rseau.
Dfinition 0.18 La rgle de tir (ou de franchissement) dun rseau color est dfinie de la manire suivante :
Une transition t est franchissable pour un marquage m et une couleur ct C(t) si :
p P, m(p) P r
e(p, t)(ct )

26

Le franchissement dune transition t pour un marquage m et une couleur ct C(t) engendre


le nouveau marquage m dfini par :
p P, m (p) = m(p) + P ost(p, t)(ct ) P r
e(p, t)(ct )
t(c )

t
On note alors m[t(ct )im , ou encore m
m , ce qui signifie que t est franchissable par rapport
la couleur ct pour le marquage m et atteint le marquage m . Lorsque le marquage atteint nest pas
utile, on note m[t(ct )i le fait que t est franchissable par rapport la couleur ct pour le marquage
m. On note galement, Acc(CN, m0 ) lensemble de tous les marquages accessibles partir de m0 .

Un rseau color nest en fait que labrviation dun rseau de Petri ordinaire sous-jacent,
appel rseau dpli ou dvelopp.
Le principe du dpliage dun rseau color en un rseau de Petri se fait de la manire suivante :
une place dans le rseau dpli par place et couleur de place dans le rseau color et la mme
chose pour les transitions. On dduit ensuite la valuation des arcs et le marquage des places par
applications des fonctions de couleur. Comme on le voit, lhypothse de nitude des domaines
de couleur est indispensable pour eectuer ce dpliage.
Dfinition 0.19 (Rseau dpli) Soit CN = hP, T, C, P r
e, P osti un rseau color. Le rseau
de Petri Places-Transitions dvelopp de CN est le rseau CNd = hPd , Td , P r
ed , P ostd i dfini
par :
S
Pd = pP,cp C (p) (p, cp ) lensemble des places,
S
Td = tT,ct C (t) (t, ct ) lensemble des transitions,
P ostd (resp. P r
ed ) la fonction dincidence avant (resp. arrire) dfinie de Pd Td vers IN
par :
P ostd (p, cp )(t, ct ) = P ost(p, t)(ct )(cp ) et
P r
ed (p, cp )(t, ct ) = P r
e(p, t)(ct )(cp )
Le marquage dvelopp dun marquage color se dnit de faon similaire.
Dfinition 0.20 Soient CN un rseau color et m un marquage de ce rseau. Le marquage
dvelopp de m dans le rseau dvelopp de CN est le marquage md dfini par :
(p, cp ) Pd , md (p, cp ) = m(p)(cp ).
On obtient alors la proposition fondamentale suivante qui dit que la smantique dun rseau
color et de son rseau dpli sont identiques moyennant un isomorphisme.

27

Proposition 0.21 m[t(ct )im dans CN si et seulement si md [t(ct )imd dans CNd .

Ainsi donc, lanalyse dun rseau color pourrait se ramener simplement lanalyse de son
rseau dpli : un systme est modlis par un rseau color, le rseau color est dpli, puis
lanalyse se fait sur le rseau dpli en utilisant les techniques classiques danalyse des rseaux
de Petri ordinaires.
Cette mthodologie se heurte deux problmes importants :
1. la taille du rseau dpli est gnralement trs importante du fait du pouvoir de concision
fourni par la formalisme color (ce qui peut rendre inoprant bon nombre de techniques
danalyse) ;
2. les rsultats danalyse obtenus sur le rseau dpli sont rarement, ou trs dicilement,
interprtables dans le rseau dorigine.
Lintrt des rseaux colors est donc fortement li lexistence doutils de validation directe,
cest dire oprant directement sur le modle color. Malheureusement, lextension de techniques classiques (calcul dinvariants, application de rductions, etc.) ainsi que la dnition de
techniques particulires (bases par exemple sur lutilisation de symtries naturelles du modle)
sont rendues particulirement diciles du fait de la non structuration des fonctions et domaines
de couleur. Le problme pos est alors : peut-on dnir un formalisme susamment structur
pour permettre la dnition dalgorithmes danalyse directe tout en maintenant un pouvoir dexpression susamment lev ? 2
Devant la dicult du problme pos, direntes familles de rseaux de haut niveau ont
t dnies : les rseaux rguliers [?], les rseaux ordonns [?] ou encore les rseaux prdicats/transitions unaires [?]. Toutes rpondent au besoin de structurer les domaines et les fonctions de couleur an de pouvoir dvelopper des algorithmes danalyse oprant directement sur le
modle de haut niveau.
Ces dirents formalismes ont t ensuite homogniss par la dnition des rseaux colors
bien forms [?] (ou rseaux bien forms), que nous allons tudier dans la section suivante. Il est
prouv que ce formalisme a le mme pouvoir dexpression que les rseaux colors. En revanche, la
structuration de ce modle a permis de dnir (ou dtendre) un nombre important de techniques
danalyse oprant directement sur le rseau de haut-niveau.
2

Une analogie peut tre faite avec lvolution des langages de programmation.

28

8. Dfinition des rseaux bien forms


Un rseau bien form (ou WN pour Well formed Nets) [?], [?] est un rseau color respectant direntes contraintes syntaxiques. Comme nous lavons voqu plus haut, le but de ces
contraintes est de permettre une utilisation directe de la structure du rseau pour dvelopper
des algorithmes danalyse. Les contraintes imposes sont de trois types :
1. les domaines de couleurs sont des produits cartsiens de domaines de bases appels classes
ou classes de couleurs lmentaires ;
2. les fonctions de couleur sont construites partir de fonctions lmentaires (identit, diusion et successeur) ;
3. le modle met en avant les symtries du systme. Les comportements asymtriques sont
pris en compte par le partitionnement des classes en sous-classes statiques et par lajout
de garde sur les fonctions de couleur et sur les transitions.

8.1. Domaines de couleur


Le domaine de couleur des places et des transitions est restreint au produit cartsien densembles de couleurs de bases appels classes lmentaires.
Une classe lmentaire est un ensemble ni, non vide (pouvant tre ordonne) de couleurs terminales (dont la dnition ne dpend daucune autre couleur). Une classe peut tre vue comme un
ensemble contenant des lments de mme type. Une classe peut tre paramtre ; dans ce cas, le
nombre dlments dune classe nest pas donn par une valeur entire xe (5, 115, 899) mais par
une variable n, dont la valeur reprsente alors un paramtre du modle. Par exemple, un ensemble
de trois processus clients peut dnir une classe : on aura alors la classe Client que lon pourra
noter Client = {1,2,3} ou de faon plus parlante Client = { Client1 , Client2 , Client3 }. Si
lon ne veut pas xer priori le nombre de clients, on pourra reprsenter les clients par la classe
Client = {1..n}, ou encore Client = { Client1 . . . Clientn }, o n reprsentera le nombre de
clients (et sera un paramtre implicite du modle).
Lorsque la notion dordre est utile, par exemple pour lemploi de la fonction successeur, on
supposera que la classe o sapplique cette fonction est ordonne ce qui signie que chaque
lment a un unique successeur, et que deux lments nont pas le mme successeur. Lordre
utilis sera celui induit par la dnition de la classe. Par exemple, lordre induit sur la classe
Client est tel que le successeur de Client1 est Client2 , que le successeur de Client2 est Client3
et que celui de Client3 est Client1 .

29

Une classe lmentaire peut tre partionne en sous-classes statiques an de regrouper au sein
dune mme classe des lments de mme type mais de comportements dirents. Ce partionnement est statique dans le sens o il est eectu lors de la phase de modlisation et ne dpend
pas dun marquage donn. Sur lexemple prcdent, il est possible que le client didentit 1 ait
un comportement lgrement dirent des autres clients (lui seul peut, par exemple, accder
certaines ressources). Dans ce cas, plutt que de dnir deux classes distinctes, on partionnera
la classe Client en deux sous classes : la sous-classe contenant le client < 1 > et la sous-classe
contenant les autres clients. On notera alors Client = {1} {2,3}. Ce partionnement pourra
tre utilis pour restreindre le franchissement de transitions certaines valeurs de sous-classe et,
par exemple, de distinguer le client < 1 > des autres clients. Chaque sous-classe statique peut
tre paramtre. Dans ce cas, une classe contenant des sous-classes statiques paramtres est
galement paramtre et sa taille est la somme des tailles des sous-classes la constituant. Par
exemple, un ensemble de clients peut tre divis en deux sous-ensembles : les clients mineurs et
les clients majeurs. La dnition de la classe client se fait alors de la faon suivante : Client = {
Client_m1 . . . Client_mn1 } { Client_M1 . . . Client_Mn2 }. La taille de la classe Client est
alors n1 + n2 .
Lorsque une place (ou une transition) nest pas colore (ou de couleur neutre) on note le
domaine de couleur de cette place.
Dfinition 0.22 (Domaine de couleur) Un domaine de couleur est un produit cartsien fini
de classes lmentaires. Chaque classe lmentaire est un ensemble fini dlments. On note Cl =
{C1 , . . . , Ck } lensemble des classes lmentaires et lon impose que i 6= j [1..k], Ci Cj = .
Une classe lmentaire peut tre partitionne lors de sa dfinition en sous-classes statiques.
On note alors Ci,q la q-me partition de la classe Ci , si le nombre de sous-classes statiques de
Ci ; on a alors 3 Ci = q=1..si Ci,q .
Une sous-classe statique peut tre paramtre ; dans ce cas on note ni,q le nombre dlments
de la sous-classe statique Ci,q .
Un domaine de couleur est not de faon gnrale par C = C1e1 . . . Ckek o ei dsigne le
nombre de fois (un entier positif ou nul) quapparat 4 la classe Ci dans C. Lorsque tous les ei
sont nuls, le domaine de couleur est le domaine neutre, que lon note .
La dnition des classes apparatra sur une partie de la gure comme illustr ci-dessous
(gure 12)5 . Les noms des places sont suivis du caractre : puis de leur domaine de couleur.
3

dnote lunion disjointe


ici Ciei signifie le produit Ci . . . Ci o Ci apparat ei fois
5
Cette syntaxe est trs dpendante de loutil utilis
4

30

Par exemple, la place de nom Mess_A_Emettre est de domaine CnCnT yM e (les valeurs sur

C_Repos: Cn

Cn = Noeuds = {1..N1}
Ty = Type = {Qst} U {Rep}
Me = Mess = {1..N2}

<X>
<X, Y, T, M>

<X, Y>

Mess_A_Emettre: Cn x Cn x Ty x Me

C_Att: Cn x Cn

Figure 12. Un exemple de classes

les arcs sont des fonctions de couleur qui seront explicites plus loin). Les domaines de couleur des
transitions ne seront jamais prciss directement sur le modle mais dduits automatiquement
du domaine des places lies la transition considre et des fonctions de couleur intervenant sur
les arcs.

8.2. Fonctions de couleur


Les arcs dun WN sont tiquets par des fonctions de couleur qui sont des sommes pondres
de tuples de fonctions de couleur lmentaires. Comme pour les rseaux colors, ces fonctions
permettent de prciser par rapport une couleur de franchissement le nombre et la couleur des
marques ncessaires, consommes ou produites.
Il y a trois fonctions de couleur lmentaires. Chacune est dnie dun domaine de couleur C
vers une classe lmentaire Ci . La fonction identit (XCi ) permet de slectionner une instance
de Ci , la fonction successeur (!XCi ) permet de slectionner le successeur dune instance de Ci ;
quant la fonction de diusion (AllCi ) elle permet de considrer tous les lments de Ci . Cette
dernire fonction peut tre restreinte une sous-classe statique Ci,q de Ci (AllCi,q ). Lorsque
une classe apparat plusieurs fois dans le domaine C, on prcise sur quelle occurrence de Ci est
applique la fonction par un indice supplmentaire.
Dfinition 0.23 (Fonctions de couleur lmentaires) Soient Ci une classe lmentaire et
C = C1e1 . . . Ckek un domaine de couleur. Les fonctions de couleur lmentaires sont dfinies
de C dans Bag(Ci ) par c = hc11 , . . . , ce11 , . . . , c1k , . . . , cekk i :
XCj i (c) = cji (pour tout j tel que 1 j ei ) ;

31

!XCj i (c) = Successeur de cji dans Ci (pour tout j tel que 1 j ei ) 6 ;


P
P
AllCi (c) = xCi x et c Ci , AllCi,q (c) = xCi,q x
Si C est le domaine neutre, alors la seule fonction de couleur possible est All .
A laide de ces fonctions lmentaires on peut dnir une fonction de couleur sur une classe
Ci comme tant une combinaison linaire des fonctions lmentaires. Les contraintes imposes
sur les coecients de cette combinaison linaire assurent que lon slectionne bien un nombre
positif de couleurs.
Dfinition 0.24 (Fonctions de couleur sur une classe) Soient Ci une classe lmentaire et
C = C1e1 . . . Ckek un domaine de couleur. Une fonction de couleur sur Ci est une combinaison
linaire
X
X
X
i,k .!XCk i
i,q .AllCi,q +
i,k .XCk i +
fCi =
k=1..ei

telle que q 1..si , K {1..ei }, [i,q +

Remarque
pratique :

q=1..si

kK

k=1..ei

M in(i,k , i,k )] 0

Ces dnitions appellent un certain nombre de remarques dans une utilisation

1. On note indiremment AllCi , Ci .All, ou SCi la fonction de diusion sur Ci . De plus,


lorsquil ny a pas dambigut, on peut omettre le nom de la classe (Alli ou Si ) et mme
lindice lorsquil ny a quune classe (All ou S).
2. De mme, on note XCj i , Xij , Xi ou X la fonction identit. De plus, tout nom dirent de
All (ou de S) et dirent dun nom de classe ou dun nom dun lment dune classe peut
tre utilis pour dnir la fonction identit (Y , P h, P hilos, P roc, ...) ou de la mme faon,
pour dnir la fonction successeur (!Y , !P h, ...). On se rapproche alors de la dnition des
rseaux prdicats/transitions faisant intervenir la notion de variables et de constantes
[?] : le nom de la fonction apparaissant sur un arc est interprt comme une variable.
P

3. Par dnition, q=1..si AllCi,q = AllCi ce qui explique que la fonction AllCi napparat pas
directement dans la dnition.
Sur lexemple de la gure 13, le modle de gauche peut reprsenter lenvoi dun signal par
un processus X tous les autres processus. Le modle de droite, quant lui, peut sinterprter
comme lenvoi dun signal un sous ensemble statique des processus, ici les processus de la
sous-classe statique {a, b, c}.
6

On suppose ici que Ci est une classe ordonne

32

p1: C

C = {a,b,c} U {1..n}

p1: C

<X>

<X>
q: C

q: C

<All-X>

<X>

<X>

p2: C

<All_{a,b,c}>
p2: C

Figure 13. Un exemple de fonctions de couleur sur une classe

Les fonctions de couleur dun WN sont soit des valeurs entires lorsquelles portent sur des
places non colores, soit des sommes de tuples de fonctions sur les classes du domaine de la place
considre.
Dfinition 0.25 (Fonctions de couleur) Soient t une transition et p une place. Une fonction
de couleur sur un arc reliant t et p est :
1. une valeur entire si C(p) = ;
P

2. une somme de tuples j hfCj . . . fCj i, si C(p) = C1 . . . Ck avec tout fCj une
1
i
k
fonction de couleur de C(t) sur Ci .
Bien que ces dnitions soient un peu formelles, nous rappelons quen pratique le fait de donner
des noms dirents aux fonctions identit allge considrablement les notations. Considrons
lexemple suivant (Figure 14) :
p2:C_1

p1:

<X>

p3:C_1

C_1={1..n1}

<Y>
t:C_1 x C_1

<All-X, Y>

q1:C_1 x C_1

<X + Y>

q2:C_1

Figure 14. Exemple de fonctions de couleur

Sur cette exemple, le franchissement de t consomme une marque x de C1 dans la place p2,
une marque y de C1 dans la place p3 (il se peut que x = y) et un jeton dans la place p1. Ce

33

franchissement produit alors une marque x et une marque y dans la place q2 ainsi que lensemble
des couples (z, y) avec z dans C1 et dirent de x dans la place q1. Formellement,
hXi dsigne la fonction XC1 1 et hY i dsigne la fonction XC2 1 ;
hX + Y i dsigne la fonction hXC1 1 + XC2 1 i ;
hAll X, Y i dsigne le tuple de fonctions hf 1 , f 2 i avec f 1 = (AllC1 XC1 1 ) et f 2 = XC2 1 .

8.3. Les gardes


La dnition des WN est fortement lie la notion de symtrie qui apparat dans les comportements modliss. La modlisation dun ensemble de ressources de mme type (ou les tats
de processus de mme comportement) est ralise par la dnition dune place colore : la place
modlise lensemble des ressources (ou ltat dun ensemble de processus) et la distinction des
instances est obtenue par le domaine de couleur de la place.
Nous avons vu que le partitionnement dune classe en sous-classes statiques permet de diffrencier, au sein dune mme classe, des comportements lgrement dirents. Ce mcanisme
de modlisation vite la duplication de places ou de transitions. An de prendre en compte la
dnition de ces sous-classes dans la dynamique du systme il nous faut pouvoir restreindre le
franchissement des transitions certaines instances de sous-classes ainsi que la consommation
ou la production de marques certaines valeurs. Ce double objectif est atteint par la dnition
de gardes.
Dfinition 0.26 (Gardes) Une garde est une fonction boolenne dfinie sur un domaine de
couleur C = C1e1 . . . Ckek et construite laide des prdicats standard suivants dfinis par :
c = hc11 , . . . , ce11 , . . . , c1k , . . . , cekk i C,
1. [XCi1i = XCi2i ](c) vaut VRAI ssi cii1 = cii2 ;
2. [XCi1i = !XCi2i ](c) vaut VRAI ssi cii1 est le successeur de cii2 dans Ci ;
3. [XCi1i Ci,q ](c) vaut VRAI ssi cii1 appartient la sous-classe statique Ci,q .
4. g1 g2 , g1 g2 , g1 o g1 et g2 dsignent des prdicats standards et , , dsignent les
connecteurs boolens classiques.
Remarque Lorsque lon a utilis des noms dirents de XCi1 pour dsigner la fonction identit
sur la i-me composante du domaine de couleur C, cest ce nom qui est galement utilis pour
la dnition des gardes plutt que la notation XCi1 . De plus, plutt que de faire intervenir deux
variables direntes (X et Y par exemple) et dutiliser une garde liant ces deux variables ([X =

34

Y ]) on prfrera utiliser simplement une seule variable (par exemple X). Lorsquune sous-classe
statique est un singleton, lon note X = e plutt que X {e}.
Lorsque une garde g apparat dans la dnition dune transition t elle sinterprte comme :
la transition t est franchissable pour une instance de couleur c si et seulement si la garde vaut
vrai pour c (g(c) = V RAI) et si les pr-conditions de t sont remplies pour cette instance de
couleur c (rgle de franchissement normale). Une garde portant sur une transition modie donc
implicitement le domaine de couleur de la transition. Si lon veut restreindre lapplication de la
garde une des fonctions attenantes cette transition, il est ncessaire de garder la fonction et
non la transition.
Lorsque une garde g apparat sur la dnition dun tuple f dune fonction de couleur on note
[g]f le tuple f garde par g. Cette garde modie alors la valeur de f de la faon suivante.
Dfinition 0.27 (Fonctions de couleur gardes) Soient f un tuple de fonctions lmentaires
et g une garde. Le tuple gard [g]f est dfini par
def

[g]f (c) = ( si g(c) alors f (c) sinon 0 )


Une fonction de couleur garde est alors une somme de tuples gards.
Considrons les deux modles suivants (gure 15). Dans le modle de gauche, la garde limite
p1: C

<X>
t:C x C

<Y>

[X=Y]
<X, Y>
q: C

p1: C

p2: C

<X>

p2: C

C={0} U {1..N1}

<X>

t:C x C
<X, X>
q: C

Figure 15. Exemple de gardes

le franchissement de t aux valeurs (c, c ) de C C vriant c = c . La garde devrait tre thoriquement note [XC1 = XC2 ]. Le modle de droite est une notation plus simple du mme modle :
au lieu de faire gurer la garde [X = Y ] on remplace Y par X sur les arcs reliant t p2 et q.
Les deux modles suivants (gure 16) montrent la dirence entre une transition garde et
une fonction garde. Sur le modle de gauche, la transition t nest franchissable que pour les

35
p1: C

<X>
t:C x C

p1: C

p2: C

<Y>

[Y != 0]

<X>

p2: C

C={0} U {1..N1}

[Y != 0] <Y>

t:C x C

<X, Y>

<X, Y>

q: C

q: C

Figure 16. Exemple de gardes

valeurs < c, c > de C C vriant c 6= 0 (qui est une notation abrge de c


/ {0} et qui signie
c est dirent de la valeur 0 de C). Sur le modle de droite, la transition est franchissable pour
une valeur < c, c > condition que dune part il existe au moins une marque de couleur c dans
p1 et que dautre part, soit c = 0 soit il existe au moins une marque de couleur c dans p2 : t
est donc potentiellement franchissable pour des valeurs < c, 0 >. Si on franchit t pour < c, c >
avec c 6= 0, une marque de couleur c est prleve de la place p1, une marque de couleur c est
prleve de la place p2 et une marque de couleur < c, c > est produite dans q. Si par contre lon
franchit la transition t pour une valeur < c, 0 > alors seule une marque de couleur c est prleve
de p1 (pas de pr-condition sur p2) et une marque de couleur < c, 0 > est normalement produite
dans q.

8.4. Le formalisme des rseaux bien forms

Dfinition 0.28 (Rseau bien form) Un rseau bien form est un 7-tuple W N = hP, T, P re, P ost, Cl, C,
o :
P est un ensemble non vide et fini de places ;
T est un ensemble non vide et fini disjoint de P de transitions ;
Cl = {C1 , . . . , Ck } est ensemble de classes lmentaires ; chaque classe lmentaire Ci est
un ensemble fini et non vide pouvant tre partionn en si sous-classes statiques (Ci =
q=1..si Ci,q ) ; On note ni = |Ci | et ni,q = |Ci,q | ;
C est la fonction de couleur de domaine P T et de codomaine , o est un ensemble
contenant les produits cartsiens finis dlments de Cl (classes lmentaires). Un lment
de C(s) est un tuple < c1 , c2 , . . . , cl > et est appel couleur de s. C(s) dsigne le domaine
de couleur de s ;
P ost (resp. P r
e) est la fonction dincidence avant (resp. arrire) qui associe tout couple
p, t de P T une fonction de couleur garde de C(t) vers Bag(C(p)) ;

36

est une fonction qui associe chaque transition une garde ; par dfaut, pour tout t,
(t) = V RAI.
Il existe une fonction Ordonne dfinie de Cl dans boolen et qui prcise si lordre est important
pour une classe lmentaire donne (utilisation ou pas de la fonction successeur sur cette classe).
La rgle de franchissement et la dnition du rseau dpli sont les mmes que pour les rseaux
colors. La seule distinction provient de la prise en compte des gardes qui modie lgrement ces
dnitions par :
1. une transition t est franchissable pour une couleur ct C(t) ssi la garde associe t est vrai
pour ct ((t)(ct ) = V RAI) et si t est franchissable normalement pour ct (pr-conditions
vries) ;
2. une transition (t, ct ) apparat dans le rseau dpli uniquement ssi la garde associe t est
vrai pour ct ((t)(ct ) = V RAI).
An dillustrer cette dnition, nous considrons le problme suivant (modlis gure 17) :
Ce rseau est un ranement du rseau prsent en gure 10 page 21, o lon modlise le routage

<x>
cenvreq
[t=req]
<x,y>
Catt
clinfo
<x,y>

Cpret site
<site.All>

MessEmis messlocal

<x,y,t,me>
resenv
<s,e,d,t,m>
MessRes
messgeneral
<s,e,d,t,m>

<x>

<1,2,2>+<1,3,2> Table
+<2,1,1>+<2,3,3> routinfo
+<3,1,2>+<3,2,2>

<s,e,d,t,m>
routage
<f,e,d,t,m>

<y>
senvrep
[t=rep]
<x,y,m>

<s,d,f>
[s d]

Socc
servinfo

<s,d,f>

<x,y,m>
resdeliv

[t=rep]
crecrep

<e,d,t,m>
[s=e]

<y,x,t,mr>

<y,x,t,m>

[s=d]
<e,d,t,m>

MessDeliv messlocal

<x,y,t,m>
Spret site
<site.All>

[t=req]
srecreq
<y>

Figure 17. Un modle de routage rseau

des requtes du client vers le serveur quil a choisi et celui des rponses du serveur vers ce client.
Un client x met (transition cenvreq) destination dun serveur y des messages mis me de type
requte [t = req] modliss sous forme dun quadruplet < x, y, t, me > dans la place M essEmis.
Pour les acheminer dans le rseau, la transition resenv les code dans la place M essRes sous
la forme gnrale < s, e, d, t, m > o s, initialis par la garde [s = e], est le site dmission du
message, e son metteur, d son destinataire.

37

Si s = d le message, arriv sa destination d, est dlivr dans la place M essDeliv sous forme
locale < e, d, t, m > par la transition resdeliv. Sinon le routage lenvoie vers le site suivant f
indiqu par la table de routage. Cette table contient des triplets < s, d, f > indiquant que le
site s doit envoyer au site f les messages destins au site d. Un message < s, e, d, t, m > dans la
place M essRes devient ainsi < f, e, d, t, m > dans la mme place et fera ventuellement lobjet
de plusieurs redirections. Ici il y a 3 sites : le site 1 est connect 2 et 2 3. Dans la place T able,
un triplet tel que < 1, 3, 2 > fait transiter par 2, les messages situs en 1 et destins 3.
Un serveur y traite les messages de type [t = req] qui lui sont destins. Il fournit une rponse
mr quil met sous forme dun message local < y, x, t, mr > avec [t = rep] par la transition
senvrep. Cette rponse est aussi code sous forme dun message rseau et est achemine selon le
mme mcanisme que le message du client.

8.5. Les rseaux rguliers et les rseaux ordonns


En restreignant la dnition des WN on peut retrouver la dnition de deux familles de
rseaux colors. Lintrt de ces rseaux est quil existe des algorithmes simples de calcul de
famille gnratrice dinvariants colors et paramtrs sur ces modles [?], [?], [?].
Dfinition 0.29 (Rseaux rguliers) Un rseau bien form est un rseau rgulier si :
1. Les classes ne sont pas partitionnes en sous-classes statiques ;
2. Le domaine de couleur dune place ou dune transition ne peut faire intervenir deux fois la
mme classe ;
3. On nutilise que les fonctions identit (XCi ) et diffusion (AllCi ) ;
4. Toutes les gardes sont VRAI (ou plus simplement il ny a ni garde sur les fonctions ni
garde sur les transitions).
Lorsque le domaine de toutes les places et de toutes les transitions est gal aux produit cartsien
de toutes les classes on dit que le rseau est homogne. Si ce domaine est rduit une seule
classe (pas de produit cartsien de classes) on dit que le rseau est un rseau rgulier unaire ou
mono-classe.
Lensemble de ces contraintes implique que lon ne peut distinguer une valeur constante dans
une classe de couleur et quune transition ne peut distinguer quun objet par classe lmentaire.
De plus, on restreint les catgories de fonctions de couleur pouvant tre utilises.

38

Nous donnons un exemple maintenant classique [?] de rseaux rguliers (le modle de base de
donnes rpartie, gure 18).
Start Modif : C1

Start Update : C1

C1 = {1..n1}
C2 = {1..n2}

C1.All

C1.All

<X1>
<X2> t1

<X1>
Mess : C1xC2
< All1 - X1, X2 >

< X1, X2 >

t3

C2.All

Files : C2 < X1, X2 >

< X1, X2 >


<X1>

<X1>

Wait Acks : C1xC2

Update : C1xC2

< X1, X2 >

<X2>
t2

< X1, X2 >


Ack : C1xC2

< All1 - X1, X2 >

< X1, X2 >

t4

Figure 18. Un modle de base de donnes rpartie

Lorsquun site X1 veut modier un chier X2 de la base de donne (transition t1 ), aucun


autre site ne doit travailler sur ce chier ; il faut donc acqurir un verrou dexclusion mutuelle
sur ce chier (arc reliant F iles et t1). Initialement, aucun site ne travaille sur la base, do le
marquage initial de F iles C2.All.
Lorsque X1 peut modier la base, il envoie alors tous les autres sites une demande de mise
jour de la base, fonction All1 X1 sur larc t1 M ess et passe en attente dun accus de
rception de mise jour des autres sites.
Chaque site modie alors sa copie de la base en mettant jour le chier X2 (transition t3) et
envoie un accus de modication dans la place Ack (transition t4). Lorsque tous les sites (except
linitiateur de la modication) ont mis jour leur copie de la base (fonction All1 X1 sur larc
Ack t2 ), X1 peut alors retourner au repos et libre alors la base de donne (transition t2).
Il y a deux classes de couleurs : C1 qui reprsente les sites et C2 qui reprsentent les chiers
de la base. Initialement, chaque site est prt faire une modication ou une mise jour de la
base (multi-ensemble C1.All dans les places StartM odif et StartU pdate) et tous les chiers
sont libres (C2.All dans la places F iles).

Dfinition 0.30 (Rseaux ordonns) Un rseau bien form est un rseau ordonn si il vrifie
les mmes contraintes quun rseau rgulier except le fait quil peut faire intervenir la fonction

39

successeur (!XCi ) mais pas la fonction de diffusion. Les fonctions autorises sur une classe sont
donc : XCi et !XCi .
Comme illustration nous proposons une modlisation du trs classique problme des philosophes avec prise en deux temps des baguettes. Dans ce modle, linterblocage est contrl
par lajout dune place Chaises limitant N 1 le nombre de philosophes ayant commenc
demander des baguettes mais nayant pas encore obtenu les deux.
PrendreChaise

Pense : D
<X>

Att1 : D

D = {1..N}

<X>

D.All

<X>

Chaises : {.}

<X>

<X>
PrendreG

N-1

<X>
Att2 : D

<!X>
<X>
PrendreD

fin

Baguettes : D
D.All

<X>
Mange : D

<X>
RendreG
<X>
<X>
Finir1 : D
<X>
RendreD
Finir2 : D
<X>

<X>

<!X>

Figure 19. Un version du problme des philosophes

Tous les philosophes sont initialement dans ltat Pense (D.All dans la place Pense). Pour
manger, un philosophe X doit dabord prendre une chaise (transition PrendreChaise), puis sa
baguette (transition PrendreG) puis la baguette de son voisin (transition PrendreD). Lorsquil
atteint ltat Mange, le philosophe rend la chaise quil avait prise. Pour retourner ltat Pense,
il doit rendre sa baguette, puis celle de son voisin.
Remarque Un abus de notation est fait lorsque lon dnit le marquage initial de la place
Chaises N 1. En eet, de par la dnition des rseaux ordonns, il nest pas possible a
priori de faire intervenir le cardinal dun domaine de couleur dans la dnition dune fonction
de couleur ou dun marquage initial. Nanmoins, lutilisation du cardinal dune classe de couleur
ne modie pas le pouvoir dexpression du modle. En eet, il surait de rajouter une classe de

40

couleur C de cardinal N 1, de colorer la place Chaises par cette nouvelle classe de couleurs,
de lui attribuer le marquage initial C.All et de modier les arcs autour de cette place de la faon
suivante :
P r
e(Chaises, P rendreChaise) = hY i,
P ost(Chaises, P rendreD) = hY i.

9. Le graphe des marquages symboliques


Le principe de construction du graphe des marquages symboliques (GMS) est de prendre en
compte les symtries de lensemble des marquages accessibles an de les reprsenter de manire
compacte [?, ?, ?]. Cette reprsentation repose sur une structure de donnes et une mthode :
1. le marquage symbolique reprsente un ensemble de marquages quivalents par rapport
certaines permutations de couleur prservant les symtries du modle ;
2. la rgle de franchissement symbolique dnit la relation daccessibilit dans le GMS et
reprsente un ensemble de franchissements ordinaires.
Dans la suite de cette section la construction du graphe des marquages symboliques sera
illustre laide de lexemple suivant (gure 20). Ce rseau modlise des sites qui peuvent jouer
Spret
<site.all>

site

Class `
site is 1..3;
Domain
traitement is
<site, site>;
Var
x in site;
y in site;

<x, y>

cenv
<x>

traitement
<x, y>

[y x]

srec
<x,y>

Socc

Catt

Rep

site

traitement

site

<x>
<x>

crec

<y>

Mess

<x>

<x,y>
<x>

<x>

senv
<y>

Figure 20. Un modle client serveur

indiremment le rle de clients ou de serveurs. Un site dans ltat Prt (place Spret) passe
dans ltat client en attente (Catt) par la transition cenv ou dans ltat serveur occup (Socc)
par la transition srec. Puisquun site ne peut jouer la fois le rle de client et de serveur de
son propre message, on munit la transition cenv dune garde [y 6= x] empchant denvoyer un
message au site de mme numro. Une telle garde est une condition restreignant le choix des
variables associes une transition.

41

Si lon souhaite analyser ce rseau par une technique base sur la construction du graphe des
marquages accessibles (pour une valeur de n donne), on se heurte rapidement au problme de
lexplosion combinatoire. En eet, la taille de lensemble des marquages accessibles augmente de
manire exponentielle en fonction du nombre de sites. Pour trois sites, le graphe des marquages
du rseau dpli possde 87 sommets et 207 arcs, pour quatre sites il y a 936 sommets et 3124 arcs
et pour cinq sites il y a 12455 sommets et 53575 arcs. Cependant, beaucoup de ces marquages
reprsentent des tats similaires en terme dvolution future et pourraient ne pas tre construits
sans pour autant perdre la possibilit danalyse du modle. La premire tape vers cet objectif
est la dnition de la notion de marquage symbolique.

9.1. Marquages symboliques


Considrons lvolution suivante du rseau : le site 1 envoie une demande de traitement au
site 2 et le site 3 reste inactif.
m0
cenv( <1,2> )
m1

m0 = ( <1> + <2> + <3> )

cenv( <3,2> )
m2

m1 = ( <2> + <3> ).Spret + ( <1> ).Catt + ( <1,2> ).Mess


m2 = ( <2> + <1> ).Spret + ( <3> ).Catt + ( <3,2> ).Mess

Figure 21. Deux volutions possibles du rseau de la figure 20

On obtient alors le marquage m1 = (< 2 > + < 3 >).Spret + (< 1 >).Catt + (< 1, 2 >).M ess.
Il est clair que lon obtiendrait un marquage similaire si lon remplaait le site 1 par le
site 3 : 3 envoie une demande 2 et 1 reste inactif, ce qui correspond au marquage m2 =
(< 2 > + < 1 >).Spret + (< 3 >).Catt + (< 3, 2 >).M ess. Le marquage m2 peut tre obtenu
par permutation des couleurs partir du marquage m1 . Les comportements des dirents sites
sont symtriques et il semble donc naturel de regrouper des marquages symtriques en classes
dquivalence appeles marquage symbolique. Cette relation dquivalence est obtenue partir
de la dnition de permutations de couleurs admissibles.
Dfinition 0.31 (Permutation admissible) Soit Cl = {C1 , . . . , Ck }. Le tuple de permutation
= h1 , . . . , k i est une permutation admissible (de WN) si et seulement si :
1. i, i est une permutation sur Ci prservant les sous-classes statiques de Ci i.e. q, i (Ci,q ) =
Ci,q

42

2. si Ci est ordonne, alors i est une rotation.


On note lensemble des permutations admissibles. De plus, si c = hci1 , . . . , ciq i est une valeur dun domaine de couleurs C (i.e. c C = Ci1 . . . Ciq , Cij Cl) alors (c) =
hi1 (ci1 ), . . . , iq (ciq )i.
La premire condition caractrise le fait que les lments dune sous-classe statique ont le
mme comportement. Leur identit est donc peu importante ds que la permutation prserve la
sous-classe statique. La seconde proprit est lie au fait que lordre est important sur une classe
ordonne : on peut dsigner x et son successeur. Il faut alors prserver lordre sur la classe et
restreindre les permutations aux rotations. La conjonction de ces contraintes impose donc que,
pour les classes ordonnes ayant plus dune sous-classe statique, la seule permutation autorise
est lidentit.
Par exemple, la permutation 1 sur C1 dnie par 1 (1) = 3, 1 (2) = 2, 1 (3) = 1 permet
de dnir la permutation admissible sur C1 C1 = h1 , 1 i. Si la classe C1 tait une classe
ordonne, cette permutation ne serait pas correcte car elle ne respecterait pas lordre sur C1 .
A partir de cette dnition, nous pouvons dnir laction dune permutation sur une marquage.

43

Dfinition 0.32 (Permutation de marquage) Soit m un marquage et une permutation


admissible. Alors .m est le marquage dfini par :
p P, c C(p), .m(p)((c)) = m(p)(c)
Sur lexemple prcdent, le marquage m2 peut tre obtenu partir du marquage m1 par
application de la permutation de couleur = h1 , 1 i.
Une proprit fondamentale des rseaux bien forms est que la rgle de franchissement est
prserve par application dune permutation admissible sur un marquage et sur une instance de
franchissement.
m[t(c)im .m[t((c))i.m
Par exemple, partir du marquage m1 il est possible de franchir la transition srec(2) (le site 2
accepte une requte) et on atteint alors le marquage m1 = (< 3 >).Spret + (< 1 >).Catt + (< 1, 2 >
).Socc. On vriera sans peine qu partir du marquage m2 il est possible de franchir la transition
m1
srec(2)
m1

m2

m1 = ( <2> + <3> ).Spret + ( <1> ).Catt + ( <1,2> ).Mess


m2 = ( <2> + <1> ).Spret + ( <3> ).Catt + ( <3,2> ).Mess

srec(2)
m2

m1 = ( <3> ).Spret + ( <1> ).Catt + ( <1,2> ).Socc


m2 = ( <1> ).Spret + ( <3> ).Catt + ( <3,2> ).Socc

Figure 22. Franchissement et permutations

srec(2) (1 (2) = 2) que lon atteint le marquage m2 = (< 1 >).Spret+(< 3 >).Catt+(< 3, 2 >).Socc
et que m1 = .m2 .
Les marquages obtenus par permutation dun marquage donn sont donc en quelque sorte
quivalents en terme de comportement futur. Ceci nous permet de dnir la notion de classe
dquivalence de marquage, appel marquage symbolique.
Dfinition 0.33 (Marquage symbolique) Soit Eq la relation dfinie par :
m Eq m tq m = .m
Eq est une relation dquivalence et la classe dquivalence dun marquage m est appel un
b
marquage symbolique et not m.

44

9.2. Reprsentation dun marquage symbolique


Il faut alors se poser la question de la reprsentation dun marquage symbolique. En eet,
reprsenter une classe dquivalence par lensemble des lments en relation est trs coteux
en espace (ceci revient calculer le graphe ordinaire). A loppos, comme dans [?], reprsenter
une classe dquivalence par un de ses lments et calculer (lorsque cela est ncessaire) si deux
lments sont quivalents est coteux en temps.
La reprsentation choisie ici utilise le fait que lidentit des couleurs dun marquage symbolique
nest pas importante mais quil est plus intressant de connatre la distribution des valeurs de
couleur dans les places. Par exemple, pour le marquage initial, les couleurs < 1 >, < 2 > et
< 3 > ont la mme distribution dans les places (toutes dans la place Spret). De mme, pour les
marquages m1 et m2 lidentit des sites nest pas importante. Il sut de savoir quil y a deux
sites dans ltat Spret, un site dans ltat Catt et une requte envoye par un site un autre site.
On peut donc oublier lidentit des couleurs et reprsenter un groupe de k couleurs distribues
symtriquement par une sous-classe dynamique, qui sera caractrise par son cardinal 7 . Ces
sous-classes dynamiques seront notes ZCj i ou Zij avec Ci une classe de couleurs et j un indice
dsignant la j-me sous-classe dynamique de Ci ; elles seront distribues par une fonction de
marquage dans les places du rseau. Cependant, lorsquune classe est dcompose en sous-classes
statiques, il est ncessaire de direncier les lments dune sous-classe statique dune autre. En
eet, les permutations admissibles dun modle doivent prserver les sous-classes statiques (qui
reprsentent des comportements dirents). Pour cela, on prcise quelle sous-classe statique
est associe une sous-classe dynamique par une fonction supplmentaire. De plus, an que la
reprsentation soit cohrente avec le dcoupage statique des classes de couleurs, on impose que
la somme des cardinaux des sous-classes dynamiques associes une sous-classe statique soit
gale au cardinal de cette sous-classe statique.

Dfinition 0.34 (Reprsentation symbolique) Une reprsentation symbolique est un 4-tuple


m
= h{{Zij }j=1..nbi }i=1..k , St, Card, M arqi avec :
ci = {Z j }
{Zij }j=1..nbi un ensemble de sous-classes dynamiques associes Ci ; on note C
i j=1..nbi
e1

c1 . . .
et par extension, si C = C1e1 . . . Ckek est un domaine de couleur, alors Cb = C
ek
ck ;
C
St une application qui associe chaque sous-classe dynamique Zij une sous-classe statique
de Ci ;

Le terme dynamique est utilis pour rappeler que le partionnement se fait dynamiquement pour chaque
marquage accessible et non statiquement lors de la dfinition du rseau o lon parle de sous-classe statique

45

Card une application qui associe chaque sous-classe dynamique un cardinal (un entier
P
positif ) 8 tel que : St(Z j )=Ci,q Card(Zij ) = |Ci,q |.
i
M arq une application qui dfinit la rpartition des sous-classes dynamiques dans les places
b
du rseau : p P, M arq(p) Bag(C(p)).

En utilisant cette reprsentation, le marquage symbolique li m1 et m2 pourra tre not


(< Z11 > + < Z12 >).Spret + (< Z13 >).Catt + (< Z13 , Z11 >).M ess avec |Z11 | = |Z12 | = |Z13 | = 1. De
mme, le marquage symbolique li m0 pourra tre not (< Z11 >).Spret avec |Z11 | = 3.
Une reprsentation symbolique dnote un ensemble de marquages ordinaires. Pour cela, on
associe chaque sous-classe dynamique un ensemble de couleurs dans la sous-classe statique
correspondante.
Dfinition 0.35 (Marquages reprsents) Soit m
une reprsentation symbolique. Un marquage ordinaire m est reprsent par m
ssi il existe pour toute classe Ci une application i de
ci telle que :
Ci dans C
1. le nombre de couleurs reprsentes par une sous-classe dynamique est gal au cardinal de
celle-ci ; i.e. |1 (Zij )| = Card(Zij ) ;

2. lensemble des couleurs reprsentes par une sous-classe dynamique est inclus dans une
ci St(Z j ) = q = 1 (Z j ) Ci,q ;
seule sous-classe statique, i.e. q 1..si , Zij C
i
i
3. si Ci est une classe ordonne alors lordre sur Ci est respect ; i.e.
ch 1 (Zij ) tq
b|
j+1 mod |C

i
!XCi (ch ) 1 (Zi
) et
j
1
c =
6 ch (Zi ), !XCi (c) 1 (Zij )

4. les couleurs sont rparties selon la rpartition des sous-classes dynamiques ; i.e. p, M (p)(hc11 , . . . , ce11 , . .
=
M arq(p)(h1 (c11 ), . . . , 1 (ce11 ), . . . , k (ck1 ), . . . , k (cekk )i)
A laide de cette dnition, il est par exemple possible de retrouver les marquages m1 et m2
partir de la reprsentation symbolique m
=(< Z11 > + < Z12 >).Spret+ (< Z13 >).Catt+ (< Z13 , Z11 >
3
2
1
).M ess avec |Z1 | = |Z1 | = |Z1 | = 1.
Les contraintes portant sur sur les applications i sont lies entre autres aux conditions
portant sur les permutations admissibles (une permutation respecte les sous-classes statiques et
lordre des classes ordonnes). De cette faon on garantit que les marquages reprsents par un
b
marquage symbolique m
sont exactement ceux de la classe dquivalence m.
8

On note |Zij | le cardinal de Zij .

46
~
1 2
3
2
1
m = (< Z1 > + < Z1 >).Spret + (< Z1 >).Catt + (< Z1, Z1>).Mess
3

(1) = Z1
(2) =
(3) =

1
Z1
Z21

m1=(<2>+<3>).Spret+(<1>).Catt+(<1,2>).Mess
(1) = Z21
(2) =
(3) =

m2=(<2>+<1>).Spret+(<3>).Catt+(<3,2>).Mess

Z11
Z31

Figure 23. Exemples de marquages reprsents

Proposition 0.36 Soit m un marquage. Il existe au moins une reprsentation symbolique de m,


b
et toute reprsentation symbolique de m reprsente exactement m.
Cette reprsentation nest gnralement pas unique. Pour la rendre unique, la notion de reprsentation minimale et ordonne est introduite dans [?]. La notion de minimalit utilise correspond au fait quune reprsentation utilise le plus possible la symtrie dun marquage. Sur le
marquage (< 2 > + < 3 >).Spret + (< 1 >).Catt + (< 1 >).Rep la dcomposition de C1 en 3 sousclasses dynamiques Z11 ,Z12 et Z13 de cardinal 1 ne serait pas minimale. En eet, la dcomposition
Z11 , Z12 avec |Z11 | = 2 est plus compacte car elle utilise pleinement la symtrie entre les valeurs
de couleurs 2 et 3 pour ce marquage. Le critre dordre permet de numroter les sous-classes
dynamiques par rapport un ordre lexicographique induit par le marquage. En utilisant ces
deux critres, on obtient alors la proposition suivante :
b un marquage symbolique. Il existe
Proposition 0.37 (Reprsentation canonique) Soit m
b qui est minimale et ordonne. Cette reprsentation est dite
une et une seule reprsentation de m
b
canonique et on la note galement m.

9.3. Rgle de franchissement symbolique


An de construire le graphe des marquages symboliques directement, cest dire sans dvelopper puis agrger le graphe des marquages ordinaires, il nous faut dnir une rgle de franchissement symbolique. Lide de base est que lon va consommer et produire des sous-classes
dynamiques plutt que des couleurs. Pour cela il faut pouvoir faire une instanciation symbolique
des sous-classes dynamiques comme lon instancierait des classes de couleurs pour un franchissement normal : on choisit une sous-classe dynamique par classe du domaine de couleur. Le
point technique est quune classe peut apparatre plusieurs fois dans un domaine de couleur

47

(C = C1 C2 C1 ). Dans ce cas, il faut prciser pour chaque occurrence de Ci quelle sousclasse dynamique est choisie (cest le rle des fonctions i ) et lorsquune mme sous-classe est
choisie plusieurs fois, il faut prciser si on prend des valeurs gales ou distinctes dans cette
sous-classe (cest le rle des fonctions i ).

48
b un marquage symbolique, m
Dfinition 0.38 (Instanciation symbolique) Soit m
une reprb
sentation de m et C un domaine de couleur (on note ei le nombre de fois quapparat Ci dans C).
Une instanciation symbolique de C est un couple densembles de fonctions [ = {i }i=1..|Cl| , =
{i }i=1..|Cl| ] tel que pour tout i :
ci | et dfinit quelle sous-classe dynamique de C
ci est choisie pour la
x 1..ei , i (x) 1..|C
e
`
me
x
occurrence de Ci dans C ;
(x)
x 1..ei , i (x) 1..|Zi i | et permet de distinguer ou non des instances diffrentes dans
une mme sous-classe dynamique ;
x 1..ei , i (x) > 1 = x tq i (x ) = i (x) 1 et garantit lunicit de la reprsentation

On note ji = |{i (x)|i (x) = j}| le nombre dinstanciations diffrentes de la sous-classe Zij .
Prenons un exemple. Soit C = C1 C2 C1 un domaine de couleur et supposons que pour
c2 = {Z 1 } avec
c1 = {Z 1 , Z 2 , Z 3 }, C
un marquage donn, on ait le partionnement suivant : C
2
1
1
1
1
3
2
1
|Z1 | = |Z1 | = 2 et |Z1 | = |Z2 | = 1. Le couple [{1 , 2 }, {1 , 2 }] avec 1 (1) = 1 (2) = 2,
2 (1) = 1, 1 (1) = 1 (2) = 1 et 2 (1) = 1 dsigne linstance symbolique hz12 , z21 , z12 i. On voit ici
que comme 1 (1) = 1 (2) alors la premire et la troisime composante de ce tuple (dans Z12 )
ont la mme valeur. Si par contre, 1 (1) = 1 et 1 (2) = 2 alors il faudrait choisir deux valeurs
distinctes (hz12 , z21 , v12 i avec z12 6= v12 ).
Si 1 (1) = 1, 1 (2) = 3, 2 (1) = 1, 1 (1) = 1 (2) = 1 et 2 (1) = 1 alors on a linstance
symbolique hz11 , z21 , z13 i.
Etant donns un marquage symbolique et une transition, une fois choisie une instance symbolique de franchissement, on partitionne le marquage de faon sparer les valeurs choisies des
autres. Chaque sous-classe dynamique est alors partionne en nouvelles sous-classes. De plus,
an que la rgle de franchissement symbolique soit cohrente avec la rgle de franchissement
ordinaire, on impose que chaque sous-classe instancie soit rduite un lment.
b un marquage symbolique, m
Dfinition 0.39 (Partionnement) Soient m
une reprsentation
b Une instanciation symbolique [, ] dfinit un partionnement de m,
de m.
[, ].m
= h{{Zij,k }}, St , Card , M arq i,
ci est partionne en {Z j,k } de la faon suivante :
tel que chaque sous-classe dynamique Zij de C
i

1. si Ci est ordonne ou si tous les lments de Zij sont instancis (ji = |Zij |) alors Zij est
dcompose en lensemble des sous-classes {Zij,k } avec k = 1..|Zij | et |Zij,k | = 1 ;
2. sinon, si au moins un lment de Zij est instanci alors Zij est dcompose en lensemble
des sous-classes {Zij,k } avec k = 0..ji , |Zij,k | = 1 pour tout k 1..ji et |Zij,0 | = |Zij | ji
( Zij,0 regroupe les lments non instancis) ;
3. sinon Zij est renomme en Zij,0 .

49

Chaque nouvelle sous-classe Zij,k est associe la mme sous-classe statique que celle dont elle
est issue (St (Zij,k ) = St(Zij )) et est rpartie de la mme manire dans le nouveau marquage
P
symbolique (i.e. on remplace Zij dans un marquage par k Zij,k ).
Soit m0 = (< 1 > + < 2 > + < 3 >).Spret le marquage initial du rseau de la section
introductive (gure 20, page 40). La reprsentation canonique du marquage symbolique associe
c0 = (Z11 ).Spret avec |Z11 | = 3. La transition cenv distingue deux valeurs de la classe
m0 est m
C1 (not Site sur la gure) et son domaine est donc C1 C1 . Deux instanciations dynamiques
b
c0 :
de C(cenv)
sont possibles pour m
c1
IDa = h{1 (1) = 1 (2) = 1}, {1 (1) = 1, 1 (2) = 1}i qui ne distingue quune valeur de C
et
IDb = h{1 (1) = 1 (2) = 1}, {1 (1) = 1, 1 (2) = 2}i qui distingue deux valeurs direntes
c1 ( (1) 6= (2)).
de C
1
1
1

| Z1 |=3

Spret

1,0

< Z1 >
Partitionnement

<X>
<X,Y>

cenv
<X>

[X=Y]

1,1
Z1

Spret
1,1
1,0
< Z1 > + < Z1 >

|=1
<X>

Mess
1(1)=1(2)=1
1(1)=1

Catt

| Z1 | = 2

1(2)=2

<X,Y>

cenv
<X>

Mess

[X=Y]
Catt

Figure 24. Partionnement de m0 par rapport IDa


c0 par rapport IDa (voir gure 24) est le marquage IDa .m
c0 dni
Le partionnement de m
1,1
1,0
1,1
1,0
c0 = (Z1 + Z1 ).Spret avec |Z1 | = 1 (la valeur instancie) et |Z1 | = 2 (les
par IDa .m
1,1
1,2
1,0
c0 est quant lui dni par IDb .m
c0 = (Z1 + Z1 + Z1 ).Spret avec
autres valeurs). IDb .m
1,1
1,2
1,0
|Z1 | = |Z1 | = 1 (les deux valeurs instancies) et |Z1 | = 1 (lautre valeur).

Une fois dni le partionnement dun marquage il est possible de dnir la rgle de franchisb
sement symbolique. Dans cette dnition, on identie tout domaine de couleur C C.

Dfinition 0.40 (Franchissement symbolique) Une transition t est franchissable pour une
b
b si
instanciation symbolique [, ] de C(t)
partir du marquage symbolique m
1. la garde associe t est value vraie pour linstanciation [, ] ;
b;
2. les pre-conditions de t sont vrifies pour [, ].m

50
c qui est la reprsentation canonique du marquage symbolique
On atteint alors le marquage m
b
obtenu par application des pre et post conditions lies t sur [, ].m.
c0 la transition cenv est franchissable pour linstanciation IDb (voir gure 25).
A partir de m
c0 = (Z11,1 + Z11,2 + Z11,0 ).Spret) distingue deux valeurs. On
En eet, ce partionnement (IDb .m
| Z11 |=3

Spret

1,0

< Z1 >

| Z1 | = 1

<X>
Mess

<X,Y>

cenv
<X>

1,1

| Z1 | = 1

1,2

| Z1 | = 1
Partitionnement

<X>

Spret
1,0
1,1
< Z1 > + < Z1 >
1,2
+< Z1 >

1(1)=1(2)=1

[X=Y]

1(1)=1
1(2)=2

Catt

Mess

<X,Y>

cenv
<X>

[X=Y]
Catt

|
|

1,0
Z1
1,2
Z1

|=1

1,1
Z1

|=1

|=1

Spret
1,2
1,0
< Z1 > + < Z1 >

<X>
<X,Y>

cenv
<X>

[X=Y]

1,2
< Z1,1
1 , Z1 >

Mess

Franchissement
1,1
Z1
X
Y

1,2

Z1

| Z1 | = 1

| Z1 | = 1

| Z1 | = 1

Spret
1

< Z1 > + < Z1 >


<X>

1,1
< Z1 >

Catt

Canonisation
<X,Y>

cenv
<X>
3

[X=Y]

< Z31 , Z11 >

Mess

Catt

< Z1 >

Figure 25. Un franchissement symbolique

associe alors la variable x du rseau Z11,1 et la variable y Z11,2 . La garde [x 6= y] est


c0 contient bien la marque symbolique Z11,1 . On atteint alors le
alors value vraie et IDb .m
1,0
1,2
c1 = (Z1 + Z1 ).Spret + (Z11,1 ).Catt + (hZ11,1 , Z11,2 i).M ess, qui mis sous forme camarquage m
nonique scrit (Z11 + Z12 ).Spret + (Z13 ).Catt + (hZ13 , Z11 i).M ess.
Par contre, cenv nest pas franchissable pour linstanciation symbolique IDa . En eet, la
garde associe cenv ([x 6= y]) oblige que lon choisisse deux valeurs direntes, ce qui nest pas
le cas pour IDa .
Remarque Un marquage symbolique reprsente plusieurs marquages ordinaires ; un franchissement symbolique reprsente donc un ensemble de franchissements ordinaires. Lexemple de
franchissement symbolique prsent gure 25 reprsente en fait les franchissement de la transition cenv pour les six instances h1, 2i, h1, 3i, h2, 1i, h2, 3i, h3, 2i et h3, 3i.

51

9.4. Exemple de graphe symbolique


La gure 26 prsente le graphe des marquages symboliques du rseau de la gure 20. Sur
ce dessin, on a reprsent les sous-classes dynamiques Zij par des valeurs (arbitraires) de la
sous-classe. Par exemple, on a not Z11 par {1 + 2 + 3} lorsque |Z11 | = 3 et {1 + 2} pour |Z11 | = 2.
Ce graphe symbolique na que 19 sommets et 35 arcs. Le sommet Catt(1) + Spret(2 + 3) +
1

Ca(1)
+Sp(2+3)
+R(1)

ce(1,2)
Ca(1)
+Sp(2+3)
+M(1,2)

cr(1)

Sp(1+2+3)

ce(2,3)

cr(1)
se(1,2)
ce(2,1)

sr(1,2)
cr(1)

[2,1,3]

[3,1,2]
6

ce(2,3)
ce(2,1)

Ca(1+2)
+Sp(3)
+M(1,3+2,3)
3

Ca(1+2)
+Sp(3)
+R(1)
+M(2,3)

cr(1)

Ca(1+2+3)
+M(1,2+2,1+3,1)

[3,2,1]

[1,3,2]

Ca(1+2)
+So(2,3)
+R(1)

sr(2,3)
6

cr(2)

se(1,3)

se(2,3)

cr(1)

[1,3,2]
[3,1,2]

ce(3,1)

ce(3,1)
6
3

[2,1,3]

ce(3,1)
ce(3,2) Ca(1+2+3)
[1,3,2]

Ca(1+2)
+So(1,3)
+M(2,3)

6
Ca(1+2+3)
+R(1+2)
+M(3,1)

[2,3,1]

+R(1)
+M(2,1+3,1)
6

[3,2,1]

cr(1)

ce(3,2)

sr(2,3)
ce(3,1) [3,1,2]
6
2

se(2,3)
ce(3,1)

Ca(1+2)
+Sp(3)
+R(1)
+M(2,1)

sr(1,3)
cr(1) [3,2,1]

Ca(1+2)
+Sp(3)
+M(1,2+2,1) ce(3,1)
ce(3,2)
[2,3,1]
Ca(1+2)
3
+Sp(3)
cr(1) [3,2,1]
+M(1,2+2,3)
ce(3,1)
Ca(1+2+3)+R(1) 3
6
+M(2,3+3,2)

ce(3,2)

Ca(1)
+So(1,2)
+Sp(3)

Ca(1+2)
+Sp(3)
+R(1+2)

cr(1)
ce(3,2)
[1,3,2]

[2,1,3]

Ca(1+2)
+So(2,3)
+M(1,2)

6
Ca(1+2+3)
+R(1)
+M(2,3+3,1)

Ca(1+2+3)
+M(1,2+2,3+3,1)

Figure 26. Le graphe des marquages symboliques du rseau de la figure 20

M ess(1, 2) reprsente 6 marquages tels que Catt(1) + Spret(2 + 3) + M ess(1, 3) mais aussi
Catt(2) + Spret(1 + 2) + M ess(2, 3) etc... Leectif de chaque classe est indiqu ct de chaque
noeud. En les totalisant on retrouve bien que 87 marquages sont reprsents. Un arc reprsente
une classe de franchissements donnant des marquages quivalents. Ltiquette de larc indique
un franchissement possible pour le marquage origine. Ainsi cenv(3, 2) fait passer au nouveau
marquage Catt(1 + 3) + Spret(2) + M ess(1, 2 + 3, 2). Ce marquage ntant pas le reprsentant

52

"normalis" de sa classe, on lui applique la permutation [1, 2, 3 => 1, 3, 2] pour obtenir Catt(1 +
2) + Spret(3) + M ess(1, 2 + 2, 3).
Le graphe symbolique met en vidence deux types dinterblocage par change de messages
soit entre deux sites Catt(1 + 2 + 3) + M ess(1, 2 + 2, 1 + 3, 1), soit circulairement entre trois sites
Catt(1 + 2 + 3) + M ess(1, 2 + 2, 3 + 3, 1). Les classes Catt(1 + 2 + 3) + Rep(1) + M ess(2, 3 + 3, 2)
et Catt(1 + 2 + 3) + Spret(3) + M ess(1, 2 + 2, 1) conduisent inluctablement un interblocage
alors que pour toutes les autres classes, il existe des squences de franchissements permettant de
revenir au marquage initial.
Linterblocage serait vitable en interdisant quun site envoie un message sil y a un message
quil doit traiter. Cela est peu raliste car les messages en transit ne sont pas connus dun systme.
On vite donc linterblocage en autorisant un client en attente traiter un message arriv (ce
que lon verrait en introduisant une transition et une place intermdiaires entre cenv et srec).
Aprs traitement le site doit retourner dans ltat dattente et non dans ltat prt. On introduit
donc une classe contenant les 2 tats pret et attente et un domaine site-tat. La garde de la

Site
Class `
site is 1..4;
etat is pret, attente
Domain
site-etat is
<site, etat>;
traitement is
<site, site, etat>;
Var
x in site;
y in site;
e, nve in etat;

<site.all, pret>

site-etat

<x, e>

Mess

<y,e>

traitement
<x, y>

cenv
<x, nve>
<x,e>
<x, nve>

[e = pret and
nve = attente
and x y ]

[x y]

<x>

srec
<x,y,e>

Socc

Rep

traitement
<x,y,e>

site

crec
[e = attente
and nve =pret]

<x, y>

<x>

senv
<y,e>

Figure 27. Correction du prcdent modle

transition cenv exige que le site x soit dans ltat e = pret et le fait passer dans le nouvel tat
nve = attente. La garde de la transition crec exige que le site x soit dans ltat e = att et le fait
repasser dans ltat nve = pret (on peut montrer que cette garde est en partie redondante car
une rponse nest envoye qu un site qui a dj envoy un message).
La transition srec prend un doublet < y, e > dans Site et un doublet < x, y > dans M ess pour
en faire la jointure en produisant un triplet < x, y, e > dans Socc. Cela permet la transition
senv de restituer correctement ltat du site avant traitement et denvoyer la rponse au site
demandeur.

53

9.5. Quelques proprits du GMS


Nous terminons cette section en rappelant brivement quelques unes des proprits que lon
peut vrier sur le GMS.
Le premier problme rsoudre provient du fait que le GMS construit est une abrviation
du graphe des marquages accessibles partir dun ensemble de marquages initiaux : tous les
marquages appartenant la classe dquivalence du marquage initial. An de saranchir de
ce problme, on peut imposer que la classe dquivalence du marquage initial soit rduite un
c0 | = 1). Sous cette contrainte on a les rsultats suivants (en notant GM le graphe
lment (|m
des marquages accessibles et GMS le graphe des marquages symbolique dun rseau bien form
marqu par m0 ) :
c0 | = 1 alors
Proposition 0.41 Soit (W N, m0 ) un rseau bien form. Si |m
GM est (in)fini ssi GMS est (in)fini
b est accessible dans GMS
m est accessible dans GM ssi m
b
b est un espace daccueil dans GM9
m est un tat daccueil dans GMS ssi {m | m m}
c0 est un tat daccueil dans GMS et toute transition apparat sur un arc du GMS alors
si m
(W N, m0 ) est vivant.

Ces proprits doivent tre lgrement modies dans leur expression pour tre tendues au
c0 | =
cas o |m
6 1. Le lecteur pourra se rfrer [?].

Dautres proprits intressantes peuvent tre obtenues en tendant ou modiant la construction du graphe des marquages symboliques. Le chapitre 15 prsente comment utiliser le graphe
des marquages symbolique pour la vrication de proprits gnrales exprimes en logique temporelle. Les chapitres 10 et 11 montrent comment exploiter la construction du GMS pour calculer
des mesures de performance dans le cadre des rseaux bien forms stochastiques.

10. Rductions structurelles


Soient une proprit et M un modle. Vrier que M satisfait peut se faire de manire
ecace en dnissant un modle M , quivalent M pour la proprit , de telle sorte que la
proprit soit plus simple vrier sur M que sur M.
9

i.e. m1 GM, s | m1 [s > m et m m


b

54

Cette mthodologie est connue dans le cadre des rseaux de Petri sous le nom de rduction.
Une rduction est une transformation de rseau qui rduit la taille du rseau tout en prservant
un ensemble de proprits. Trois points caractrisent une rduction :
1. les conditions dapplications : comment reconnatre que la rduction est applicable sur un
rseau ;
2. la transformation de rseau : comment est dni le rseau rduit ;
3. les proprits prserves : le rseau rduit a-t-il le mme comportement que le rseau initial
pour une proprit donne ?
Parmi les rductions proposes dans [?] nous nous intresserons dans cette section aux agglomrations de transitions (pr et post) et la suppression de place implicite. Ces rductions orent
en eet un trs bon compromis entre frquence dutilisation, utilit de la rduction et simplicit
dapplication.
Nous nous attachons ici de plus dnir leurs quivalents dans le cadre des rseaux de haut
niveau.

10.1. Principe dextension aux rseaux colors


Dirents types de rductions ont t dnis pour les rseaux colors [?], [?], [?]. Nous prsentons ici celles dnies dans [?]. En eet, plutt que de dnir de nouvelles rductions, lauteur
propose une mthodologie dextension permettant de construire une rduction colore partir dune rduction ordinaire quil applique quelques rductions classiques. Cette mthodologie
dextension repose sur les trois principes suivant :
1. se rapprocher des conditions dapplications ordinaires, cest dire :
(a) ne pas ajouter de contraintes structurelles par rapport la dnition ordinaire ;
(b) nimposer que les conditions fonctionnelles ncessaires au maintien de lquivalence
entre le rseau rduit et loriginal.
2. se limiter aux extensions permettant dobtenir un rseau color rellement rduit et utilisable :
(a) ne pas augmenter le domaine de couleur des transitions ;
(b) nutiliser pour la dnition des nouvelles fonctions de couleur que des compositions
de fonctions de couleur ou de leur inverse.
3. maintenir le mme ensemble de proprits prserves.

55

dpliage

Rseau color

Rseau dpli

rduction colore

suite de rductions "classiques"


repliage

Rseau dpli rduit

Rseau color rduit

Figure 28. Mthodologie dextension

Une faon simple de procder est alors dtudier les conditions sous lesquelles une rduction
colore peut tre vue comme la synthse dune srie de rductions ordinaires. Pour cela, on
tudie comment reconnatre directement dans un rseau color les rgles dapplications et de
transformation lies lapplication dune srie de rductions dans le rseau dpli ainsi que le
rsume la gure 28.
En plus des conditions portant simplement sur la structure (une place na quune transition en
entre, une transition na quune seule place donne en sortie, ...), il est important de caractriser
les fonctions de couleur par rapport la structure quelles induisent dans le rseau dpli. En
eet, une transition peut navoir quune seule place en sortie dans le rseau color, alors que dans
le rseau dpli, une instance de cette transition peut avoir un ensemble de places en sortie ainsi
que lillustre la gure 29. Il est donc ncessaire de dnir des conditions susantes assurant que
C={1..n}
t
All
p:C

rseau color

p(1)

p(2)
........

p(n)

rseau dpli

Figure 29. Exemple de structure modifie dans le rseau dpli

le dpliage produira un rseau correct du point de vue de la structure attendue. Les dnitions
suivantes rpondent ce besoin.
Dfinition 0.42 (Proprits de fonction) Une fonction f de C dans Bag(C ) est dite :
unitaire si et seulement si c C, c C , f (c)(c ) = 0 ou f (c)(c ) = 1 ;
orthonormale si et seulement si C = C et il existe une permutation sur C telle que
f (c) = (c) ;

56

quasi-injective si et seulement si c1 , c2 C, c C , f (c1 )(c ) 6= 0 et f (c2 )(c ) 6= 0


=c1 = c2 .
quasi-surjective si et seulement si c C , c C tq f (c)(c ) 6= 0 ;
quasi-bijective si et seulement si C = C et c C, !c C tq f (c)(c ) 6= 0.

Une fonction unitaire ne peut produire que des valuations gales 0 ou 1 dans le rseau
dpli. Une fonction orthonormale est, une permutation prs, une fonction identit sur un
domaine C. Quant aux autres caractrisations de fonction, elles correspondent la notion usuelle
dapplication injective, surjective ou bijective, hormis le fait que ces fonctions vont dun domaine
vers un domaine de multi-ensembles. En pratique, la syntaxe des rseaux bien-forms permet
de tester facilement des conditions susantes prcises pour ces proprits. Par exemple, une
fonction quasi-injective sur un arc reliant une place p et une transition t ne peut faire intervenir
de projection. Il est alors susant de tester que le domaine de t est plus petit (au sens du
produit cartsien) que le domaine de p et que cette fonction est un tuple faisant intervenir toutes
les variables instancies par la transition t et nutilisant pas la fonction All sur les classes de
couleur communes au domaine de t et de p.
Nous tudions maintenant lextension de deux types de rductions : la pr et la post agglomration de transition et la suppression de place implicite.

10.2. Pr et post-agglomrations de transitions


Lide de la pr et de la post-agglomration de transitions est de considrer deux ensembles
disjoints de transitions (nots H et F ) et de dnir des hypothses permettant dassurer lquivalence entre le rseau initial, o les transitions de H et de F seront franchies en squence, et le
rseau rduit, o les couples (h, f ) seront franchis atomiquement. Pour la pr-agglomration, des
hypothses structurelles garantissent que lon peut retarder le franchissement dune transition h
jusquau franchissement dune transition de F sans altrer lensemble des proprits de bases.
Ce franchissement peut alors se faire atomiquement, ce qui a pour consquence de supprimer un
tat intermdiaire et donc de rduire la taille du graphe des marquages accessibles. De mme,
pour la post-agglomration, des hypothses structurelles assurent que lon peut avancer le franchissement dune transition f ds que lon a franchi une transition de H. On peut galement
considrer que ce franchissement est atomique.

57

Pr-agglomration de transitions
Pour cette rduction on considre une transition h et un ensemble de transitions F (nincluant
pas h).
Avant de prsenter la pr-agglomration colore, nous rappelons les conditions dapplication
de cette rduction dans le cas des rseaux ordinaires.
Les conditions structurelles suivantes garantissent quil est quivalent de considrer quil y a
un tat intermdiaire entre le franchissement de h et dune transition de F ou de considrer que
le franchissement des squence h.f est eectu de faon atomique. Le terme quivalent dsigne
ici quivalent pour le proprit de base (vivacit, caractre born, ...) [?], [?].
Dfinition 0.43 (Transitions ordinaires pr-agglomerables) Soit (R, m0 ) un rseau de Petri. Un ensemble de transitions F est pr-agglomerable avec une transition h nappartenant pas
F si et seulement si les conditions suivantes sont vrifies :
1. Il existe une place p modlisant un tat intermdiaire entre le franchissement de h et dune
transition de F :
(a) m0 (p) = 0 ;
(b) p = {h} et p = F ;
(c) P ost(p, h) = 1
(d) f F, P re(p, f ) = 1.
2. h ne produit des marques que dans p : h = {p} ;
3. h nest en conflit avec aucune autre transition : q h, q = {h} ;
4. h a au moins une pr-condition : h 6= .
La premire hypothse garantie que toute occurrence de franchissement dune transition f
de F est prcde du franchissement de h. La seconde assure que h nest utile que pour le
franchissement dune transition de F . La troisime implique que si h est franchissable alors elle
le reste jusqu ce quelle soit franchie (h peut donc tre retarde). Enn la quatrime hypothse
permet dassurer lquivalence pour le caractre born entre le rseau rduit et loriginal.
Dfinition 0.44 (Rseau pr-agglomr) Une pr-agglomration sur le rseau (R, m0 ) produit le rseau rduit (Rr , m0r ) dfini par :
1. Places et transitions du rseau rduit :
Pr = P \ {p}, Tr = T \ {h} ;

58

q Pr , m0r (q) = m0 (q).


2. Pr et Post conditions inchanges : t Tr ,
q Pr , P ostr (q, t) = P ost(q, t)
q Pr \ h, P r
er (q, t) = P r
e(q, t)
3. Nouvelles pr-conditions : f F, q h,
P r
er (q, f ) = P r
e(q, h)
Lextension de cette rduction aux rseaux colors se fait en ajoutant aux conditions portant
sur la structure des conditions portant sur les domaines et les fonctions de couleur (conditions
1.c, 1.d et seconde partie de la condition 3). Nous justierons par quelques exemples la ncessit
de ces nouvelles conditions.
Dfinition 0.45 (Transitions pr-agglomerables) Soit (CN, m0 ) un rseau color. Un ensemble de transitions F est pr-agglomerable avec une transition h nappartenant pas F si et
seulement si les conditions suivantes sont vrifies :
1. Il existe une place p modlisant un tat intermdiaire entre le franchissement de h et dune
transition de F :
(a) m0 (p) = 0 ;
(b) p = {h} et p = F ;
(c) C(p) = C(h) et P ost(p, h) est une fonction de couleur orthonormale ;
(d) f F, P r
e(p, f ) est une fonction de couleur unitaire et quasi-surjective.
2. h na que p comme post-condition : h = {p} ;
3. h nest en conflit avec aucune autre transition : q h, q = {h} et P r
e(q, h) est une
fonction de couleur quasi-injective ;
4. h a au moins une pr-condition : h 6= .
Les deux petits exemples suivants illustrent lobligation dajouter aux conditions de structures
des conditions sur les fonctions de couleur. Sur le premier (gure 30), la fonction P ost(p, h) =
All X nest pas orthonormale. Comme on le voit, le rseau dpli (modle de droite de la gure
30) na pas une structure correcte pour la pr-agglomration.
Sur le deuxime exemple (gure 31), on voit quune fonction non quasi-injective gnre un
conit entre des instances de h dans le rseau dpli. De nouveau, le schma du rseau dpli
(modle de droite de la gure 31) ne dnit pas une structure correcte de pr-agglomration (par
exemple, h(1) est en conit avec h(2) sur la place r).

59
q: C

q(1)

q(2)

q(3)

<X>
h(1)

h: C

h(2)

h(3)

<All-X>
p(1)

p: C

p(2)

p(3)

<X>
f(1)

f: C

f(2)

f(3)

Figure 30. La fonction Post(p,h) doit tre orthonormale

r:

q: C

q(1)

q(2)

q(3)

<X>
h: C

h(1)

h(2)

h(3)

<X>
p: C

p(1)

p(2)

p(3)

<X>
f: C

f(1)

f(2)

f(3)

Figure 31. Les fonction Pr(q,h) doivent tre quasi-injectives

Sur lexemple de la gure 32, les conditions dapplication de la rduction sont vries dans
le rseau color (modle de gauche). On constate alors quil est possible doprer une srie de
pr-agglomration ordinaire dans le rseau dpli (modle de droite) : agglomration de h(1)
avec f (1), puis agglomration de h(2) avec f (2) et enn agglomration de h(3) avec f (3). On
obtient alors le rseau ordinaire (modle de gauche) de la gure 33 qui aprs recoloration donne
le modle de droite de la mme gure.
Il est bien entendu possible deectuer directement la transformation au niveau du rseau
color : agglomration de h avec chaque transition de F . La seule dirence entre la dnition
de la transformation colore et la version ordinaire tient dans le fait quil faut composer des
fonctions an de dnir les nouvelles pr-conditions des transitions de F (point 3 de la dnition
suivante). En eet, un jeton consomm par le franchissement dune transition f dans une place
q dans le rseau rduit est un jeton qui tait consomm initialement dans la place p aprs avoir
t consomm par h dans q et modi par la fonction P ost(q, h).

60

r: CxC

r(1,1) r(1,2) r(1,3)

q: C

r(2,1) r(2,2) r(2,3)

q(1)

q(2)

r(3,1) r(3,2) r(3,3)

q(3)

<X, All> <X>


h: C

h(1)

h(2)

h(3)

<X>
p: C

p(1)

p(2)

p(3)

<X>
f: C

f(1)

f(2)

f(3)

Figure 32. Les conditions de la Pr-agglomration sont respectes


r(1,1) r(1,2) r(1,3)

q(1)

r(2,1) r(2,2) r(2,3)

q(2)

r(3,1) r(3,2) r(3,3)

q(3)

r: CxC

q: C

<X, All> <X>


f(1)

f(2)

f(3)

f: C

Figure 33. Rseau agglomr

Dfinition 0.46 (Rseau pr-agglomr) Une pr-agglomration sur le rseau (CN, m0 ) produit le rseau rduit (CNr , m0r ) dfini par :
1. Places et transitions du rseau rduit :
Pr = P \ {p}, Tr = T \ {h} ;
t Tr , q Pr , C r (t) = C(t), C r (q) = C(q) et m0r (q) = m0 (q).
2. Pr et Post conditions inchanges : t Tr ,
q Pr , P ostr (q, t) = P ost(q, t)
q 6 h, P r
er (q, t) = P r
e(p, t)
3. Nouvelles pr-conditions : f F, q h,
P r
er (q, f ) = P r
e(q, h) (P ost(p, h))1 P r
e(p, f )
La gure 34 propose un exemple plus complexe dapplication de cette rduction.

Post-agglomration de transitions
Les conditions dapplication de la post-agglomration assurent que toute transition f de F est
immdiatement franchissable aprs le franchissement dune transition h de H. De nouveau, les
dirences entre la version ordinaire et colore ne portent que sur les valuations des arcs autour
de p et sur les domaines de couleur (points 1.c et 1.d) .

61
q : C1 x C2 x C3

q : C1 x C2 x C3

< X1, X2, All3 >


h

< X1, All2, All3 >

< All1-X1, X2, All3 >

< X1, X2 >


p : C1 x C2
< X1, All2 >

< All1-X1, X2 >


f1

f2

f1

f2

Figure 34. Un exemple de pr-agglomration

De nouveau, avant de donner les conditions dapplications de la rduction colore, nous rappelons les conditions dapplications de la version ordinaire. Ces conditions assurent lquivalence
pour les proprits de base entre le rseau rduit et loriginal [?].
Dfinition 0.47 (Transitions ordinaires post-agglomerables) Soit (R, m0 ) un rseau de
Petri. Un ensemble de transitions F est post-agglomerable avec un ensemble de transitions H
disjoint de F (H F = ) si et seulement si les conditions suivantes sont vrifies :
1. Il existe une place p modlisant un tat intermdiaire entre le franchissement dune transition de H et dune transition de F :
(a) m0 (p) = 0 ;
(b) p = H et p = F ;
(c) h H, P ost(p, h) = 1 ;
(d) f F et P re(p, f ) = 1

10 .

2. Les transitions de F nont pas dautre pr-condition que p : F = {p} ;


3. Il existe une transition f de F ayant une post-condition : F 6= .
Comme pour la pr-agglomration, la premire hypothse garantit un squencement entre le
franchissement des transitions de H et de celles de F . La seconde hypothse (point clef de la
post-agglomration) assure que toute transition f de F est franchissable ds que p est marque
(on peut donc avancer le franchissement des transitions f ). La dernire assure lquivalence
pour le caractre born entre le rseau rduit et le rseau original.
10

La version originale de Berthelot autorise des valuations htrognes. Cependant, ce cas ne se rencontre pas
en pratique et complique inutilement lextension de cette rduction aux rseaux colors.

62

Dfinition 0.48 (Rseau post-agglomr) Une post-agglomration sur le rseau (R, m0 ) produit le rseau rduit (Rr , m0r ) dfini par :
1. Places et transitions du rseau rduit :
Pr = P \ {p} et Tr = T (H F ) \ (H F ) ;
on note hf la transition (h, f ) de H F ;
2. Partie du rseau inchange : t Tr \ (H F ), q Pr ,
P r
er (q, t) = P r
e(q, t) et P ostr (q, t) = P ost(q, t) ;
m0r (q) = m0 (q)
3. Les nouvelles transitions : hf (H F ), q Pr ,
P r
er (q, hf ) = P r
e(q, h) ;
P ostr (q, hf ) = P ost(q, h) + P ost(q, f ).
Dfinition 0.49 (Transitions post-agglomerables) Soit (CN, M0 ) un rseau color. Un ensemble de transitions F est post-agglomerable avec un ensemble de transitions H disjoint de F
(H F = ) si et seulement si les conditions suivantes sont vrifies :
1. Il existe une place p modlisant un tat intermdiaire entre le franchissement dune transition de H et dune transition de F :
(a) m0 (p) = 0 ;
(b) p = H et p = F ;
(c) h H, C(h) = C(p) Ch et P ost(p, h) est la composition dune fonction de couleur
orthonormale sur C(h) et dune projection de C(h) dans C(p) ;
(d) f F, C(p) = C(f ) et P r
e(p, f ) est une fonction de couleur orthonormale.
2. Les transitions de F nont pas dautre pr-condition que p : F = {p} ;
3. Il existe une transition f de F ayant une post-condition

11

: F 6= .

Dans le rseau agglomr, les transitions de H et de F sont fusionnes. Les valuations prennent
en compte ces modications.
Dfinition 0.50 (Rseau post-agglomr) Une post-agglomration sur le rseau (CN, M0 )
produit le rseau rduit (CNr , m0r ) dfini par :
1. Places et transitions du rseau rduit :
Pr = P \ {p} et Tr = T (H F ) \ (H F ) ;
on note hf la transition (h, f ) de H F ;
11

Cette condition peut se raffiner en : c C(p), f F , q P , tq P ost(q, f )(c) 6= 0

63

2. Partie du rseau inchange : t Tr \ (H F ), q Pr ,


C r (t) = C(t) et C r (q) = C(q) ;
P r
er (q, t) = P r
e(q, t) et P ostr (q, t) = P ost(q, t) ;
m0r (q) = m0 (q)
3. Les nouvelles transitions : hf (H F ), q Pr ,
C r (hf ) = C(h) ;
P r
er (q, hf ) = P r
e(q, h) ;
P ostr (q, hf ) = P ost(q, h) + P ost(q, f ) P r
e1 (p, f ) P ost(p, h).
Dans le cas o lensemble F est rduit un singleton (F = {f }) il est possible de relcher
les contraintes portant sur les fonctions de couleur valuant les arcs reliant H et la place intermdiaire p (une fonction de couleur unitaire sut). De plus, le domaine de couleur de h peut tre
quelconque. La condition 1.c se rcrit alors en :
h H, P ost(p, h) est une fonction de couleur unitaire;
La dnition du rseau rduit est la mme que dans le cas prcdant. Lexemple suivant (gure
35) illustre cette rduction.
h1

h2
p

<All1, X2>

<All1-X1, X2>

h2

<All1, All_2>

<X1,X2>
<X1, All2>

h1

<All1-X1, All2>

f
q

(a)

(b)

Figure 35. Un exemple de post-agglomration

10.3. Suppression de place implicite


La suppression dune place implicite consiste supprimer du rseau une place qui nest jamais
elle seule un obstacle au franchissement de transitions. Dune certaine faon cette place ne sert
rien. Cette place est caractrise par des conditions portant sur le marquage initial (initialement
elle ne sert pas) et des conditions sur lexistence dun invariant particulier (qui assure que la
condition initiale est toujours vrie). Lintrt de cette rduction est de supprimer une place

64

et donc de simplier les pr ou les post conditions du rseau et de permettre ainsi lapplication
dautres rductions (par exemple des agglomrations).
Dfinition 0.51 (Place implicite) Soit (CN, m0 ) un rseau color. Une place p est dite implicite si il existe P P , avec p
/ P tq :
P

1. Il existe un flot sur le domaine C(p) F F p .p qP F q .q avec


F p une application linaire quasi-bijective sur Bag(C(p)) et
F q des applications linaires de Bag(C(q)) vers Bag(C(p)).
2. t T , ct C(t),
F p (m0 (p))

F q (m0 (q)) F p (P r
e(p, t)(ct ))

qP

F q (P r
e(q, t)(ct ))

qP

La seconde condition assure quinitialement une place implicite ne peut empcher le franchissement dune transition. La premire condition garantit que cette hypothse est reproductible
pour tout marquage accessible.

10.4. Exemples dapplication


Reprenons lexemple de la base de donnes rpartie prsent chapitre 7. Sur ce modle, on
Start Modif : C1

Start Update : C1

C1 = {1..n1}
C2 = {1..n2}

C1.All

C1.All

<X1>
<X2> t1

<X1>
Mess : C1xC2
< All1 - X1, X2 >

< X1, X2 >

t3

C2.All

Files : C2 < X1, X2 >

< X1, X2 >


<X1>

<X1>

Wait Acks : C1xC2

Update : C1xC2

< X1, X2 >

<X2>
t2

< X1, X2 >


Ack : C1xC2

< All1 - X1, X2 >

< X1, X2 >

t4

Figure 36. Un modle de base de donnes rpartie

vrie aisment que la transition t4 est post-agglomrable avec la transition t3. Le schma

65

structurel est vri : la place Update est en eet initialement non marque, sa seule entre
est t3 et sa seule sortie est t4 ; la seule pr-condition de t4 est la place Update. De plus, les
contraintes fonctionnelles sont elles aussi vries : le domaine de couleur de Update est le
mme que celui de t3 et de t4 et la fonction <X1,X2> est bien une fonction orthonormale. Aprs
application de cette rduction on obtient le rseau de la gure 37 o lon voit que la place
Update a disparu et que les transitions t3 et t4 ont t fusionnes. Sur ce nouveau modle, il
Start Modif : C1

Start Update : C1

All 1

All 1

<X1>

<X1>
Mess : C1xC2

<X2> t1

< All1 - X1, X2 >

< X1, X2 >

All 2

Files : C2 < X1, X2 >


<X1>

<X1>

Wait Acks : C1xC2

< X1, X2 >

<X2>

Ack : C1xC2

t2

< All1 - X1, X2 >

< X1, X2 >

t3.t4

Figure 37. Aprs agglomration de t3 et de t4

est clair que la place Start Update est une place implicite ; en eet elle sera toujours marque
par All1 et ne sera donc jamais un obstacle au franchissement de la transition t3.t4. Cette
place peut donc tre supprime sans modier les proprits fondamentales du rseau initial, et
le nouveau modle est dcrit gure 38. On voit ici tout lintrt de la suppression dune place
Start Modif : C1
All 1

<X1>
<X2> t1

Mess : C1xC2
< All1 - X1, X2 >

< X1, X2 >

All 2

<X1>

Files : C2 < X1, X2 >


Wait Acks : C1xC2

< X1, X2 >

<X2>
t2

Ack : C1xC2
< All1 - X1, X2 >

< X1, X2 >

t3.t4

Figure 38. Aprs suppression de la place implicite Start Update

implicite. Si cette rduction ne rduit pas la taille du graphe des marquages accessibles, elle
permet lapplication de nouvelles rductions. Sur le modle prcdent, aprs suppression de la
place implicite Start Update, une post-agglomration peut tre eectue entre t1 et t3.t4 ce

66

qui ntait pas le cas avant la


gauche de la gure 39. Sur ce
la place Wait Acks) comme le
hAll1 X1 , X2 i.W aitAcks = 0.

suppression de Start Update. On obtient alors le modle de


nouveau modle, la place Ack est une place implicite (et non
prouve le ot de domaine C1 C2 suivant : hX1 , X2 i.Ack
Aprs suppression de cette place implicite, on obtient le modle
Start Modif : C1

Start Modif : C1

All 1

<X1>

<X1>
t1.t3.t4 < All1 - X1, X2 >

<X2>

t1.t3.t4

<X2>
All 2

All 2

Files : C2 < X1, X2 >

< X1, X2 >


t2

Ack : C1xC2
< All1 - X1, X2 >

<X1>
<X2>
All 2

Files : C2 < X1, X2 >

Files : C2

Wait Acks : C1xC2

Wait Acks : C1xC2

<X2>

Start Modif : C1

All 1

All 1

< X1, X2 >

<X2>
t2

<X2>
t1.t3.t4.t2

Figure 39. Aprs dautres rductions

du milieu de la gure 39. Sur ce nouveau modle, une post-agglomration peut tre ralise entre
la transition t1.t3.t4 et la transition t2, ce qui donne le modle de droite de cette mme gure.
Sur ce dernier modle, les places restantes sont des places implicites et peuvent tre supprimes ;
le modle initial est donc quivalent pour les proprits fondamentales (vivacit, caractre born,
tat daccueil, ...) au rseau rduit la transition t1.t3.t4.t2 qui vrie bien videmment toutes
ces proprits.
Il est vident par contre que certaines proprits ont t perdues lors de ces phases de rduction. Si lon veut vrier des proprits plus nes que la vivacit (par exemple des formules de
logique temporelle [?]) il est ncessaire de conserver certaines places et transitions. Si lon veut
par exemple vrier la proprit qui exprime que le site 1 ne peut simultanment travailler sur
le mme chier que le site 2, on ne peut raliser la dernire agglomration et il faut sarrter au
modle du centre de la gure 39.
Si lon prend le modle des philosophes propos dans le chapitre 7 pour illustrer les rseaux
ordonns, plusieurs post-agglomrations sont applicables autours des places Mange, Finir1 et
Finir2 ; on obtient alors le rseau de la gure 40. Ce rseau met en avant le problme dinterblocage possible. Ce modle ne peut plus tre rduit. En eet, le problme dinterblocage est li
ici au contrle du verrou xD {Att2(x), Baguettes(x)}. Dans cette version des philosophes, ce
contrle est ralis par linvariant introduit par la place Chaises qui garantit que le nombre de
philosophes en attente (place Att2) est au plus gal au nombre de marques initiales dans la place
Chaises. La prsence ou non dun interblocage dpend donc du marquage initial de cette place,
et ce genre de condition est dicilement caractrisable par des conditions structurelles.

67

PrendreChaise

Pense : D
D.All

<X>

Att1 : D

D = {1..N}

<X>
<X>

Chaises : {.}

<X>
N-1

<X>
PrendreG
<X>
Att2 : D

<X++>
<X>
PrendreD

Baguettes : D
D.All

< X >+<X++>

Figure 40. Le modle des philosophes rduit

Вам также может понравиться