Académique Documents
Professionnel Documents
Culture Documents
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.
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>
]
]
]
]
]
[
[
[
[
T2
0
0
0
0
T3
-X2
-<X1,X2>
0
<X1,X2>
T4
X2
<X1,X2>
0
-<X1,X2>
]
]
]
]
T4
0
0
0
]
]
]
T3
[ 0
[ 0
[ 0
]
]
]
]
]
Rseau
ordinaire
Squence de
rductions
ordinaires
Rseau
ordinaire
rduit
sur p' P
R est sain
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
<X1,S1-X1>
<X1,X2>
<X1,X2>
X1
Mutex
Wait
Update
X1
<X1,S1-X1>
<X1,X2>
<X1,X2>
Ack
Mess
<X1,X2>
<X1,X2>
Mutex
Update
<X1,X2>
<X1,S1-X1>
Ack
<X1,X2>
<X1,S1-X1>
Mess
<X1,X2>
Mutex
<X1,S1-X1>
Mutex
<X1,X2>
Ack
<X1,S1-X1>
<X1,S1-X1>
Ack
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>
T1(C1)
|C1|=2,|C2|=1
M(Idle) = C1
M(Wait) = C2
M(Mess)=<C2,C1>
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