Vous êtes sur la page 1sur 31

Rapport final de TIPE

Réseau de Petri
Superviseur: Victor MORARU
Auditeur: TRÂN Vinh Duc
Institut de la Francophonie pour l’Informatique - Promotion 10

15 juillet 2005

Résumé
Le réseau de Petri est un outil très puissant pour la modélisation et
l’analyse de système. Dans ce rapport on représente 2 types de réseau
de Petri : réseau de Place/Transition et réseau coloré. Pour le réseau
Place/Transition les propriétés comportementales et la méthode d’ana-
lyse sont représentées en détail, plusieurs exemples donnés pour indi-
quer la capacité de modélisation de type de ce réseau. Avec le réseau
coloré, des descriptions informelles données pour bien comprendre les
définitions formelles, et l’outil CPN Tool est aussi introduit. Et une ap-
plication d’analyse d’un protocole simple est représentée pour montrer
la capacité d’application industrielle de ce réseau.

Table des matières


1 Introduction 2

2 Réseau de Place/Transition 3
2.1 Définitions et Exemples . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Propriétés comportementales . . . . . . . . . . . . . . . . . . 8
2.3 Méthodes d’analyse . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Graphe de marquages . . . . . . . . . . . . . . . . . . 9
2.3.2 Equation de matrice . . . . . . . . . . . . . . . . . . . 14

3 Réseau de Petri coloré 17


3.1 Description informelle . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Definitions formelles . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 CPN Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1
4 Exemple de Protocol simple 25
4.1 Description de Protocole . . . . . . . . . . . . . . . . . . . . . 25
4.2 Analyse de l’espace d’état . . . . . . . . . . . . . . . . . . . . 26

5 Conclusion 30

1 Introduction
Le réseau de Petri (ou par abréviation le réseau) est un outil graphique
et mathématique pour modéliser et analyser les systèmes discrets, parti-
culièrement les systèmes concurrents, parallèles, non-déterministes, etc. En
étant rôle d’outil graphique, il nous aide à comprendre facilement le système
modèlisé, et plus il nous permet de simuler les activités dynamiques et
concurrentes. Avec le rôle d’outil mathématique, il nous permet d’analyser le
système modélisé grâce aux modèles de graphes, aux équations algébriques,
etc.
En général, les méthodes de l’étude de système par réseau se composent
3 étapes : premièrement on récrit le système en terme de réseau, on obtient le
modèle en réseau ; deuxièmement on analyse le modèle obtenue, on déduit
des propriétés comme absence de blocage, existence d’une solution, etc. ;
finalement on fait la révision des propriétés obtenues pour montrer si le
système est bon. Le résultat de cette méthode nous indique une analyse
qualitative du systèmes. Elle est une approche très importante pour avoir
une bonne évaluation des systèmes.
Informellement, le réseau est un graphe biparti ayant 2 types des noeuds.
Certains étant les transitions représentent les actions élémentaires du système,
et les autres étant les places représentent ses ressources.
Pour modéliser et analyser les applications industrielles, qui sont de plus
en plus compliqués, plusieurs types de réseau sont représentés. Selon la pro-
position des Monika Trompedeller en 1995, les réseaux sont classifiés en 3
niveaux :
Niveau 1 : Les réseaux caractérisés par les places qui peuvent représenter
des valeurs booléennes. Un exemple de ce type est les Réseaux de
Condition/Evenement ;
Niveau 2 : Les réseaux sont caractérisés par les places qui peuvent représenter
des valeurs de nombre entier. Un exemple de ce type est les Réseaux
de Place/Transition ;
Niveau 3 : Les réseaux sont caractérisés par les places qui peut représenter
des valeurs à niveau élevé, c-à-d., une place est marquée par un multi-
ensemble de jetons structurés. Un exemple de ce type est les Réseaux
colorés.
Historiquement, le réseau est présenté par Carl Adam Petri dans sa thèse
”Communication avec des Automates” en Allemagne à Bonn en 1962. Ce tra-

2
vail a continué à être développé par Anatol W. Holt, F. Commoner, M. Hack
et leurs collègues dans le groupe de recherche de Massachussetts Institute Of
Technology (MIT) dans des années 70s. En 1975 la première conférence de
réseau de Petri et des méthodes relationels ont été organisés à MIT. En 1981
le premier livre du réseau de Petri a été publié en Anglais par J. Peterson.
Aujourd’hui, suivre Petri-Net Newsletter, chaque année il y a des 600 aux
800 d’oeuvres des réseaux de Petri sont publiés.
Le reste de cet rapport comprend les matières suivantes. La section 1
introduit le réseau de Place/Transition : les définitions et les exemples, les
propriétés et la méthode d’analyse. Dans la section 2, on représente le réseau
coloré : les descriptions informelles, les définitions formelles et l’outil CPN
Tool. Dans la section 3, on aborde une petite application d’analyse de pro-
tocole simple en utilisant le réseau coloré. Finalement, on termine le rapport
par quelques conclusions.

2 Réseau de Place/Transition
2.1 Définitions et Exemples
2.1.1 Définitions
Un réseau de Petri est un graphe biparti orienté valué qui a 2 types
de noeud : la place et la transition ; les arcs sont limités, soit il est un
lien d’une place à une transition, soit un lien d’une transition à une place.
L’arcs est etiquetés par une valeur (ou un poids), qui est un nombre entier
positif. L’arc ayant k−poids peut être interprété comme ensemble de k arcs
parallèles. L’étiquette du poids égale à 1 est ignorée.
Un marquage assigne un nombre entier à chaque place, si un marquage
assigne un entier k à une place p, on dit que p est marqué par k jetons.
On considère d’abord la structure fondamentale qui se compose de deux
sortes d’objets (les places et les transitions) et des relations entre eux.

Definition 1. Une structure de réseau de Petri est donnée par un triple


N = (P, T, F ) où
– P et T sont 2 ensembles, P ∪ T 6= ∅ et P ∩ T = ∅ (les éléments de P
s’appellent les places, les éléments de T s’appellent les transitions) ;
– F ⊆ (P × T ) ∪ (T × P ) est une relation binaire (les arcs), la relation
de flux de N .

Graphiquement, les places sont présentées par des cercles ; et les transi-
tions par des rectangles noirs.

Definition 2. ∀x ∈ S ∪ T , on définit le pré-ensemble et post-ensemble de


x, noté par • x et x• suivants :

x = {y| yF x}, x• = {y| xF y}

3
et X ⊆ S ∪ T , on note :
[ [
• •
X= x, X• = x•
x∈X x∈X

Évidemment, on a ∀x, y ∈ N : x ∈ • y ⇔ y ∈ x• .

t4 t3
s5 s4

s1

t2 t1
s3

s2

Fig. 1 – Exemple 1 : Un description du pré-ensemble et du post-ensemble

Exemple 1. On considère le réseau N = (P, T, F ) dans Fig. 3. On a

P = {p1 , · · · , p5 }, T = {t1 , · · · , t4 }

F = {(p1 , t2 ), (p2 , t2), (p3 , t1 ), (p5 , t4 ), (p4 , t3 ), (t2 , p3 ), (t1 , p2 ), (t1 , p5 ), (t4 , p4 ), (t3 , p1 )}

t2 = {p1 , p2 }, t2 • = {p3 }

{t2 , t3 } = {p1 , p2 , p4 }, {t2 , t3 }• = {p1 , p3 }

Definition 3. Un réseau Place/Transition est un 5-tuple, P N = (P, T, F, W, M 0 )


où :
– N = (P, T, F ) est une structure de réseau ;
– W : F → {1, 2, 3, . . .} est une function de poids ;
– M0 : P → {0, 1, 2, 3, . . .} est un marquage initial ;
Un réseau Place/Transition est noté par (N, M 0 ).

4
Et les marquages sont présentés par les dots dans les places (les poids
sont égales aux nombre de jetons).
Le comportement du systèmes peut être décrit par les termes de l’état
du système et ses changements. Pour simuler le comportement dynamique
d’un système, l’état ou le marquage dans le réseau est changé selon la règle
de transition suivante :
– Une transition t s’appelle franchissable si chaque place d’entrée p de t
a plus W (p, t) jetons (W (p, t) est le poids dans d’arc (p, t)), i.e.,

∀s ∈ • t : M (s) ≥ W (s, t)

– Une transition franchissable peut franchir ou non (ça depend de l’événement)


– Un franchissement d’une transition franchissable t supprime W (p, t)
jetons de chaque place d’entrée p, et ajouter W (t, p) jetons à chaque
place de sortie p, i.e.,



 M (s) − W (s, t) ssi s ∈ • t − t•

M (s) + W (t, s) ssi s ∈ t• − • t
M 0 (s) = (1)


 M (s) − W (s, t) + W (t, s) ssi s ∈ • t ∩ t•

M (s) autrement

Exemple 2. La règle de transitions au-dessus est illustré dans Fig. 2 en


utilisant la réaction chimique connue : 2H 2 + 02 → 2H2 0. Deux jetons dans
chaque place entrée dans Fig. 2 (a) indique que 2 unités de H 2 and 2 unités
O2 sont disponibles, donc la transition t est franchissable. Après avoir franchi
t, le marquage va changer et on obtient le réseau ayant le marquage comme
Fig.1.1 (b). maintenant t n’est plus franchissable.

2.1.2 Exemples
Exemple 3 (Système de 4 saisons). On considère un système décrivant
4 saisons (dans Fig. 3). S’il est printemps et l’événement ”début d’été” se
produit, la saison change à l’été. Ensuite, si l’événement ”début de automne”
se produit, la saison est automne, etc. Le système modèlise le changement
séquentiel entre les saisons.

Exemple 4 (Système de producteur-consommateur). On décrit le


système d’un producteur et un consommateur utilisant un tampon comme
leur boutique pour échanger les items (ou les marchandises). Le producteur
produit des items (représenté par des jetons dans le tampon). Le consom-
mateur peuvent les acheter en supprimant des items dans le tampon. Un
franchissement d’une transition supprime un jeton de l’entrée et ajoute un
jeton à chaque place de sortie à la fois. Cela correspond à échangement des
marchandises dans la réalité.

5
H2
••
2 t H2 O
2
O2
••
(a)

H2

2 t H2 O
2 ••
O2

(b)

Fig. 2 – Example 1 : Un description du règle du franchissement de tran-


sition : (a) le marquage avant de franchir la transition t. (b) le marquage
après avoir franchi t, maintenant t n’est plus franchissable.

printemps début d’été


été

début de printemps début de automne

hiver début de hiver automne

Fig. 3 – 4 saisons

6
•••

Tampon
• •

Producteur Consommateur
Fig. 4 – Système de producteur-consommateur

Exemple 5 (Activité parallèle). Les activités parallèles ou simultanéitées


peuvent être modélisées facilement par les réseaux de Petri. Par exemple,
dans le réseau de Petri montré par fig.5, les activités parallèles ou simul-
tanéité sont représentées par les transitions t 2 et t3 . Ces activités parallèles
commencent en franchissant la transition t 1 et elles finissent en franchissant
la transition t4 . En général, 2 transitions sont appelés concurrentes s’elles
sont independentes, i.e., une transitions peut franchir avant ou près ou pa-
rallèlement l’autre, comme le cas de t 2 et t3 dans Fig. 5.

p1 t2 p3

t1 t4
Par Begin Par End
p2 t3 p4

p5

Fig. 5 – Un réseau de Petri represente les activités parallèle.

7
2.2 Propriétés comportementales
Après avoir modélisé le système, une question naturelle qu’on pose est
”Qu’est-ce qu’on peut faire avec ce modèle ?”. Le réseau de Petri nous donne
les techniques pour analyser les propriétés et les problèmes concernant les
systèmes concurrents.
Dans cette partie, on donne des problèmes, des propriétés qui peuvent
être analysés par les réseaux de Petri.

Problème d’accessibilité
Un marquage Mn s’appelle accessible à partir d’un marquage M 0 s’il
existe une séquence des franchissements qui transforme M 0 à Mn . Une
séquence des franchissements est notée par

σ = M 0 t1 M1 t2 M2 · · · t n Mn

ou simplement
σ = t 1 t2 · · · t n
Dans ce cas Mn est accessible à partir de M0 grâce à σ, on écrit

M0 [σ > Mn

L’ensemble de tous les marquages accessibles à partir de M 0 dans (N, M0 )


est noté par R(N, M0 ) ou simplement par R(M0 ).
L’ensemble de tous les séquences de franchissements à partir de M 0 dans
(N, M0 ) est noté par L(N, M0 ) ou simplement par L(M0 ).
Le problème concernant l’accessibilité pour le réseau de Petri est de
trouver si Mn ∈ R(M0 ) en donnant Mn et un réseau (N, M0 ).

k-Borné
Un réseau de Petri (N, M0 ) est appelé k−borné (k ∈ N ) ou simplement
borné si le nombre de jetons dans chaque place n’est pas supérieur à k,
c’est-à-dire :
∀M ∈ R(M0 ), ∀p ∈ P : M (p) 6 k

Quasi-vivacité
Une transition t est dite quasi-vivante s’il existe un marquage accessible
M ∈ R(M0 ) tel que M [t >.
Le réseau (N, M0 ) est dit quasi-vivant si toutes les transitions sont quasi-
vivantes.
Une quasi-vivacité d’une transition désigne la probabilité de franchir au
moins une fois cette transition depuis un marquage initial.

8
Vivacité
Une transition t d’un réseau (N, M0 ) est vivante si pour tout marquage
accessible M ∈ R(N, M0 ), t est quasi-vivant pour le réseau (N, M ).
Un réseau (N, M0 ) est vivant si toutes ses transitions sont vivantes.
La vivacité exprime le fait qu’à tout instant de l’évolution de ce système,
le franchissements à terme de cette transition n’est jamais définitivement
impossible.

Réseau sans blocage


Un marquage M d’un réseau (N, M0 ) est appelé marquage ”puits” si
aucune transition n’est franchissable depuis M .
Un réseau est dit sans blocage si tout marquage accessible depuis M 0 ,
n’est pas un marquage ”puits”.
La notion de réseau sans blocage est plus faible que celle de réseau vi-
vant. Elle permet seulement de caractériser le fait qu’un réseau et dans état
permanent de fonctionnement sans toutefois tenir compte des transitions
franchies.

Réinitialisable et Home d’état


Un réseau de Petri s’appelle réinitialisable si pour chaque marquage M
dans R(M0 ), M0 est accessible à partir de M .
Un marquage M 0 est Home d’état si pour chaque marquage M dans
R(M0 ), M est accessible à partir de M 0 .

2.3 Méthodes d’analyse


On aborde 2 méthodes d’analyse : graphe de marquages et équation
de matrice. La première méthode est de construire le graphe de tous les
marquages de réseau, et on déduit des propriétés grâce aux techniques de
théorie de graphe. La deuxième méthode est de trouver une représentation
de matrice de réseau, et on utilise des techniques d’algebra linéaire pour
obtenir des propriétés du réseau.

2.3.1 Graphe de marquages


Parce que des propriétés du réseau sont définies par les marquages, l’idée
la plus naturelle pour étudier un réseau est de construire le graphe de mar-
quages accesibles.

Definition 4. Le graphe des marquages accessibles, noté GA(N, M 0 ) est le


graphe ayant comme sommets les marquages de R(N, M 0 ) et tel qu’il existe
un arc entre deux sommets M1 et M2 si et seulement si M1 [t > M2 .

9
(1, 0)
(1, 0)
t1
t1
p1 p2 (0, 1)

• t2
t2 t1
(1, 0)

t2 t1
..
.
(0, 1)
(a)
(b) (c)

Fig. 6 – Exemple de graphe fini : (b) et (c) sont l’arbre des marquages
accessibles et le graphe des marquages de réseau de Petri (a).

(1, 0, 0)
t1 t2

t1 (1, 1, 0) t2 (0, 1, 1)

t3
(1, 2, 0) (0, 2, 1)
t1 t2 t3
(0, 0, 1)

(1, 3, 0) (0, 3, 1) (0, 1, 1)

t3
.. ..
. .
(0, 0, 1)

Fig. 7 – Exemple de graphe infini : le graphe infini de marquages accessibles

10
Si le graphe de marquages accessibles est fini, c’est la situation la plus
favorable car alors toutes les propriétés peuvent être déduites simplement
par inspection de celui-ci.
Avec cette présentation l’arbre peut-être infini si le réseau n’est pas
borné. Pour l’éviter, on doit accepter de perdre des informations. Pour
l’arbre infini, le nombre de jetons dans les places pouvant avoir une quan-
tité arbitrairement grande de jetons vont être considère comme une valeur
particulières, noté par ω. Il a la propriété que pour chaque entier n,

ω+n=ω
ω−n=ω
n≤ω
ω≤ω

Grâce à ce symbole, on a l’algorithme pour construire l’arbre comme


suivant :
1) Assigner la racine à M0 et tag(M0 ) = ”nouveau” ;
2) Tant qu’il existe marquage ayant tag = ”nouveau”, on fait comme suivant :
2.1) Choisir un ”nouveau” marquage M ;
2.2) Si M est égal à un autre noeud dans le chemin de noeud à M , donc
tag(M ) = ”old” et on continue (étape 2) avec un autre nouveau
marquage ;
2.3) S’il n’y a pas de transition franchissable dans M , donc on assigne
tag(M ) = ”terminal” ;
2.4) Tant qu’il existe une transition franchissable t dans M , on fait
comme suivant :
2.4.1) Calculer M 0 tel que M [t > M 0 ;
2.4.2) S’il existe un noeud M 00 dans le chemin de la racine à M tel
que :
∀p ∈ P : M 0 (p) > M 00 (p) et M 00 6= M 0
i.e. M 00 < M 0 , donc pour chaque p tel que M 0 (p) > M 00 (p) on
replace M 0 (p) par ω.
2.4.2) Ajouter le noeud M 0 à l’arbre et dessiner un arc de M à M 0
avec l’étiquette t, et on assigne tag(M 0 ) = ”nouveau”.

Exemple 6. On considère le réseau dans Fig. 8, Avec le marquage initial


M0 = (1, 0, 0), 2 transition t1 et t2 sont franchissable. En franchissant t 1 on
obtient le marquage M1 = (0, 0, 1) qui est ”terminal” noeud car il n’y a pas
de transitions qui sont franchissables dans M 1 , maintenant la franchissement
de t3 dans M0 on a M3 = (1, 1, 0) > M0 = (1, 0, 0) donc M3 = (1, ω, 0). Avec
ce marquage M3 , 2 transitions t1 et t3 peuvent franchir. En franchissant t 1

11
t3 • p1

p2 t1

t0

t2 p3

Fig. 8 – Transitions t1 , t2 , t3 sont quasi-vivantes, t0 n’est pas quasi-vivante

on a M4 = (0, ω, 1), avec M4 la transition t2 peut franchir, le résultat est


le ”déjà” noeude M5 = M4 . En franchissant t3 à M3 on a le ”déjà” noeud
M6 = M3 . Donc on a l’arbre de marquages comme Fig. 9.

Quelques propriétés qui peuvent être étudiés par l’arbre de marquages


T pour le réseau de Petri (N, M0 ) sont suivants :
1. Un réseau (N, M0 ) est borné, R(M0 ) est fini si et seulement si ω n’ap-
paraı̂t pas dans un étiquette dans un noeud dans T .
2. Un réseau (N, M0 ) est 1-borné si et seulement si les noeuds ne contiennent
que 0 ou 1.
3. Une transition t n’est pas quasi-vivante si et seulement si elle n’ap-
paraı̂t pas dans un noeud dans T .
4. Si M est accessibles à partir de M 0 , donc il existe un noeud étiqueté
M 0 dans T tel que M 6 M 0 .
Avec l’arbre on voit clairement que le réseau dans Fig. n’est pas borné,
et les transitions t0 n’est pas quasi-vivante , t1 , t2 et t3 sont quasi-vivante,
mais il n’y pas de transition vivante.
Pour réseau de Petri borné, l’arbre contient tous les marquages acces-
sibles possibles, donc on peut résoudre tous les problèmes dans la section
2.2. Mais en général le problème vivant et d’accessibilité, ils ne peuvent pas
être résolu par cette méthode à cause de l’information perdu par la notation
ω.

12
M0 = (1, 0, 0)

t3
t1

M1 = (0, 0, 1) M3 = (0, ω, 0)

”terminal”

t3
t1

M4 = (0, ω, 1) M6 = (1, ω, 0)

”déjà”

t2

M5 = (0, ω, 1)

”déjà”

Fig. 9 – L’arbre de marquages de réseau dans Fig. 8

13
2.3.2 Equation de matrice
Deuxième approche pour analyser le réseau de Petri se base sur la représentation
de matrice de réseau. Du réseau (N, M 0 ) on definit D − et D + étant 2 ma-
trices de m-ligne (une ligne pour 1 transition) et n-colume (une colonne pour
une place) comme suivant :

D − [ti , pj ] = W (pi , tj ), D + [ti , pj ] = W (ti , pj )

On note e[tj ] est m-vecteur (l’élément tj correspond à la transition tj ) dans


lequel il n’y a que l’élément tj est égal à 1, les autres sont égales à zéro.

e[tj ] = (0, . . . , 0, |{z}


1 , 0, . . . , 0)
tj

Donc un transition tj est franchissable dans un marquage M si

M > e[tj ]D −

et le résultat du franchissement de la transition t j dans le marquage M , s’il


est franchissable, est

M 0 = M − e[tj ] · D − + e[tj ] · D +
= M + e[tj ] · (−D − + D + )
= M + e[tj ] · D

où D = −D − + D + .
Pour une séquence du franchissement des transitions σ = t 1 t2 . . . tk , on
a
M 0 = M + e[t1 ] · D + . . . + e[tk ] · D
= M + (e[t1 ] + . . . + e[tk ]) · D
= M + f (σ) · D
Le vecteur f (σ) = e[t1 ]+. . . +e[tk ] s’appelle le vecteur Parikh de la séquence
t1 t2 . . . tk . L’élément t de ce vecteur est le nombre de fois de transition t de
franchissement dans la séquence σ = t 1 t2 . . . tk .
Cette approche nous donne un outil pour attaquer le problème d’acces-
sibilité. Si un marquage M 0 est accessible à partir d’un marquage M , donc
il existe une séquence σ (possible vide) du franchissement de transition qui
se produit à M 0 . C’est-à-dire f (σ) est une solution de entière non négative,
pour x dans l’équation de matrice :

M0 = M + x · D

Donc si M 0 est accessible à partir de M , L’équation a une solution de entière


non négative. Si cette équation n’a pas de solution, donc M 0 n’est pas ac-
cessible à partir de M .

14
p2

t2
2

p4
p1 t1


p3
t3

Fig. 10 – Un exemple de réseau de Petri pour déscrire matrix equation


analysis.

Exemple 7. On considère le réseau dans Fig. 11 Les matrices D − et D +


sont  
1 1 1 1
D− =  0 0 0 1 
0 0 1 0
 
1 0 0 0
D+ =  0 2 1 0 
0 0 0 1
et la matrice D est  
0 −1 −1 0
D= 0 2 1 −1 
0 0 −1 1
Avec le marquage initial M0 = (1, 0, 1, 0), la transition t3 est franchissable
et on a M 0 , où
 
0 −1 −1 0
M 0 = (1, 0, 1, 0) + (0, 0, 1) ·  0 2 1 −1 
0 0 −1 1
= (1, 0, 1, 0) + (0, 0, −1, +1)
= (1, 0, 0, 1)

La séquence σ = t3 t2 t1 est représentée par le vecteur de franchissement

15
f (σ) = (1, 2, 2) et on a le marquage M 0 ,
 
0 −1 −1 0
M 0 = (1, 0, 1, 0) + (1, 2, 2) ·  0 2 1 −1 
0 0 −1 1
= (1, 0, 1, 0) + (0, 3, −1, 0)
= (1, 3, 0, 0)

On peut montrer que le marquage (1, 7, 0, 1) n’est pas accessible à partir du


marquage (1, 0, 1, 0) parce que l’équation de matrice
 
0 −1 −1 0
(1, 7, 0, 1) = (1, 0, 1, 0) + x ·  0 2 1 −1 
0 0 −1 1
 
0 −1 −1 0
(1, 7, 0, 1) = x ·  0 2 1 −1 
0 0 −1 1

n’a pas de solution.

p2

t1 t2


p1 p4

p3

Fig. 11 – Un réseau de Petri montre que la solution de matrix equation est


neccessaire mais pas suffiçant pour reachability

Donc on a une condition nécessaire pour le problème d’accessibilité,


mais cette condition n’est pas suffisante. On considère le réseau simple
comme Fig.12. Si on veut determiner si (0, 0, 0, 1) est accessibles à partir
de (1, 0, 0, 0), on doit résoudre l’équation
 
−1 1 −1 0
(0, 0, 0, 1) = (1, 0, 0, 0) + f (σ) ·
0 −1 1 1

16
Cette équation a une solution f (σ) = (1, 1) correspond à 2 séquences t 1 t2
ou t2 t1 . Mais tous les deux ne sont pas possibles parce que t 1 et t2 ne
sont pas franchissables à partir de (1, 0, 0, 0). Donc cette condition n’est pas
suffisante.

3 Réseau de Petri coloré


3.1 Description informelle
Dans cette partie, on va décrire informellement des concepts de base de
réseau coloré, l’exemple utilisant dans toute cette partie est le système du
dı̂ner des philosophes. Ce système est décrit comme suivant :
Cinq philosophes chinois s’assoient autour d’une table circulaire. Au mi-
lieu de table il y a un plat délicieux de riz, et entre chaque paire de philo-
sophes il n’y a que une baguettes. Chaque philosophe est soit de penser, soit
de manger. Pour manger, chaque philosophe a besoin de deux baguettes, et
on lui permet seulement d’utiliser les deux qui sont situés à côté de lui (sur
le sien côté gauche et droit). Le partage des baguettes empêche deux voisins
de manger en même temps.
En décrivant le réseau coloré les termes : type, valeur, opération, expres-
sion, variable, association et évaluation sont même sens que dans le langage
functionnel, donc on va utiliser mais on ne redéfinit pas.
Dans le réseau coloré, chaque place (dessinée par ellipses) est un état
local. Dans cet exemple, il y a trois places (Think, Eat, Unused Chopsticks),
2 places (Think et Eat) présentent 2 états correspondants du Philosophe, et
la place (Unused Chopsticks) indique l’état libre des baguettes.
Chaque place a un type (écrit au-dessous des places) déterminant quel
type de données que la place peut contenir. le tableau au-déssus décrit les
déclarations de type, il y a 2 type de données : PH (les Philosophes) et CS
(les baguettes). Ces déclarations suivent le syntax de langage Standard ML.
Un état (global) de réseau se compose les jetons dans chaque place in-
dividuelle, il s’appelle aussi marquage. Chaque marquage porte une valeur
de données qui appartient au type correspondant à chaque place. Le réseau
a aussi un marquage s’appelant initial (écrit au-dessus des places). Ici, le
marquage initial à la place Think a le type de P H.all(), i.e., tous les philo-
sophes
P H.all() = {ph(1), · · · , ph(n)}
CS.all() = {cs(1), · · · , cs(n)}
En général, les jetons dans une place est un multi-ensemble (pas un en-
semble) car dans une place peut avoir plusieurs jetons ayant la même valeur.
Donc un marquage de réseau est une fonction qui corresponds chaque place
à un multi-ensemble de jetons ayant type correct. Dans ce système on a le

17
PH.all()

Think

PH
p

Take
Chopsticks
Chopsticks(p)
p
CS.all()
Unused
p Eat
Chopstics
PH CS
p

Chopsticks(p)
Put Down
Chopsticks

val n = 5 ;
color PH = index ph with 1..n ;
color CS = index cs with 1..n ;
var p : PH ;
fun Chopsticks (ph(i)) =
1‘cs(i)++1‘cs (if i = n then 1 else i+1) ;

Fig. 12 – Le réseau coloré modèlise le système du diner des philosophes, et


les déclarations suivent le langage fonctionnel Standard ML

18
marquage intitial M0 :

M0 (Think) = {ph(1), · · · , ph(n)} = P H.all()


M0 (Eat) = ∅
M0 (Unused Chopsticks) = {cs(1), · · · , cs(n)} = CS.all()

Pour la raison historique, les valeurs des jetons s’appellent la couleur de


jetons et les types de données s’appelle l’ensemble de couleurs.
Les actions du réseau sont représentées par les transitions (dessinées par
les rectangles). Dans ce système, il y a 2 transitions (Take Chopsticks et
Putdown Chopstick). Un arc lie un place à cela indique que la transition
peut supprimer des jetons de cette place et un arc lie cette transition à
une place indique que la transition peut ajouter des jetons à cette place.
Le nombre des jetons ajoutés ou supprimés et ses valeurs est déterminé
par l’expression de l’arc (sur chaque arc). Dans le système, la transition
Put Down Chopsticks concerne à 3 arcs avec l’expression de l’arc : p, p, et
Chopstick(p), où :
– p est un variable (var p : PH) qui a type de PH ;
– Chopstick(p) est fonction, il indique 2 baguettes que le philosophe p
utilise.
Par exemple, le philosophe p = ph(i) utilise 1‘cs(1)++1 0 cs(2) baguettes (une
baguette cs(1) et un baguettes cs(2)) ; le philosophe ph(5) utilise 1‘cs(5) +
+1‘cs(1) baguettes (une baguette cs(5) et une baguette cs(1)).
Pour l’occurrence de la transition Put Down Chopsticks, on doit assigner
la variable p à une valeur dans P H. Par exemple, si p est assigné à ph(2)
pour Put Down Chopstick et on écrit :

(Put Down Chopsticks, < p = ph(2) >)

Après avoir assigné les variables concernant une transition, on évalue l’ex-
pression de l’arc en assignant :
– p −→ ph(2)
– Chopsticks(ph(2)) −→ 1‘cs(2) + +1 0 cs(3)
Dans ce cas, si la place Eat contient ph(2), l’élément d’association

Y = (Put Down Chopsticks, < p = ph(2) >)

est donc accessible. Une occurrence de Y va :


– supprimer le jeton avec la valeur ph(2) de la place Eat ;
– ajouter le jeton avec la valeur ph(2) à la place Think ;
– et ajouter les jetons avec les valeurs 1 0 cs(2)++10 cs(3) à la place Unused
Chopsticks.

19
Avec le marquage M0 comme Fig. on a 5 éléments d’association accessibles :

(Take Chopsticks, < p = ph(1) >)


(Take Chopsticks, < p = ph(2) >)
(Take Chopsticks, < p = ph(3) >)
(Take Chopsticks, < p = ph(4) >)
(Take Chopsticks, < p = ph(5) >)

et si (Take Chopsticks, < p = ph(1) >) se produit, il nous donne le marquage


M1 avec les jetons suivant :

M1 (Think) = {ph(2), · · · , ph(5)}


M1 (Eat) = {ph(1)}
M1 (Unused Chopsticks) = {cs(3), · · · , cs(5)}

Parce que avec le marquage initial, la place Eat ne contient pas ph(2),
l’élément d’association

Y = (Put Down Chopsticks, < p = ph(2) >)

est inaccessible.
Dans le réseau coloré, plusieurs éléments d’association peuvent se pro-
duire en même temps s’ils peuvent être assigné indépendamment par les je-
tons différents. Dans ce cas, on a le concept de concurrence pour les éléments
d’association.
Par exemple, avec le marquage initial les éléments d’association suit
peuvent concurramment se produire :
(
(Take Chopstick, < p = ph(1) >)
(Take Chopstick, < p = ph(3) >)

mais 2 éléments d’association :


(
(Take Chopstick, < p = ph(1) >)
(Take Chopstick, < p = ph(2) >)

ne peuvent pas concurramment se produire car tous les deux Chopsticks(ph(1))


et Chopsticks(ph(2)) ont même cs(2).
En plus, non seulement l’expression d’arc, il est aussi possible d’attacher
une expression booléenne à chaque transition. Cette expression booléenne
s’appelle une garde. Il indique qu’on accepte seulement les éléments de l’as-
sociation pour lesquels l’expression booléenne évaluée égale à vrai. Mais dans
notre exemple, il n’y a pas de gardes.

20
3.2 Definitions formelles
D’abord on définit des multi-ensembles.
Definition 5. Un multi-ensemble m, sur un ensemble non vide S, est une
fonction m ∈ [S → N ], que nous pouvons représenter comme somme for-
melle : X
m(s)‘s
s∈S

On dénote SM S l’ensemble de tous les multi-ensembles sur S. Les nombres


entiers non négatifs {m(s) : s ∈ S} sont les coefficients du multi-ensemble.
s ∈ m si et seulement si m(s) 6= 0.
Definition 6. L’addition, la multiplication scalaire, la comparaison, et la
taille des multi-ensembles sont définies de la façon suivante, pour tous m,
m1 , m2 ∈ SM S et pour tous P n∈N :
– addition : m1 + m2 = s∈S (m1 (s) P + m2 (s))‘s
– multiplication scalaire : n ∗ m = s∈S n ∗ m1 (s)‘s
– comparaison :

m1 6= m2 = ∃s ∈ S : m1 (s) 6= m2 (s)
m1 6 m2 = ∀s ∈ S : m1 (s) 6 m2 (s)
P
– taille : |m| = s∈S m(s) P
– soustraction : m2 − m1 = s∈S (m2 (s) − m1 (s))‘s
Exemple 8. pour le muti-ensemble m1 = {a, a, b, b, b, c} et m2 = {a, b, d}
sur S = {a, b, c, d}, on a m(a) = 2, m(b) = 3, m(c) = 1 et m(d) = 0 donc la
somme formelle : 2‘a + 3‘b + 1‘c . Et m1 + m2 = 3‘a + 4‘b + 1‘c + 1‘d.

Remarque 1. Dans le langage Standard ML, le multi-ensemble m est écrit :

m(s1 )‘s1 + +m(s2 )‘s2 + + · · · + +m(sn )‘sn

avec cet exemple on écrit, 2‘a + +3‘b + +1‘c pour m 1 , et 1‘a + +2‘b + +1‘d
pour m2 .

Pour donner une définition abstraite du réseau de Petri coloré, on sup-


pose que les concepts suivantes soient claires et on ne redéfinit pas, on donne
seulement des descriptions en brèf :
– Les éléments d’un type, T . L’ensemble de tous les éléments dans T est
dénoté par le nom T lui-même de type ;
– Le type d’une variable, v - dénoté par T ype(v) ;
– Le type d’une expression, expr - dénoté par T ype(expr) ;
– L’ensemble des variables dans une expression, expr - dénoté par V ar(expr) ;
– Une association d’un ensemble de variables, V - assignant chaque va-
riable v ∈ V à un élément b(v) ∈ T ype(v) ;

21
– La valeur obtenue en évaluant une expression, expr, dans une asso-
ciation, b - dénoté par expr < b >. V ar(expr) est appliqué d’abord
pour obtenir un sous-ensemble des variables de b, puis l’évaluation est
exécutée en remplaçant chaque variable v ∈ V ar(expr) à la valeur
b(v) ∈ T ype(v) qui est déterminée par la association.
Une expression sans variables s’appelle une expression fermée. Elle peut
être évaluée dans toutes les associations, et toutes ces évaluations donnent
la même valeur.

Definition 7. Un réseau coloré est un tuple CP N = (Σ, P, T, A, N, C, G, E, I)


où :
– Σ est un ensemble fini de types non-vides, appelé des ensembles de
couleur ;
– P est un ensemble fini de places ;
– T est un ensemble fini de transitions ;
– A est un ensemble fini d’arcs tel que :

P ∩T = P ∩A = T ∩A = ∅

– N est une fonction de noeud. Il est défini de A dans P × T ∪ T × P ;


– C est une fonction de couleur. Il est défini de P dans Σ ;
– G est une fonction de garde. Il est défini de T dans les expressions tel
que :

∀t ∈ T : [T ype(G(t)) = Boolean ∧ T ype(V ar(G(t))) ⊆ Σ]

– E est une fonction d’expression d’arc. Il est défini de A dans les ex-
pressions tel que :

∀a ∈ A : [T ype(E(a)) = C(p(a))M S ∧ T ype(V ar(E(a))) ⊆ Σ]

où p(a) est la place de N (a) ;


– I est une fonction d’initialisation. Elle est définie de P dans les ex-
pressions fermées tels que :

∀p ∈ P : [T ype(I(p)) = C(p)M S ].

Definition 8. Un association d’une transition t est une fonction b définie


sur V ar(t), tel que :
– ∀v ∈ V ar(t) : b(v) ∈ T ype(v) ;
– G(t) < b >= vrai.
On dénote B(t) l’ensemble de tous les associations pour t.

On écrit une association de transition t sous la forme < v 1 = c1 , v2 =


c2 , · · · , vn = cn > où V ar(t) = {v1 , v2 , · · · , vn } et ci ∈ V ar(vi ). Et un
élément de l’association est une paire (t, b) où t ∈ T et b ∈ B(t).

22
Definition 9. Un pas est un multi-ensemble des éléments de l’association.

Un pas Y est accessible dans un marquage M si et seulement si la pro-


priété suivante est satisfait :
X
∀p ∈ P E(p, t) < b >6 M (p)
(t,b)∈Y

Quand un pas Y est accessible dans le marquage M 1 , s’il se produit, M1


change à un marquage M2 , défini par :
X X
∀p ∈ P : M2 (p) = (M1 (p) − E(p, t) < b >) + E(t, p) < b >
(t,b)∈Y (t,b)∈Y

La première somme s’appelle le jeton supprimé tandis que la seconde s’ap-


pelle le jeton ajouté. D’ailleurs on dit que le M 2 est directement accessible
de M1 par l’occurrence du pas Y , qu’on dénote également : M 1 [Y > M2 .
Une séquence d’occurrence est une séquence des marquages et des pas :

M1 [Y1 > M2 [Y2 > M3 · · · Mn [Yn > Mn+1

tel que ∀i ∈ {1, · · · , n} : Mi [Yi > Mi+1 . On utilise [M > pour dénoter
l’ensemble de tous les marquages qui sont accessibles de M .

3.3 CPN Tool


Le développement des réseaux colorés a été conduit par le désir de
développer un langage fort de modélisation industrielle. La section 3.2 nous
indique les définitions trop formelles. Elles conviennent aux mathématiciens,
mais pas aux praticiens. Donc pour les applications industrielles, il faut avoir
un outil efficace, qui nous aider à éviter les symboles formels. Les idées sont
même que dans les langages, on peut programmer mais on n’a pas besoin
de connaı̂tre les syntaxe (la grammaire) formelles compliques de langage.
CPN Tool est conçu pour ce but. Il se compose : CPN editor nous per-
met d’éditer les réseau coloré et vérifier ses syntaxes ; CPN simulator nous
permet de simuler le comportement de réseau (les règles de franchissement,
les transitions franchissables, etc.) ; CPN state space tool supporte la verifi-
cation (L’espace d’état).
Dans CPN Tool on combine la capacité de CP net et la capacité d’un
langage (le langage choisi est langage fonctionnel Standard ML). CP net
fournissent les primitifs pour décrire les processus concourants, tandis que
le langage fournit les primitifs pour définir des types de données (ensemble de
couleur) et des manipulations des données (expression d’arcs, gardes,etc.).

23
1‘(1,"Modellin")++
1‘(2,"g and An")++
INTxDATA
1‘(3,"alysis b")++
Send 1‘(4,"y Means ")++ "" Received
1‘(5,"of Colou")++ DATA
1‘(6,"red Petr")++
(n,p) if Ok(s,r) if n=k
1‘(7,"i Nets##")++ str
INTxDATA
1‘(8,"########") then 1‘(n,p) INTxDATA andalso
Send (n,p) (n,p) Transmit else empty (n,p) p<>stop
A B then str^p
Packet Packet
else str
s
n n
Ten0
8 SP k
1 1
NextSend NextRec Receive
INT if n=k Packet
INT Ten0
8 SA
then k+1
k n if n=k
s else k
then k+1
else k
ReceiveAck D TransmitAck C
n if Ok(s,r) n
INTthen 1‘n INT
else empty
Sender Network Receiver

Simple Protocol

Fig. 13 – Le réseau de Petri modèlise le Protocol simple

24
4 Exemple de Protocol simple
4.1 Description de Protocole
Le réseau de Petri coloré qui modèlise le protocole est indiqué dans Figure
1. Il se compose 3 parties :
1. La partie Sender a 2 transitions qui peuvent Send Packets et Receive
Acknowledgments :
2. La partie Network a 2 transition qui peuvent Transmit Packets et
Transmit Acknowlegement ;
3. La partie Receiver n’a qu’une transition qui peut Receiver Packets ;
Les places A et D est l’interface entre Sender et Network, et les places B et
C est l’interface entre le Network et Receiver.
Les paquets envoyant sont placés dans la place Send (dans le coin gauche
supérieur). Chaque jetons dans cette place contient le numéro de paquet et
donnés de paquets (représenté par une chaı̂ne). La place Next Send contient
le numéro de paquet suivante qui va être envoyé. Il est initialisé par 1, et
chaque fois un acquittement est reçu, il est mis à jours.
Le contenu du message reçu est placé dans la place Received (dans le coin
droite supérieur). Cette place contient seulement un jeton avec une chaı̂ne de
texte qui est concatenation de chaı̂ne de texte contenu dans le paquet reçu.
Ce texte est initialisé par la chaı̂ne vide, i.e “”. À fin de la transmission,
on espère que la place Received contient le texte “Modelling and Analysis
by Means of Colored Petri Net”. La place Next Rec contient le nombre de
paquet suivant qui sont reçu. Initialement ce numéro est 1, et chaque fois
un paquet est reçu successivement, il est mis à jours.
On ne modèlise pas comment Sender coupe un message à un séquence
de paquets ou comment Receiver intègre les paquets à un message. On ne
modèle pas comment les jetons dans Send et Received sont supprimés quand
la transmission est terminée ou comment les numéros des paquets dans Next
Send and Next Rec sont reset à 1.
Send Packet envoie un pacquer à Network en créant une copie de paquet
dans place A. Le numéro dans Next Send spécifie quel pacquet est envoyé.
On remarque que le paquet n’est pas supprimé dans Send. La raison est que
le paquet peut être perdu, donc on doit retransmettre.
Notre protocole est pessimiste, dans le sens qu’il continue à répéter le
même paquet jusqu’à il obtient un acquittement qui dit que le paquet a
réusit à recevoir. Transmit Packet transmet un paquet de Sender de Network
à Receiver en plaçant le correspond jeton A à B. L’expression booléene
OK(s,k) determine le paquet est successivement transmis ou perdu. Cette
fonction renvoie la valeur vraie si r ¿= s sinon il renvoie la valeur fausse. C’est
CPN Tool qui va choisir aléatoirement la valeur r, c’est-à-dire la probabilité
de succès de transmission. On donne la valeur 8 à SP, on a 80% chance

25
de succès de la transmission. Il est facile à modifier le taux du succès en
changeant simplement la valeur du jeton dans SP.
Receive Packet reçoit un paquet et vérifie si le nombre n de paquet est
identique au nombre k dans Next Rec,si n est égal à k, k est augmenté de
1 et la chaı̂ne des textes dans le paquet est enchaı̂née à la chaı̂ne des textes
dans le Received et la chaı̂ne reçu n’est pas stop, i.e “#######”(end-
of-message), sinon le paquet est ignoré et le numéro dans Next Rec n’est
pas changé. Dans tous 2 cas un acquittement contient le numéro de paquet
suivante que Sender va envoyer est envoyé.
Transmit Acknowledgement transmet un acquittement de Receiver de
Network à Sender en plaçant le correspondant jeton de C à D. Ce travail est
façon similaire que Transmit Packet. C’est-à-dire le acquittement peut être
perdu avec la probabilité déterminé par le jeton dans la place SA.
Receive Acknowledgment reçoit un acquittement et mis à jours le numéro
dans Next Send en replaçant le valeur ancien à celui contient dans acquit-
tement.
Quand le paquet final (avec “######”) est reçu avec succès par Re-
ceiver, Next Rec contient le valeur 9 (nombre de paquet + 1). Cette valeur
va (via un acquittement) communiquer avec Sender, Next Send va mettre à
jours à 9, et le transmission va terminer car il n’y a pas de paquet ayant ce
numéro. Après quelques pas où les places A, B, C et D sont supprimés pour
paquets/acquittements, le réseau va obtenir le état mourit avec le marquage
final.

4.2 Analyse de l’espace d’état


Il y a quelques questions qui peuvent être répondu par l’espace d’état :
propriétés de Bourné, propriétés d’Home Properties, Vivacité, propriété de
Fairness. il faut transformer un peu le réseau avant d’analyser à cause d’ex-
plosion des noeuds et des arcs de graphe d’occurrence.
Avec le réseau dans Fig. 15, une partie du rapport de résultat : Le rapport

State Space
Nodes : 13058
Arcs : 185503
Secs : 300
Status : Partial

Fig. 14 – la première partie de rapport de résultat

nous indique le Nombre de noeuds d’arbre, Nombre d’arc d’arbre, le temps


de calcul, et qu’il y a seulement une partie d’arc générée (pas tout l’arbre).
On voit que le nombre des noeuds et des arcs est très grand. En effet qu’il

26
est infini car l’élément d’association

(SendP acket, < n = 1, p = ”M odellin” >)

peut se produire infiniment fois.


Donc on va faire 3 changements. Premièrement on réduit le nombre de
paquets de huit à quatre. Deuxièmement on ajoute une nouvelle place Li-
mit pour limiter le nombre de paquets/acquittements qui peut être simul-
tanéiment présent dans le réseau. Et finalement, on ne considère pas le cas
des paquets sont transmis ou perdus avec une certaine probabilité, donc on
remplace la fonction Ok par une variable booléene Ok. Le modèle modifié
de CPN pour le protocole être indiqué dans fig. 15.

INTxDATA 1‘(1,"Modellin")++
1‘(2,"g and An")++
Send "" Received
1‘(3,"alysis##")++
1‘(4,"########") DATA
(n,p)
str
INTxDATA INTxDATA if n=k
Send (n,p) (n,p) Transmit if Ok andalso
A B p<>stop
Packet Packet then 1‘(n,p) (n,p)
else empty then str^p
else str
n n if Ok
e
then empty
1 2‘e else 1‘e 1 k
Receive_
NextSend Limit NextRec
Packet
INT if Ok INT if n=k
E
then empty then k+1
k n e else 1‘e else k if n=k
then k+1
if Ok else k
Receive Transmit_
D then 1‘n Acknow. C
Acknow. n n
else empty
INT INT
Sender Network Receiver

Fig. 15 –

Après avoir calculé l’arbre, on obtient le rapport de résultat. On va


analyser ces informations en détail.
Information statistique On voit que O-graphe a 428 noeuds et 1130 arcs.
propriétés bornés. La deuxième partie du rapport de l’espace d’état
contient des informations sur le nombre entier et le multi-ensemble bondit.
La partie supérieure de fig. 20 montre les limites supérieures et inférieures
de nombre entier, c.-à-d., le nombre maximal et minimal de jetons ce que

27
Statistics
------------------------------------------------------------
State Space
Nodes: 428
Arcs: 1130
Secs: 1
Status: Full

Tab. 1 – Les informations statistiques

les différentes places peuvent avoir. on voit que chacune des places A, B,
C, D, et Limit a toujours entre zéro et deux jetons. On voit également que
NextRec, NextSend, et Received ont toujours exactement un jeton, on voit
que Send a toujours exactement quatre jetons comme prévu.
Les parties plus inférieures de tab. 2f montrent les limites de multi-
ensemble. Par définition, la limite supérieure de multi-ensemble d’une place
est le plus petit multi-ensemble qui est plus grand que tous les marquages
accessibles de la place. De façon analogue, la limite inférieure de multi-
ensemble est le plus grand multi-ensemble qui est plus petit que toutes
les marquages accessibles de la place. Les limites de nombre entier nous
donnent des informations sur le nombre de jetons, alors que les limites de
multi-ensemble nous fournissent des informations sur les valeurs que le jeton
peut porter.
Des limites de multi-ensemble nous voyons que les endroits A et B
peuvent contenir tous les quatre paquets différents, tandis que les endroits
C et D peuvent contenir chacun des quatre acquittements possibles. Parce
qu’un acquittement indique toujours le nombre du prochain paquet à en-
voyer (par conséquent on n’a jamais un acquittement avec la valeur 1).
Propriétés de vivacité et de Home. Troisième partie du rapport concer-
nant propriété de home et de vivacité du protocole. Le home et vivacité sont
très interessants. Il nous indique que le système a exactement un marquage
mortel M235 et il est aussi a home marquage.
Marquage M235 est indiqué suit. Il correspond à la situation ou tous
les quatre paquets sont transmit avec succès. La situation que M 235 est
un marquage mortel nous montre que le protocole est partie correcte - s’il
est terminé il termine avec le résultat correct. La situation que M 235 est un
marquage Home nous montre qu’il a un bonne propriété qu’il ne peut jamais
obtenir un état dont on ne peut pas se produire le marquage final.

28
Boundedness Properties
------------------------------------------------------------
Best Integers Bounds Upper Lower
Top’A 1 2 0
Top’B 1 2 0
Top’C 1 2 0
Top’D 1 2 0
Top’Limit 1 2 0
Top’NextRec 1 1 1
Top’NextSend 1 1 1
Top’Received 1 1 1
Top’Send 1 4 4

Best Upper Multi-set Bounds


Top’A 1 2‘(1,"Modellin")++2‘(2,"g and An")
++2‘(3,"alysis##")++2‘(4,"########")
Top’B 1 2‘(1,"Modellin")++2‘(2,"g and An")
++2‘(3,"alysis##")++2‘(4,"########")
Top’C 1 2‘2++2‘3++2‘4++2‘5
Top’D 1 2‘2++2‘3++2‘4++2‘5
Top’Limit 1 2‘e
Top’NextRec 1 1‘1++1‘2++1‘3++1‘4++1‘5
Top’NextSend 1 1‘1++1‘2++1‘3++1‘4++1‘5
Top’Received 1 1‘""++1‘"Modellin"++1‘"Modelling and An"
++1‘"Modelling and Analysis##"
Top’Send 1 1‘(1,"Modellin")++1‘(2,"g and An")
++1‘(3,"alysis##")++1‘(4,"########")

Best Lower Multi-set Bounds


Top’A 1 empty
Top’B 1 empty
Top’C 1 empty
Top’D 1 empty
Top’Limit 1 empty
Top’NextRec 1 empty
Top’NextSend 1 empty
Top’Received 1 empty
Top’Send 1 1‘(1,"Modellin")++1‘(2,"g and An")
++1‘(3,"alysis##")++1‘(4,"########")

Tab. 2 – Les informations de propriétés bornées

29
Home Properties
------------------------------------------------------------
Home Markings: [235]

Liveness Properties
------------------------------------------------------------
Dead Markings: [235]
Dead Transitions Instances: None
Live Transitions Instances: None

Tab. 3 – propriété d’ Home et Vivacité

5 Conclusion
On a représenté brièvement 2 types de réseau : réseau de Place/Transition
et réseau coloré. Ils sont les représentations mathématiques permettant la
modélisation d’un système. Et l’analyse d’un réseau de Petri peut révéler
des caractéristiques importantes du système concernant à sa structure et
son comportement dynamique.
Les réseaux de Place/Transition a une théorie basé sur une base mathématique
solide, les résultats sont profondeur. Les systèmes étant modélisé par les
réseaux de Place/Transition peuvent être évalué facilement grâce à ces résutats.
Mais avec les applications industrielles, c’est très difficile à être modélisé par
ces réseaux à cause des règles de franchissement trop simple, donc c’est trop
compliqué, on doit peut-être utiliser millier de places et transitions pour une
petite application. Dans ce cas, le réseau coloré est plus raisonable.
Les réseaux colorés ont une définition très compliquée, c’est très diffi-
cile pour les praticiens maı̂trise la syntaxe de réseau. Mais heureusement, il
existe des outils pour éditer les réseaux colorés, vérifier sa syntaxe, vérifier
automatiquement des propriétés comportementales du réseau, etc. Donc, les
praticiens peuvent utiliser le réseau coloré mais ils ne doivent pas apprendre
par coeur les syntaxes. Il est similaire dans le cas du langage, on peut écrire
des programme mais on ne doit pas connaı̂tre toutes les grammaire du lan-
gage.
La relation entre le réseau Place/Transition et le réseau coloré peut
considérer comme relation entre le langage à bas niveau (le langage de ma-
chine, le langage Assembly, etc.) et le langage à haut niveau (Java, C, Pascal,
etc.). Ils ont même capacité de la programmation mais pour les grandes ap-
plications, qui plus conviennent à le langages à haut niveau que celui à bas
niveau.

30
Références
[1] T. Murata, Petri Nets : Properties, Analysis and Application. In : Pro-
ceeding of the IEEE, Vol. 77, No. 4. IEEE Computer Society, 1989
[2] C. Xiong, T. Murata, and J. Tsai, ”Modeling and Simulation
of Routing Protocol for Mobile Ad Hoc networks Using Co-
lored Petri Nets,” Research and Practice in Information Tech-
nology, Vol. 12, pp.145-153, Australian Computer Society, 2002.
(http ://www.jrpit.flinders.edu.au/CRPITVolumeIndex.html)
[3] L.M. Kristensen, S. Christensen, K. Jensen, The Practitioner’s Guide
to Coloured Petri Nets. International Journal on Software Tools for
Technology Transfer, 2 (1998), Springer Verlag, 98-132
[4] K. Jensen : A Brief Introduction to Coloured Petri Nets. In : E.
Brinksma (ed.) : Tools and Algorithms for the Construction and Ana-
lysis of Systems. Proceeding of the TACAS’97 Workshop, Enschede,
The Netherlands 1997, Lecture Notes in Computer Science Vol. 1217,
Springer-Verlag 1997, 203-208.
[5] K. Jensen, An Introduction to the Pratical Use of Colored Petri Nets.
In : Reisig, W., Rozenberg, G. (eds.) : Lectures on Petri nets II, LNCS
1492. Berlin, Heidelberg, New York : Springer Verlag, 1998, pp. 237-292
[6] K. Jensen, An Introduction to the Theoretical Aspects of Coloured Petri
Nets. In : J.W. de Bakker, W.-P. de Roever, G. Rozenberg (eds.) : A
Decade of Concurrency, Lecture Notes in Computer Science vol. 803,
Springer-Verlag 1994, 230-272
[7] J. Peterson, Petri Net Theory and the Modeling of Systems. Prentice
Hall, 1981.
[8] Wolfgang Reisig. Petri Net : An Introtruction. Springer-Verlag, New
York, 1985
[9] G. Rozenberg Introductory Tutorial Petri Nets. 21st International
Conference on Application and Theory of Petri Nets Aarhus, Denmark,
June 26-30, 2000.
[10] Robert Valette, Les Réseaux de Petri. 2000.
[11] Cours de Systèmes Informatiques II (année 2000-2001)
http ://cui.unige.ch/DI/cours/sys2/RdP/00-01/index.html

31

Vous aimerez peut-être aussi