Vous êtes sur la page 1sur 20

METHODES D'ANALYSE

DANS LES RESEAUX COLORES

S. HADDAD
UNIVERSITE PARIS VI et C.N.R.S. MASI
4 Place Jussieu, 75252 Paris Cedex 05

Rsum
Ce papier prsente les principales mthodes de validation dans
les rseaux colors, une extension des rseaux de Petri
ordinaires. Ces trois mthodes sont : le calcul des flots qui
permet de d'obtenir des invariants, les rductions qui
transforment un rseau en un plus petit rseau quivalent et la
construction d'un graphe d'accessibilit symbolique sur lequel
est bti est un algorithme d'valuation quantitative. A travers
l'analyse d'une modlisation simple, l'accent est mis sur
l'interprtation des rsultats.

1. Introduction
Lorsqu'un modlisateur spcifie un algorithme parallle (par exemple pour grer
un protocole ou un systme rparti) , il est confront au choix de son modle. Soit il
choisit le langage de programmation dans lequel l'algorithme sera finalement
implment, soit il choisit un modle formel tel que C.C.S. ou les rseaux de Petri.
Dans le premier cas il minimise le cot de la ralisation au prix d'une absence de
preuve de la correction de son algorithme. Dans le deuxime cas , il prouve son
algorithme cette fois-ci au prix d'une abstraction qui rend difficile la traduction du
modle en programme.
Aussi un certain nombre de modles intermdiaires ont t introduits pour
bnficier des avantages des deux mthodes. Une premire possibilit est de
resteindre un langage de programmation aux mcanismes critiques lis au
paralllisme et d'tablir pour ce langage rduit des systmes de preuves (par
exemple T.C.S.P. issu de C.S.P.). Une autre possibilit est d'tendre le modle formel
en mme temps que les techniques de validation associes.
Nous nous intresserons ici cette deuxime possibilit et plus particulirement
l'examen du modle des rseaux colors issu de celui des rseaux de Petri
ordinaires. A la diffrence des autres modles formels o la principale mthode de
preuve (sinon la seule) est un systme logique ou un systme de rcriture, les
rseaux de Petri disposent de nombreux outils thoriques qui se compltent
mutuellement [Bra83]. Parmi ceux-ci les plus importants sont :
- le calcul de flots qui permet d'obtenir une famille gnratrice d'invariants
d'un certain type (appels invariants linaires) ,
- les rductions de rseau qui transforment un rseau en un rseau plus petit
au comportement quivalent,
- l'examen du graphe d'accessibilit dans le cas d'un rseau born ou du
graphe de couverture dans le cas non born.
La troisime mthode qui transforme le rseau de Petri en un automate fini ne
prsente pas d'intrt par elle-mme car d'une part cet automate est d'autant plus
grand que la combinatoire du rseau est importante et d'autre part l'tude de cet
automate est compltement indpendante du rseau de Petri qui l'a gnr.
Cependant il existe deux cas o cette construction est intressante :
- lorsqu'au cours de la validation aprs avoir rduit le rseau - parfois avec
l'aide des invariants obtenus par le calcul des flots - on examine le graphe
d'accessibilit du rseau rduit.
- pour les besoins d'une valuation quantitative, lorsqu'on a associ aux tirs
des transitions des dlais poissoniens , on calcule la solution de la chaine
markovienne (ou semi-markovienne) dduite du graphe d'tat.

Du point de vue de la modlisation, les rseaux de Petri, s'ils modlisent aisment


les synchronisations, le partage de ressources et d'autres mcanismes similaires
prsentent deux limitations importantes. Il est impossible de transporter une
information structure car les places ne contiennent que des jetons uniformes et il
faut dfinir de manire explicite le comportement d'objets diffrents mais qui se
comportent de manire identique.
Pour pallier ces limitations diffrentes extensions ont t proposes, dont les
deux plus importantes sont les rseaux prdicats et les rseaux colors (ces deux
modles tant par ailleurs trs proches l'un de l'autre) [Gen81] , [Jen81b]. Dans le cas
des rseaux colors les ides de base sont les suivantes :
- on attache chaque place et chaque transition un domaine de couleurs.
Chaque jeton contenu dans une place est color par l'une des couleurs du domaine
de la place. Chaque couleur d'une transition reprsente une manire diffrente de
franchir la transition. Si l'on fait le rapprochement (approximatif) avec un langage
de programmation dans lequel les places symbolisent des variables et les transitions
des procdures, le domaine d'une place est le type de la variable et le domaine de la
transition est le type de l'unique paramtre de la procdure.
- La valuation d'un arc n'est plus un entier (compteur de jetons retranchs ou
ajouts) mais une fonction dont l'ensemble de dpart est le domaine de la transition
adjacente et l'ensemble d'arrive est le multi-ensemble associ au domaine de la
place adjacente.
- Lors du franchissement d'une transition, on instancie la transition par l'une
des couleurs de son domaine, puis on value les fonctions qui valuent les arcs
entres de la transition, cette valuation fournit le nombre de jetons de chaque
couleur retrancher chaque place. Si le marquage courant dispose d'assez de
jetons on les retire puis on ritre l'opration pour les arcs sorties de la transition.
L'intrt de ce nouveau modle est triple :
- Il ne souffre pas des limitations des rseaux de Petri.
- Il est quivalent un rseau de Petri o les places et les transitions sont
dupliques en fonction des domaines et les arcs sont obtenus par valuation des
fonctions de couleur. Ce point est fondamental car il laisse esprer l'extension des
rsultats thoriques obtenus pour les rseaux de Petri.
- Moyennant une reprsentation implicite des domaines et des fonctions, il
autorise une modlisation paramtre (par exemple : un rseau color modlise une
gestion de n tches o n est laiss variable).
Aussi ce modle a connu un rapide essor que ce soit par les nombreuses
modlisations ralises que par les rsultats thoriques obtenus. La suite de l'article
est organise comme suit. Au premier paragraphe nous prsentons les rseaux
colors et une modlisation simple. Puis nous prsentons de manire informelle les
diffrents rsultats thoriques obtenus savoir le calcul des flots, les rductions , la
construction d'un graphe symbolique et l'valuation quantitative associe. Nous
concluons par une discussion sur les perspectives qu'offre le modle.

2. Les rseaux colors


2.1 Dfinitions
Nous prsentons d'abord la dfinition des rseaux colors et la rgle de
franchissement qui spcifie la smantique de ce modle. Pour simplifier la
prsentation nous introduisons la notion de multi-ensemble sur un ensemble.
Dfinition 1 : Soit E un ensemble fini, Bag(E) est l'ensemble des fonctions de E dans
N l'ensemble des entiers. Un lment f de Bag(E) est not f(e).e
Soit E = {a,b,c} , f = 2.a + 0.b + 1.c aussi not 2.a + c est un lment de Bag(E)
Dfinition 2 :
- Bag(E) est muni de la somme f + g dfinie par f+g = [f(e)+g(e)].e
- Bag(E) est muni d'un ordre partiel f g e E, f(e)g(e)
- Bag(E) est muni de la diffrence f - g dfinie pour fg par f-g = [f(e)-g(e)].e
- Bag(E) est muni du produit par un entier a.f dfini par a.f = [a.f(e)].e
Les fonctions de couleur sont des fonctions d'un ensemble E dans un multiensemble Bag(F).
Dfinition 3 : f une fonction de Bag(E) dans Bag(F) est une application linaire si :
a N, v,v' Bag(E), f(a.v+v') = a.f(v) +f(v')
Proprit : Soit f une fonction de E dans Bag(F) , alors f se prolonge de manire
unique en une application linaire de Bag(E) dans Bag(F) par f( v(e).e ) =
v(e).f(e)
Dans la suite on confondra f et son prolongement.
Toutes les notions introduites pour Bag(E) sont galement valables pour le Zmodule ZE . Lorsque nous tudierons le calcul des flots, nous considrerons les
fonctions de couleur comme des applications linaires de ZE dans ZF.
Dfinition 1 : Un rseau color est dfini par un tuple R = (P, T, C, W+, W-, M0, ), o
P est un ensemble fini de places,
T est un ensemble fini de transitions, tel que P T = , P T ,
C : P T C, C P = , C T = est une fonction de P T sur un ensemble
d'ensembles finis de couleurs.
W-, W+ sont les matrices P T d'incidence arrire et avant o W- (p,t), W+(p,t)
sont des fonctions [C(t)Bag( C(p) )],
M0 est le marquage initial est un P_vecteur tel que M0(p) Bag(C(p))
Dfinition 2 : Une transition t est franchissable pour une couleur c C(t), depuis un
marquage M si et seulement si :
p P, W-(p, t)(c) M(p)
Dans ce cas le franchissement de t conduit au marquage M' dfini par :
p P, M'(p) = M(p) - W-(p, t)( c) + W+(p, t)(c)

Ici les oprateurs sont ceux de Bag(C(p)).


Il est essentiel de constater qu' un rseau color on peut associer un rseau de
Petri ordinaire qui aura un comportement identique. Les proprits du rseau color
( born,vivant,) sont donc celles du rseau ordinaire associ.
Dfinition 3 : Le rseau de Petri R' dpli associ un rseau color R est dfini par
R' = (P',T', W'+, W'-, M'0, ) o :
P = (p,c) o p P et c C(p),
T = (t,c) o t T et c C(t),
W'- ((p,c'),( t,c)) = W-(p, t)(c)(c') ,
W'+ ((p,c'),( t,c)) = W+(p, t)(c)(c'),
M0 (p,c) = M0 (p)(c)
Premier but d'une thorie des rseaux colors : Fournir des algorithmes de
vrification de proprits qui n'utilisent pas le rseau de Petri dpli et encore moins
le graphe d'accessibilit associ.
2.1 Exemple d'une gestion de bases de donnes copies multiples

Soit un ensemble de sites qui possdent localement la copie d'une base de


donnes partage. Dans le but de modifier la base de donnes, un site doit prendre
un permis modlis par un unique jeton dans Mutex. Puis le site envoie des
messages de mise jour tous les autres sites et il libre le jeton une fois qu'il a reu
tous les accuss de reception des sites qui ont effectu leur mise jour. L'identit du
propritaire du permis est conserv dans les messages et les accuss de reception.
D est la classe des sites. Initialement il y a un unique jeton dans Mutex et un
jeton de chacun des sites dans Idle.
Transitions
T1 : un site modifie la base de donnes et envoie des messages aux autres sites.
T2 : un site libre la base de donnes
T3 : un site reoit un message
T4 : un site envoie son accus de reception
Places
Idle : sites au repos
Wait : sites en attente d'accuss de reception
Update : sites mettant jour leur base de donnes
Mess : messages non encore parvenus
Ack : accuss de reception non encore parvenus
Mutex : contient le jeton d'accs la base de donnes

Idle
X1

X2

<X1,S1-X1>
T1

<X1,X2>
Mess

T3
<X1,X2>

X1
Wait

Mutex

Update
<X1,X2>

X1

T2
X1

T4

Ack
<X1,S1-X1>

<X1,X2>

X2

Dtaillons maintenant les domaines et les fonctions de couleur. Les domaines sont
construits partir de 2 ensembles de base : D = {d1,,dn} l'ensemble des sites et {e}
la couleur neutre qui dfinit des jetons ordinaires.
Transitions
C(T1) = C(T2) = D (le site initiateur de la modification)
C(T3) = C(T4) = D D (le produit site emetteur,recepteur)
Places
C(Idle) = C(Wait) = D (les sites)
C(Mutex) = {e} (l'accs)
C(Mess) = C(Update) = C(Ack) = D D (les produits emetteur,rcepteur)
Les fonctions de couleur peuvent tre divises selon le domaine de la transition
associe :
1) C(t) = D
1(c) = e (cette fonction de couleur est implicite sur les arcs relis Mutex)
X1(c) = c
<X1,S1-X1> (c) =  <c,c'> pour c' c
2) C(t) = D D
X1(<c1,c2>) = c1
X2(<c1,c2>) = c2
<X1,X2>(<c1,c2>) = <c1,c2>

Interprtation
Pour tout franchissement de t la fonction 1 fournit un jeton ordinaire. Pour un
franchissement de t instanci par c la fonction X1 fournit un jeton c. Pour un
franchissement de t instanci par c la fonction <X1,S1-X1> fournit les jetons <c,c'>
pour c' c, etc. D'autre part la dfinition de la fonction X1 varie selon son domaine,
il n'y a cependant pas confusion puisque son domaine est dfini sans ambigut
comme tant le domaine de couleur de la transition adjacente.
Remarques
Cet exemple bien que rduit prsente des caractristiques qu'on retrouve dans la
plupart des modlisations :
- Les domaines de couleur sont obtenus par produit cartsien partir d'un ou
plusieurs ensembles de base qui reprsentent les classes d'objets du systme.
- Les fonctions de couleur sont obtenues partir de fonctions de bases par des
oprations classiques de fonctions telles que le produit externe par un scalaire
( (a.f)(x) = a.f(x) ), la somme ( (f+g)(x) =f(x)+g(x) ) et le produit noetherien
( <f,g>(x) = <f(x),g(x)> ). Les fonctions d'un rseau peuvent ainsi tre vues comme
lments d'une algbre finiment gnre de fonctions.
- Dans la mesure o les classes d'objets ne sont pas dcrites de manire explicite,
les rseaux colors dfinissent une famille de modles. Notre exemple dfinit une
famille de rseaux colors qui dpend du nombre de sites. Autrement dit nous
avons affaire des rseaux colors paramtrs.
Deuxime but d'une thorie des rseaux colors : Fournir des algorithmes de
vrification de proprits indpendants des paramtres du rseaux ou intgrant les
paramtres dans le rsultat.
3. Calcul de flots
Dans tout systme dynamique, on est intress par la vrification et surtout la
recherche d'invariants. Si le premier objectif est en gnral assez facile raliser par
les systmes logiques, le deuxime prsente de nombreuses difficults dont les plus
importantes sont :
- dterminer la forme des invariants qu'on recherche, forme qui doit tre la fois
condense et significative.
- tablir un algorithme qui exhibe une famille significative de ce type d'invariants.
Autrement dit tous les invariants de ce type se dduisent de cette famille.
Il se trouve que dans les rseaux de Petri une telle forme existe savoir des
pondrations (vecteurs) de places telles que le marquage pondr soit constant. Ces
invariants sont appels flots. Les familles qu'on recherche sont des familles
gnratrices (au sens de l'algbre linaire) c'est dire que tout invariant de ce type
s'obtient par combinaison linaire des invariants de cette famille. Pour calculer cette
famille on construit d'abord la matrice d'incidence W = W+ - W- , puis on applique
une variante de l'algorithme de Gauss qui consiste calculer une base du noyau de
cette matrice. Cette base est la famille recherche.

En remarquant que les pondrations sont des entiers , car on compte des
marques neutres, on peut tendre le concept de flot au rseau color en substituant
aux pondrations entires des pondrations fonctionnelles qui conservent
l'information de couleur des marques.
Dfinition 1 : Soit V un vecteur de places dfini par Cv un ensemble et (Vp) une
famille de fonctions Vp : ZC(p) ZCv , V est un flot si et seulement si pour tout
marquage accessible M ,  Vp (M) est constant.
Exemple : Soit dans notre rseau V = X1 . Idle + X1 . Wait + X2 . Update o Cv = D,
V est un flot. Ce flot s'interprte facilement comme dcrivant l'tat d'un site soit au
repos, soit en attente , soit en modification (et dans ce cas apparaissant en deuxime
composant d'un jeton dans Update).
Etendre le calcul au rseau color tait une tache beaucoup plus ardue, car la
matrice d'incidence d'un rseau color a pour lments des applications linaires et
non plus des entiers de telle sorte que l'algorithme de Gauss tait inapplicable. Aussi
de nombreux chercheurs ont propos des algorithmes pour diffrentes catgories de
rseaux colors [Gen82] , [Had86] , [Had87] , [Jen81a] , [Lau84] , [Sil85] and [Vau84].
Ces catgories tant dfinies le plus souvent par le choix des fonctions de bases.
Selon la catgorie , l'algorithme intgre ou pas les paramtres du rseau color.
Bien que les algorithmes proposs soient trs diffrents dans leur forme, l'ide
gnrale reste la mme. L'algorithme de Gauss peut tre vu comme un ensemble de
rgles de transformation de la matrice d'incidence , transformations portant sur les
lignes, les colonnes et les indices de ces lignes et de ces colonnes, l'algorithme de
Gauss conduit ces rgles jusqu'a l'limination de toutes les colonnes ou de toutes les
lignes. La famille gnratrice de flots est alors forme des indices des lignes
restantes. Les algorithmes proposs fournissent eux aussi des rgles de
transformation et la conduite de ces rgles; la famille gnratrice de flots est ici aussi
l'ensemble des indices des lignes restantes.
Trs rcemment J-M Couvreur a dcouvert un algorithme qui s'applique tous
les rseaux colors (algorithme non paramtr) et a montr comment reformuler les
autres algorithmes au moyen de l'algorithme gnral. Nous nous contenterons ici de
prsenter le calcul des flots sur notre exemple. Insistons sur le fait que pour cet
exemple les flots sont paramtrs.
W:
Wait
Idle
Mess
Mutex
Update
Ack

[
[
[
[
[
[

T1
X1
-X1
<X1,S1-X1>
-1
0
0

T2
-X1
X1
0
1
0
-<X1,S1-X1>

T3
0
-X2
-<X1,X2>
0
<X1,X2>
0

T4
0
X2
0
0
-<X1,X2>
<X1,X2>

]
]
]
]
]
]

Nous allons d'abord appliquer une premire rgle (trs similaire celle de
Gauss) qui consiste ajouter une ligne une autre ligne pralablement pondre par
une fonction :
W:
Wait
Wait+Idle
-<X1,S1-X1>.Wait+Mess
1.Wait+Mutex
Update
Ack

[
[
[
[
[
[

T1
X1
0
0
0
0
0

T2
-X1
0
<X1,S1-X1>
0
0
-<X1,S1-X1>

T3
0
-X2
-<X1,X2>
0
<X1,X2>
0

T4
0
X2
0
0
-<X1,X2>
<X1,X2>

]
]
]
]
]
]

Nous appliquons une deuxime rgle qui consiste liminer une ligne dont le
coefficient apparait seul sur une colonne et qui est injective (ici Wait , T1 , X1).
W:
Wait+Idle
-<X1,S1-X1>.Wait+Mess
1.Wait+Mutex
Update
Ack

[
[
[
[
[

T1
0
0
0
0
0

T2
0
<X1,S1-X1>
0
0
-<X1,S1-X1>

T3
-X2
-<X1,X2>
0
<X1,X2>
0

T4
X2
0
0
-<X1,X2>
<X1,X2>

Puis nous appliquons une troisime rgle identique celle de Gauss qui consiste
liminer une colonne nulle (ici T1).
W:
Wait+Idle
-<X1,S1-X1>.Wait+Mess
1.Wait+Mutex
Update
Ack

[
[
[
[
[

T2
0
<X1,S1-X1>
0
0
-<X1,S1-X1>

T3
-X2
-<X1,X2>
0
<X1,X2>
0

T4
X2
0
0
-<X1,X2>
<X1,X2>

]
]
]
]
]

Nous ritrons le procd pour liminer T2 en remarquant que l'algorithme doit


tre capable de savoir que <X1,S1-X1> est injective.
W:
Wait+Idle
-<X1,S1-X1>.Wait+Mess+Ack
1.Wait+Mutex
Update

[
[
[
[

T2
0
0
0
0

T3
-X2
-<X1,X2>
0
<X1,X2>

T4
X2
<X1,X2>
0
-<X1,X2>

]
]
]
]

T4
0
0
0

]
]
]

Idem pour T3 ce qui limine T4 en mme temps.


W:
Wait+Idle+X2.Update
-<X1,S1-X1>.Wait+Mess+Ack+Update
1.Wait+Mutex

T3
[ 0
[ 0
[ 0

]
]
]
]
]

La famille gnratrice des flots s'interprte alors comme suit :


(1) Wait+Idle+X2.Update : Etat d'un site
(2) 1.Wait+Mutex : Soit l'accs est disponible, soit un site est en attente
(3) -<X1,S1-X1>.Wait+Mess+Ack+Update : Pour un site c en attente , les jetons <c,c'> se

rpartissent dans les places Mess , Update et Ack


On peut aussi composer ces flots pour obtenir d'autres flots remarquables tels que :
(1)+S1.(2)-X2.(3) = Idle - S1.Wait - X2.(Mess + Ack) : il y a autant de jetons de
couleur c dans Idle que la somme des jetons dans Mutex et des jetons de deuxime
composant c dans Mess et dans Ack. Nous reviendrons sur ce flot au paragraphe
suivant.
Remarquons enfin que nous avons esquiv les points qui ont rendu difficile
l'obtention d'algorithmes :
- Comment composer les lignes pour faire apparaitre des zros ?
- Comment s'assurer que le coefficient apparaissant seul dans une colonne est
injectif ?
- Comment rpondre aux deux premires questions de manire paramtre ?
4. Rductions
Une rduction de rseau est donne par des conditions d'application et une
mthode de transformation telles que si le rseau initial vrifie les conditions
d'application alors le rseau transform a le mme comportement que le rseau
initial. La thorie des rductions dans les rseaux ordinaires a t dveloppe
principalement par G. Berthelot [Ber85], [Ber86] qui a dfini un ensemble de dix
rductions qui recouvrent les cas de rductions les plus frquents. L'introduction
d'une rduction n'est intressante que si d'une part son champ d'application est
large et d'autre part si les conditions de vrifications sont soit de nature structurelle
(examen du rseau de Petri) soit de nature algbrique (existence de flots
remarquables); en aucun cas ces conditions ne doivent reposer sur l'examen du
graphe d'accessibilit.
Un certain nombre de transformations pour les rseaux colors ou prdicats ont
t proposs dans [Col86] , [Gen88] et [Kro89]. Dans [Had88] nous avons tendu les
plus importantes rductions de G. Berthelot aux rseaux colors. Le schma cidessous rsume le processus que nous avons suivi pour spcifier et valider une
extension colore d'une rduction ordinaire.
Rseau color
Dpliage
Rduction
colore
Repliage
Rseau color
rduit

Rseau
ordinaire
Squence de
rductions
ordinaires
Rseau
ordinaire
rduit

a. Spcification d'une rduction colore


Comme pour la rduction ordinaire correspondante, la rduction colore est
dfinie par deux spcifications, les conditions d'application et la rgle de
transformation.
Lors de cette spcification, les conditions doivent tre dcomposes en deux
types:
- Conditions structurelles qui (si possible) doivent tre les mmes que celles de la
rduction ordinaire.
- Conditions fonctionnelles qui ne peuvent tre prdfinies mais sont celles
rellement ncessaire pur obtenir un "bon" dpliage.
La rgle de transformation doit vrifier ces deux principes :
- Elle ne doit pas "augmenter" le domaine de couleur des noeuds du rseau.
- Elle n'autorise que des oprations significatives sur les fonctions de couleur telles
que la composition et l'inverse par exemple.
b. Validation d'une rduction colore
Une fois la rduction dfinie, il reste prouver que le diagramme prcdent est
cartsien. C'est dire que chacune des trois tapes (dpliage, squence de rductions
ordinaires, repliage) est faite implicitement dans la spcification de la rduction
colore. Dtaillons ce point :
Dpliage
On doit dduire dans le rseau dpli les conditions d'application d'une ou
plusieurs rductions partir des conditions d'application de la rduction colore.
Squence de rductions
On doit vrifier que une fois applique une des rductions ordinaires, les
conditions d'applications des autres rductions sont encore vrifies.
Repliage
Une fois applique toutes les rductions, on doit dduire que le rseau obtenu est
bien le rseau dpli du rseau color rduit partir de la rgle de transformation.
Nous prsentons maintenant deux des rductions que nous avons tablies,
rductions simplifies mais suffisantes pour rduire compltement notre exemple et
illustrer la force de cette mthode de validation.
4.1 Simplification de place implicite
Cette rduction supprime une place qui n'empche jamais le franchissement
d'une transition et dont le marquage peut tre calcule partir du marquage des
autres places. Par contraste avec l'autre rduction que nous prsentons plus tard,
cette rduction repose sur une proprit algbrique (existence d'un flot particulier).
Ceci est un autre intrt du calcul des flots.

Dfinition 1: Soit R un rseau color, une place p est implicite si et seulement si :


(1) Il existe un flot V tel que
- Cv = C(p)
- Vp est la fonction identit de C(p)
- p'p, c C(p') , -Vp'(c) Bag(C(p))
(2) t T, c C(t),  Vp' ( W-(p',t)(c) )  Vp' ( M0(p') ) o les sommes portent

sur p' P

Interprtation Initialement une place implicite n'empchera pas le franchissement


d'une transition en raison de la condition (2) et de la forme du flot et cette condition
est reproduite pour tous les marquages atteints puisqu'on a justement affaire un
flot.
Comme dans les rseaux de Petri ordinaires cette transformation supprime la place
et les arcs adjacents.
Dfinition 2 Le rseau rduit Rr obtenu depuis le rseau R par simplification de la
place implicite p est definie par :
- Pr = P - {p}
- Tr = T
- t Tr , p' Pr , Cr(p') = C(p') et Cr(t) = C(t)
- t Tr , p' Pr , Wr-(p',t) = W-(p',t) et Wr+(p',t) = W+(p',t)
- p' Pr , Mor(p') = Mo(p')
Thorme Soit le rseau rduit Rr obtenu depuis le rseau R par simplification de
place implicite, alors :
R est born Rr est born
Rr est sain
R est couvert par un invariant Rr est couvert par un invariant

R est sain 

R est quasi-vivant Rr est quasi-vivant


R est vivant Rr est vivant

R est pseudo-vivant Rr est pseudo-vivant


R a une terminaison propre Rr a une terminaison propre
R a un tat d'accueil Rr a un tat d'accueil
R a un tat invitable Rr a un tat invitable

R vrifie les proprits d'abstraction Rr vrifie les proprits d'abstraction [And81]

4.2 Post-agglomration de transitions


Le principe de la post-agglomration est le suivant : tant donn une place qui
admet pour entre une ensemble H de transitions et pour sortie une unique
transition f, dans n'importe quelle squence de transitions o un franchissement de
d'une transition de H est plus tard suivi par le franchissement de f, on aurait pu
franchir immdiatement aprs la transition de H , la transition f.

Aussi on va supprimer la place p (tat intermdiaire) et la transition f et on va


modifier les transitions de H pour leur incorporer le franchissement de f. Afin que
cette rduction soit valide pour les rseaux colors, on impose des contraintes aux
fonctions valuant les arcs adjacents p dont la principale est que l'arc de p vers f soit
la fonction identit. Pour les autres conditions, nous avons besoin d'une proprit
sur les fonctions de couleur.
Dfinition 1 : Une application linaire de f de Bag(E) dans Bag(F) est saine si et
seulement si : c E , c' F , f(c)(c') 1
Dans une modlisation les fonctions sont presque toujours saines puisque
gnralement le franchissement d'une transition implique au plus un jeton de chaque
couleur pour n'importe quelle place.
Dfinition 2 Soit R un rseau color, p une place qui admet pour sortie la transition f
et pour entre l'ensemble H de transitions avec H {f} = , f est post agglomerable
avec H si et seulement si :
(1) h H , W+(p,h) est une fonction saine
C(f) = C(p) et W-(p,f) est la fonction identit
p n'est pas marque initialement
(2) N'importe quel franchissement de f fournit des jetons
(3) La seule place entre de f est p.
Dfinition 2 Le rseau rduit Rr obtenu partir du rseau R par une post
agglomration de H et f est dfini par :
Pr = P / {p}
Tr = T / {f}
t Tr , p' Pr , Cr(t) = C(t) et Cr (p') = C(p')
t Tr / H , p' Pr , Wr -(p',t) = W-(p',t) et Wr+(p',t) = W+(p',t)
h H, p' Pr , Wr -(p',h) = W-(p',h) et Wr+(p',h) = W+(p',h) + W+(p',f)
W+(p,h)
p' Pr , M0r (p') = M0(p')
Thorme Soit le rseau rduit Rr obtenu depuis le rseau R par post-agglomration,
alors :
R est born Rr est born

R est sain Rr est sain


R est couvert par un invariant Rr est couvert par un invariant

R est quasi-vivant Rr est quasi-vivant


R est vivant Rr est vivant

R est pseudo-vivant Rr est pseudo-vivant


R a une terminaison propre Rr a une terminaison propre
R a un tat d'accueil Rr a un tat d'accueil
R a un tat invitable Rr a un tat invitable

R vrifie les proprits d'abstraction Rr vrifie les proprits d'abstraction [And81]

4.3 Application l'exemple


La figure suivante montre le processus de rduction de notre exemple. Nous
aurions pu rduire le rseau initial une simple transition en employant d'autres
rductions que nous n'avons pas prsent ici. Cependant le rseau rduit est
suffisamment petit pour tudier son comportement. Le langage de ce rseau peut
s'exprimer par " Prfixes( T1(c).T2(c) )* " dont l'interprtation est immdiate : le
comportement de ce rseau est une suite de modifications de la base de donnes ,
ces modifications tant toutes squentielles.
Quelques explications sur les rductions :
- Le flot qui montre que Idle est implicite est celui que nous avons obtenu par
combinaison linaire de la famille gnratrice la section prcdente.
- Le flot qui montre que Wait est implicite est obtenu partir du flot :
-<X1,S1-X1>.Wait+Mess+Ack+Update
en le multipliant par -X1/ (n-1) o n est le nombre de sites et qui donne :
Wait + (1/(n-1)).X1 . (Mess + Ack + Udpate)
- Au cours de la post-agglomration autour de Mess, l'arc qui va de T1 Ack est
valu par <X1,S1-X1> qui est gal <X1,S1-X1> <X1,X2>

Idle

X1
<X1,S1-X1>

Mess

<X1,X2>

<X1,X2>

X1

Mutex

X2

Wait

Update

X1

<X1,X2>

X1 <X1,S1-X1>

<X1,X2>

Ack

X2

Simplification de place implicite Idle


Mess

<X1,S1-X1>

<X1,X2>
<X1,X2>

X1

Mutex

Wait

Update

X1
<X1,S1-X1>

<X1,X2>
<X1,X2>

Ack

Simplification de place implicite Wait


<X1,S1-X1>

Mess

<X1,X2>
<X1,X2>

Mutex

Update
<X1,X2>
<X1,S1-X1>

Ack

<X1,X2>

Post agglomeration autour de Update

<X1,S1-X1>

Mess

<X1,X2>

Mutex

<X1,S1-X1>

Mutex

<X1,X2>

Ack
<X1,S1-X1>

<X1,S1-X1>

Ack

Post agglomeration autour de Mess

4. Graphe symbolique et valuation


4.1 Prsentation de l'algorithme
La principale mthode d'valuation quantitative dans les rseaux de Petri est de
spcifier des dlais de franchissement poissoniens aux transitions (ou des
probabilits de franchissement dans le cas de transitions immdiates) puis de
construire le graphe d'accessibilit qui fournit alors une chaine de Markov et
finalement de rsoudre le systme associ cette chaine pour en dduire les
probabilits stationnaires de chaque tat [Ajm84]. On peut tendre de manire
simple cette mthode aux rseaux colors en construisant le graphe d'accessibilit du
rseau dpli et calculer de mme les probabilits. Mais une telle mthode est
inapplicable ds que les domaines sont de taille raisonnablement grande. Ainsi dans
le rseau des bases de donnes le graphe d'tat a une taille de n.3n-1 +1 o n est le
nombre de sites. Sachant qu'une rsolution exacte est de l'ordre de p3 o p est le
nombre d'tats, on comprend aisment le besoin de mthodes plus labores.
Le point de dpart de telles mthodes a t la constatation que de nombreuses
symtries existent dans les rseaux colors et que ces symtries se retrouvaient dans
les marquages accessibles. Une premire mthode [Hub84] a t propose par K.
Jensen qui consistait dfinir une relation d'quivalence entre marquages et d'viter
la construction dans le graphe de branches quivalentes. On obtient ainsi un sousgraphe du graphe d'accessibilit sur lequel on peut vrifier un certain nombre de
proprits qualitatives. Cependant une mthode d'valuation quantitative
automatique n'a jamais t obtenue. La mthode qui a permis d'obtenir cette
valuation [Dut89] part aussi d'une relation d'quivalence entre marquages. Mais
plutt que d'utiliser cette relation dans la construction d'un sous-graphe, on dfinit
une reprsentation des classes d'quivalence de marquages appele marquage
symbolique et une rgle de franchissement pour ces marquages symboliques. On
peut alors construire un graphe symbolique de la mme manire que pour le graphe
ordinaire.
Sur ce graphe, on peut dduire les mmes proprits de rseau qu'avec la
construction prcdente mais il prsente trois avantages significatifs :
- l'interprtation des tats est plus facile de par la reprsentation,
- le nombre d'arcs est rduit car on a affaire des arcs symboliques qui
regroupent un ensemble d'arcs quivalents,
- et surtout on peut obtenir les probabilits stationnaires partir de ce graphe
symbolique.
Nous allons maintement dcrire de manire informelle cette algorithme :

a) Marquage symbolique
Dans un rseau color o les domaines sont construits par produit de classes
d'objets, un marquage symbolique est d'abord la donne d'une partition de chaque
classe d'objets en sous-classes. Ces sous-classes contiennent des objets qui sont dans
le mme tat pour ce marquage. Aussi on oublie l'identit des objets et on ne
conserve plus que la taille des sous-classes. Le marquage de chaque place est alors
identique un marquage ordinaire o les sous-classes sont substitues aux objets
comme composants de couleur. Pour assurer l'unicit de la reprsentation , on
impose aux sous-classes d'avoir des marquages diffrents et on les ordonne en
fonction de leur marquage.
b) Franchissement symbolique
Pour dfinir la rgle de franchissement symbolique, on considre que les
fonctions de couleur agissent sur les sous-classes comme elles agissaient sur les
objets. L'instanciation d'une transition se fait par le choix des sous-classes
instancier. Cependant puisqu'une sous-classe peut contenir plus d'un objet, il est
ncessaire de la diviser en deux sous-classes dont l'une contient l'objet instanci et
l'autre contient les objets restants. Ainsi on s'assure que l'valuation des fonctions de
couleurs sera cohrente avec l'valuation ordinaire. Il est enfin ncessaire aprs
avoir calcul le nouveau marquage symbolique d'obtenir sa reprsentation
canonique en regroupant les sous-classes marquages identiques et en rordonnant
les sous-classes.
c) Evaluation quantitative
Une fois le marquage symbolique et la rgle de franchissement symbolique
dfinie, l'algorithme de construction du graphe symbolique est identique celle du
graphe ordinaire. L'valuation quantitative se fait partir de ce graphe symbolique
de la mme manire que pour le graphe ordinaire, cependant lors du calcul de la
probabilit de passage d'un tat symbolique un autre, il importe de tenir compte
de la taille des sous-classes instancies. On obtient ainsi la probabilit d'tre dans un
tat symbolique (classe d'quivalence d'tats ordinaires). Enfin il est toujours
possible de connaitre la probabilit d'tre dans un tat ordinaire car on montre que
les probabilits sont quidistribues l'intrieur d'un marquage symbolique et on
sait calculer le nombre de marquages ordinaires d'une classe d'quivalence.
4.2 Application l'exemple
Dans notre gestion de bases de donnes, nous pouvons franchir initialement la
transition T1 et ceci pour n'importe quelle couleur. Ce qui correspond la
modification locale d'une base de donnes. La figure ci-dessous fournit le sousgraphe du graphe d'accessibilit, pour ces franchissements :

M(Idle) = c1+c2+c3
M(Mutex) = e

T1(c1)

M(Idle) = c2+c3
M(Wait) = c1
M(Mess)=
<c1,c2>+<c1,c3>

T1(c2)

M(Idle) = c1+c3
M(Wait) = c2
M(Mess)=
<c2,c1>+<c2,c3>

T1(c3)

M(Idle) = c2+c1
M(Wait) = c3
M(Mess)=
<c3,c2>+<c3,c1>

Le mme pas de franchissement est reprsent dans le graphe symbolique par la


figure ci-dessous. Dtaillons ce sous-graphe. Le premier noeud reprsente le
marquage initial symbolique, dans ce marquage tous les sites sont dans le mme tat
aussi la classe des sites est partitionne en une seule sous-classe C1 de cardinalit 3.
La transition T1 ne peut alors tre instancie que par cette sous-classe. Dans le
marquage obtenu, qui est la classe d'quivalence des trois marquages ordinaires, la
classe des sites est partitionne en deux sous-classes celles des sites qui vont traiter
leur message et celle du site qui attend. L'interprtation d'un tel marquage est aise :
Un site a effectu une modification et tous les autres sites ont des messages traiter.
|C1|=3
M(Idle) = C1
M(Mutex) = e

T1(C1)

|C1|=2,|C2|=1
M(Idle) = C1
M(Wait) = C2
M(Mess)=<C2,C1>

Sur ce simple exemple, on peut voir l'apport du graphe symbolique :


- quantitatif, la taille du graphe symbolique est 1+n(n+1)/2 contre 1+n.3n-1 pour le
graphe ordinaire.
- qualitatif, un tat symbolique est plus significatif qu'un tat ordinaire (exemple :
un site est en attente plutt que le site b est en attente)

6. Conclusion
Nous avons prsent le modle des rseaux colors, une extension du modle
des rseaux de Petri. Les avantages de ce nouveau modle sont nombreux. Il ne
souffre pas des limitations des rseaux de Petri quant la modlisation mais il est
quivalent un rseau de Petri obtenu par dpliage des places et des transitions du
rseau color. Cette quivalence a servi de point de dpart pour l'extension des
rsultats thoriques sur les rseaux de Petri. De plus il permet une modlisation
paramtre qui correspond gnralement au besoin du modlisateur.
Aussi ce modle a connu un rapide essor que ce soit par les nombreuses
modlisations ralises que par les rsultats thoriques obtenus. Aprs avoir rappel
les principales dfinitions et introduit une modlisation simple, nous avons prsent
de manire informelle les diffrents rsultats thoriques obtenus savoir :
- le calcul de flots qui permet d'obtenir une famille gnratrice d'invariants
d'un certain type (appels invariants linaires) ,
- les rductions de rseau qui transforment un rseau en un rseau plus petit
au comportement quivalent,
- La construction d'un graphe d'accessibilit symbolique et l'valuation
quantitative dduite de ce graphe, lorsqu'on a associ aux tirs des transitions des
dlais poissonniens.
Nous avons appliqu chacune de ces mthodes notre exemple de modlisation
en montrant comment interprter les rsultats. Cependant la complexit des
diffrents algorithmes interdisent leur utilisation manuelle. Pour que ce modle
pntre le monde industriel, il importe de fournir des logiciels regroups
l'intrieur d'un environnement orient vers la modlisation d'applications. Un tel
environnement est cours d'achvement au laboratoire MASI.
REFERENCES
[Ajm84] M. AJMONE MARSAN, G. CONTE, G. BALBO : A class of Generalized Stochastic Petri
Nets for the Performance Evaluation of Multiprocessor Systems. in ACM Transactions on Computer
Systems, vol. 2, no. 2, pp 93-122 (May 1984).
[And81] C. ANDRE : Systmes volutions parallles : Modlisation par rseaux de Petri capacits
et analyse par abstraction. Thse d'tat. Universit de Nice (1981)
[Ber85] G. BERTHELOT : Checking properties of nets using transformations. LNCS 222. Advances
in Petri nets 85, G. Rozenberg ed, Springer-Verlag 1986.
[Ber86] G. BERTHELOT : Transformations and decompositions of nets. LNCS 254. Advances in
Petri nets 86, G. Rozenberg ed, Springer-Verlag 1987.
[Bra83] G.W. BRAMS : Rseaux de Petri. Thorie et pratique. Masson editeur, Paris (1983)
[Col86] J-M. COLOM, J. MARTINEZ, M. SILVA : Packages for validating discrete production
systems modeled with Petri nets. IMACS-IFAC Symposium, Lille, France (1986)
[Dut89] C. DUTHEILLET, S. HADDAD : Regular Stochastic Petri Nets. 10th International
Conference on Application and Theory of Petri Nets, Bonn, West Germany (June 1989).

[Gen81] H.J. GENRICH, K. LAUTENBACH: System modelling with high-level Petri nets.
Theoretical computer science 13,1981, pp 103-136.
[Gen82] H.J. GENRICH, K. LAUTENBACH : S-invariance in predicate transition nets. Third
european workshop on applications and theory of Petri nets. Varenne Italy (1982)
[Gen88] H.J. GENRICH : Equivalence transformations of PrT-nets.Ninth european workshop on
applications and theory of Petri nets. Venise, Italie (1988).
[Had86] S. HADDAD, C. GIRAULT: Algebraic structure of flows of a regular net. Seventh european
workshop on applications and theory of Petri nets, Oxford England , june 1986, in "Advances in Petri
nets 87", L.N.C.S. n 266, G.Rozenberg ed., Springer Verlag, 1987, pp 73-88.
[Had87] S. HADDAD : Un calcul d'une base de flots pour les rseaux colors. Deuxime colloque
C3 Angoulme, France,1987.
[Had88] S. HADDAD : Generalization of reduction theory to coloured nets. Ninth european
workshop on applications and theory of Petri nets. Venise, Italie (1988).
[Hub84] P. HUBER, A.M. JENSEN, L.O. JEPSEN, K. JENSEN : Towards Reachability Trees for
High Level Petri Nets. 5th Euro Workshop on Application and Theory of Petri Nets, Aarhus,
Denmark (1984).
[Jen81a] K. JENSEN : How to find invariants for coloured Petri nets. 10 th symposium on
Mathematical foundations of computer science 1981, L.N.C.S. vol 118, Springer-Verlag,1981, pp 327338.
[Jen81b] K. JENSEN : Coloured Petri nets and the Invariant method. TCS 14 (1981)
[Jen82] K. JENSEN : High-level Petri nets. Third european workshop on applications and theory of
Petri nets, Varenna Italy, september1982, pp 261-276.
[Kro89] P. KROHN, M. RAUHAMAA, A. YLIKOSKI : Reduction transformations of PrT_nets.
Submitted to the sixth symposium on theoretical aspects of computer science. Paderborn.
[Lau85] K. LAUTENBACH, A. PAGNONI : Invariance and duality in predicate transition nets and
in coloured nets. Arbeitspapiere der G.M.D, n132.
[Sil85] M. SILVA, J. MARTINEZ, P. LADET, H. ALLA : Generalized inverses and the calculation
of symbolic invariants for coloured Petri nets. Technique et science informatique, Vol.4 n1, 1985,
[Vau84] J. VAUTHERIN, G. MEMMI : Computation of flows for unary predicates transitions nets.
Advances in Petri net (p. 455-467). Lecture notes in computer science 188. Springer-Verlag 1984