111
François Vernadat INSA-DGEI - LAAS-CNRS [email protected] Mod´ elisation de Syst` emes Concurrents Partie I (R´ eseaux de Petri) 1 / 111

Mod elisation de Syst emes Concurrents Partie I (R …homepages.laas.fr/francois/POLYS/SCpart1.pdf · Introduction aux r eseaux de Petri et a la mod elisation/analyse de syst emes

Embed Size (px)

Citation preview

François VernadatINSA-DGEI - LAAS-CNRS

[email protected]

Modelisation de Systemes Concurrents

Partie I (Reseaux de Petri)

1 / 111

Outline

1 IntroductionSequentiel Vs ConcurrentSysteme Concurrents/ReactifsProprietes types des systemes concurrents/reactifsFormalisation : Modelisation/VerificationOrganisation du Cours

2 / 111

Sequentiel Vs Concurrent

Programme ”Classique” (sequentiel)

Caracteristiques :

Termine

Retourne un resultat

Donnees +/- complexesmais controle sequentiel(”simple”)

Exemples :“Fonctions” (tri, code, calcule,traitement image/signal, trans-forme/compilate, . . . )

Ingredients pour les expri-mer : fonctions/procedures,structures de donnees, struc-tures de controle condition-nelles/iteratives, . . .

Langages : Imperatif, fonction-nel, objet, logique, . . .

Correction = correction partielle + terminaisoncorrection partielle : si le programme termine il fournit un resultat correctterminaison : le programme termine toujours

3 / 111

Systeme Concurrents/Reactifs (> 70)

Caracteristiques :

Σ compose par des processusindependants

Communication,Synchronisation, ....

“partage” de ressources

Σ ne retourne pas de resultat

Terminaison en generalindesiree (deadlock)

Donnees +/- simples maiscontrole concurrent(”complique”)

Exemples :Protocoles de communica-tion, Controle/Commande,Σ-Embarques, . . .

Ingredients pour les expri-mer : etat/transition, non-determinisme, parallelisme,synchronisation, communica-tion, . . .

Formalismes : Machines aetats/Automates commu-nicants, Reseaux de Petri,Algebres de processus . . .

Correction = surete, vivacite, equite, . . .Necessite le plus souvent une analyse exhaustive de l’espace d’etats7→ model-checking

4 / 111

Proprietes types des systemes concurrents/reactifs

Accessibilite- Une certaine situation peut etre atteinte- Chaque action peut avoir lieu

Surete- Quelque chose de mauvais n’arrive jamais

Jamais plus de 2 processus en section critiqueJamais de debordement de buffersLa barriere est fermee lorsqu’un train est sur le passage a niv eau

Vivacite (absence de famine)- Quelque chose de bon finit par arriver

Un processus en attente d’une ressource finir par l’obtenirUn philosophe affame finira par manger

Equite(s)- Si une action peut avoir lieu une infinite de fois alors elle aura lieu une(infinite) de fois, . . .

Vivacite sous condition d’equiteS’il n’y a pas une infinite de pertes, tout message emis - perdu etretransmis - finira par arriver (Alternating Bit Protocol )

5 / 111

Formalisation : Modelisation/Verification

Ingredients

FormalisationM : Modele (formel) du comportement (issu de Rdp, AC, Alg.Proc,..)7→ Permet de decrire l’ensemble de tous les comportements du systeme

φ : Modele (formel) des proprietes (formalisme dedie)7→ Permet de formaliser les exigences a respecter

Verification Model − Checker :Outil de verification permettant de decider si M satisfait φ?

nb : Formel est une condition requise pour envisager l’automaticite

6 / 111

Organisation du Cours

Objectif : Introduction a la Formalisation des Systemes concurrents

Concepts caracteristiques : //, Causalite, non-determinisme,Competition, Synchronisation, Communication(synchrone/asynchrone, signal/passage de valeurs), . . .

Exemples/Problemes Exclusion mutuelle, Lecteurs/ecrivains,Philosophes, Choix distant, Terminaison,Dimensionnement, Controle de flux, Protocoles(token-ring, ouverture/fermeture de connexion)

Modelisation

Comportements : RdP, AC, . . .Proprietes : Proprietes Generales d’accessibilite, (petitapercu) de la logique temporelle)

Verification Algos classiques de Graphe, Techniques des observateurs,Analyse structurelle, Model-checking (petit apercu)

7 / 111

Organisation en 2 parties : RdP et AC

Reseaux de Petri (RdP) :Concepts, Exemples, Modelisation, Composition,Verification (Proprietes des Graphes, Observateurs,Analyse structurelle)

TPs : TINA (Time Petri Net Analyser) www.laas.fr/tina/

Automates Communicants (AC) :Exemples, Protocoles, Composition/Communication,Formalisation de proprietes, Model-checking (utilisation)

TPs : UPPAAL (Uppsala & Aalborg) www.uppaal.org/

Volume : 12 CM + 5 TPsPetri : 6 CM + 2.5 TP + PartielAutomates : 6 CM + 2.5 TP + Partiel

Evaluation : 1 note IE correspondant a deux Partiels (RdP & AC)Documents autorisesTPs non notes mais fort rapport avec les exos traites en partiels

8 / 111

Ordonnancement des 2 parties ?

(Quelques) Contraintes de causalite a respecter :1 Pour chaque partie, 5 CM doivent etre effectues avant de pouvoir

commencer les Tps associes2 On ne peut commencer le cours de la seconde partie que si le cours

de la 1ere est termine et si les Tps de la 1ere partie ont commence3 Les Tps de la premiere partie doivent etre termines avant de

commencer la seconde serie de Tps. . .

Une specification possible en reseaux de Petri

NbPetriCM_A_Faire

RdP-CM

CM_Petri_Faits

CM_AC_Faits

AC-CM

NbCM_AC_Afaire

NbTP_Afaire

DebutPetri_TP

Debut_AC

Debut_AC_TP

3 3

6

TP

55

6 6

PetriTpACTp

Petri : Classiques (incluant valuation des arcs) + priorites, arcsinhibiteurs, read-arc.

9 / 111

L’ensemble de tous les ordonnancements possibles

DebutPetri_TP

6

DebutPetri_TP

RdP-CM8

TP

9

Debut_AC10

TP

RdP-CM11

TP

12

AC-CM13

TP

Debut_AC14

TP

RdP-CM15

TP

16

AC-CM17

TP

AC-CM18

TP

Debut_AC19

TP

RdP-CM20

AC-CM21

TP

AC-CM22

TP

AC-CM23

TP

Debut_AC24

AC-CM25

TP

AC-CM26

TP

AC-CM27

TP

AC-CM28

AC-CM29

TP

AC-CM30

TP

AC-CM31

TP

AC-CM32

AC-CM33

TP

AC-CM34

TP

AC-CM35

TP

AC-CM36

TP

AC-CM37

TP

AC-CM38

TP

AC-CM39

TP

AC-CM40

TP

AC-CM41

AC-CM

TP

42

0

RdP-CM

1

RdP-CM

2

RdP-CM

3

RdP-CM

4

RdP-CM7RdP-CM

5

AC-CM

TP

50 AC-CM

TP

48 AC-CM

TP

46 AC-CM

Debut_AC_TP

44

TP

49

TP

47

Debut_AC_TP

43TP

45

La specification/solution en automates ....

10 / 111

Outline

2 Reseaux de PetriObjectifs/Organisation de la partie Petri

11 / 111

Reseaux de Petri

Historique

1962 These de Carl Adam Petri (RFA)

1970 Travail important (France & RFA)

1980 Conference Annuelle (Springer-Verlag)

Diffusion Mondiale : Universitaire & “Industrielle”http ://www.daimi.aau.dk/PetriNets/ :

Interet

Formalisme Rigoureux (semantique precise)

Expressivite+ Compact (vs machines a etats)(cf ordonnancement des 2 parties de ce cours)+ Concepts : //, Cooperation, Competition, Synchronisation, . . .+ Dualite Etat/Evenement

Possibilite d’Analyse : Structurelle, Exhaustive

Representation Graphique

6= extensions : temporel (temps reel), stochastique (performance), . . .

Nombreux outils (certains couples a des outils/formalismes industriels) 12 / 111

Sur cette partie ....

Objectifs

Introduction aux reseaux de Petri et a la modelisation/analyse de systemesconcurrents

un peu de theorie en CM

un peu de pratique en “TP”

Contenu : Introduction aux Reseaux Place/Transition

Definitions & Concepts de base

Enumeration, Proprietes

Composition

Equation Fondamentale des Reseaux de Petri

Decidabilite de la finitude de l’espace d’etats accessibles

Analyse Structurelle : Invariants

13 / 111

Outline

3 Reseaux Place/TransitionExemple introductifDefinitions GeneralesSemantiqueGraphe des Marquages accessiblesReseaux bornes

14 / 111

C.A Petri : Communication entre automates

Exemple introductif

2 processus (initialement) independants representes par des automates.D

p1

A

p2

B

p4 A1 est initialement en p1, il execute cycliquement A, B puisC pour se reinitialiser.

E

A

p3

D

p1

C

p5

A2 est initialement en p1, il execute A puis C et arrive enp5. Il peut executer E et revenir en p3 ou choisir de faire Det de se reinitialiser.

Quizz :

On veut contraindre A1 et A2 a commencer (action A) et a finir (action F)

ensemble. Quel sera le comportement global ?

Reseaux de Petri

D

p1

A

p2

B

p4

D

p1

A

p3

p5

C

E

A2 & A2

=Synchronisation⇒ p2

A

CB

p3

E

p5

p1

p4

D

15 / 111

Reseau Place/Transition

Definition Reseau Place/Transition

R =< P,T ,Pre,Post > ou

P est un ensemble fini de Places

T est un ensemble fini de TransitionsP ∩ T = ∅

Pre : P × T 7→ IN incidence avant

Post : P × T 7→ IN incidence arriere

Graphiquement

p2

A

CB

p3

E

p5

p1

p4

D

Marquage / Reseau Marque

Le reseau donne les regles defonctionnement du systeme, le marquagedonne l’etat du systeme

MarquageM : P 7→ IN (M ∈ INP)M(p) denote le marquagede la place p

Reseau marque N =< R,M >

... avec le marquage

p2

A

CB

p3

E

p5

p1

p4

D

16 / 111

Definition Alternative

Systeme d’addition de vecteursR =< P,T > ou

P est un ensemble fini de Places

T est un ensemble fini de TransititionsT ⊂ INP × INP

notations t ∈ T = (•t, t•)

p2

A

CB

p3

E

p5

p1

p4

D

Exemple

T = A,B,C ,DA B C D E

(

10000

,

01100

) (

01000

,

00010

) (

00100

,

00001

) (

00011

,

10000

) (

00011

,

10000

)

Remarques

Avec cette definition equivalente, les pre (•t) et post (t•) conditionsd’une transition ont le meme type qu’un marquage : •t, t•,M ∈ INP

17 / 111

Semantique des reseaux Place-Transition

Semantique

La semantique precise comment le modele evolue :- Quelles actions (transitions) sont possibles (sensibilisees) en fonction de letatdu systeme (marquage) ?

- Quel est l’effet d’une action (du tir d’une transition) sur l’etat du systeme

(marquage) ?

Sensibilisation d’une transition

Une transition t(•t, t•) est sensibilisee pour le marquage M ssi M ≥• t

On le note Mt→

Tir d’une transition (franchissement)

Soit t une transition et M un marquage tel que M[t >alors le tir de t a partir de M conduit en M ′ defini par : M ′ = M −• t + t•

On le note Mt→ M ′

Remarques

+ •t est le marquage minimum permettant de franchir t

+ t• est le marquage minimum atteint apres avoir franchi t

18 / 111

Exemples de sensibilisation/tir

Exemple de Sensibilisation

< N,M0 >

p2

A

CB

p3

E

p5

p1

p4

D

SensibilisationM0 ≥• A

donc M0A→

M0 =

10000

, •A =

10000

Exemple de Tir

TirM0

A→ M1

M1 = M0 −• A + A•A• =

01100

M1 =

01100

< N,M1 >

p2

A

CB

p3

E

p5

p1

p4

D

19 / 111

Non determinisme

< N,M1 >

p2

A

CB

p3

E

p5

p1

p4

D

M1B→ et M1

C→M1 ≥• BM1 ≥• C

M1•B •C

01100

01000

00100

Parallelisme (structurel/effectif)

Deux transitions t, t′ sont paralleles ssi •t ⊗• t′ = ~0ou (~v ⊗ ~v ′)(p) =Def ~v(p)× ~v ′(p) (∀p ∈ P)

Ici : B et C sont paralleles et pour M1, le parallelisme est effectif

Conflict (dual du parallelisme)

Deux transitions t, t′ sont en conflict ssi •t ⊗• t′ 6= ~0

20 / 111

Exemple de Parallelisme

M1B→ M2

M1C→ M3

Comme B//C

On a M3B→ et M2

C→De plus

M3C→ M4 et M3

B→ M4

< N,M2 >

p2

A

CB

p3

E

p5

p1

p4

D

< N,M3 >

p2

A

CB

p3

E

p5

p1

p4

D

< N,M4 >

p2

A

CB

p3

E

p5

p1

p4

D

Exemples de Conflict

< N,M4 >

p2

A

CB

p3

E

p5

p1

p4

D

M4D→ et M4

E→mais M4 6

D.E→et M4 6

E .D→M4

D→ M0 (et M0 6E→)

M4E→ M2 (et M2 6

D→)D et E sont en conflict enM4

< N,M0 >

p2

A

CB

p3

E

p5

p1

p4

D

< N,M2 >

p2

A

CB

p3

E

p5

p1

p4

D

21 / 111

Comportement d’un RdP (intuition)

M1

M0p1

M2p3p4M3 p2p5

M4 p4p5

A

BC

C B

E

D

E

p2p3

M0 M1 M2 M3 M4

10000

01100

00110

01001

00011

p1 p2p3 p3p4 p2p5 p4p5

22 / 111

Graphe des Marquages accessibles

Ensemble des Etats Accessibles : A(R,m0)

A0 = m0Ai = m ∈ INP/∃p ∈ Ai−1, ∃t ∈ T : p[t > mA(R,m0) =

⋃i≥0 Ai

Rien n’assure la convergence de la suite ! A(R,m0) peut etre infini

Graphe des Etats Accessibles : G (R,m0)

G(R,m0) =< A(R,m0),→, L > ou

A(R,m0) : ensemble des sommets

→ : la relation de transition est le plus petit ensemble verifiant :

(m1, t,m2) ∈→ ssi m1,m2 ∈ A(R,m0), t ∈ T et m1[t > m2

L : ensemble des labels de transition :

L ⊂ T defini par t ∈ L ssi m1[t > m2

Langage associe a un reseau L(R,m0)

L(R,m0) = σ ∈ T ∗ : m0σ→

23 / 111

Semi-algortihme de calcul de G (R ,m0)

semi-algorithme : car rien n’asssure la terminaison

Semi-Algorithme

– 1. Initialisation :Stack ← ∅ ; push m0 into StackA(R,m0)← ∅ ; enter m0 in A(R,m0)

– 2. Exploration :while Stack 6= ∅

loop pop(q) from stackTS ← t ∈ T : q [ t > ;∀t ∈ TS do

q [ t > q′;if q′ 6∈ A(R,m0)

then enter q′ in A(R,m0); put q′ onto Stackenter (q, t, q′)in →

24 / 111

Exercice : Calcul de G (N ,M0)

nb : les arcs de N sont values

< N, n0 >

24

X

2Y

C

5

A B

3

5

5

2

3

Q1 : Completez la description des transitions(•t, t•)

m0

42

X 4Y 2

A B C

(50,

23

) (21, ) ( , )

Q2 :Explorationde X 4Y 2

X 4Y 2 6 A→X 4Y 2 B→ X 2Y 4

X 4Y 2 C→ ?

Q3 :Explorationde X 2Y 4

X 2Y 4 A→ ?X 2Y 4 C→ ?X 2Y 4 B→ ?

Suite

Q4 : Explorez X 0Y 6

Q5 : Explorez X 5Y 1

Q5 : Explorez X 3Y 3

Q6 : Finissez laconstruction du graphe

25 / 111

Reseaux bornes

Quizz : Soit le reseau < IN, [0] >

Suc p0

Q1 : A-t-on [0]Suc→ ?

Q2 : l’ensemble des marquages de ce reseau est-ilfini ?

Reseau borne

Un reseau marque < N,M0 > est borne ssi

∃b ∈ IN : ∀p ∈ P, ∀M ∈ A(N,M0) : M(p) ≤ b

Un exemple de reseau 6-borne

< N, n0 >

24

X

2Y

C

5

A B

3

5

5

2

3

G < N, n0 >

A

B

1 X*2Y*4

0 X*4Y*2

B

2 Y*6C3

X*5Y

C

6

X*6

B

5 X*5Y

A

B

4 X*3Y*3

26 / 111

Reseau structurellement borne

Un reseau N structurellement borne ssi ∀m0 ∈ INP < N,m0 > est borne

Exemple de reseau structurellement borne

24

X

2Y

C

5

A B

3

5

5

2

3

Le nombre global de jetons dans le reseauest invariant quel que soit le marquage ;chaque transition modifie uniquement lalocalisation des jetons dans les placesmais laisse leur nombre inchange.

Plus petit reseau non borne : < IN, [0] >

Suc p0Il permet de generer INIl est meme structurellement non borne

En general, la propriete bornee depend du marquage initial (cf reseau G )

t3

t2

t1

p1p0

p2 p3

Trouvez la condition la plus generalesur m0 pour que :< G ,m0 > soit borne< G ,m0 > soit non borne

27 / 111

Reseaux bornes et Finitude de l’espace d’etats

Propriete : G (R,m0) est fini ssi < R,m0 > est borne

(⇒) Soit b = Max(m) pour m ∈ A(R,m0)ou Max(m) = max(m(p)) pour p ∈ P< R,m0 > est b-borne

(⇐) Soit b la borne de < R,m0 >alors A(R,m0) ⊂ [0, b]P qui contient (b + 1)|P| elements

A(R,m0) et G(R,m0) sont donc finis

Propriete

La finitude de l’espace des etats accessibles - et ce qui revient au meme - lapropriete k-borne sont decidables

nb : Tres important pour adresser des problemes de “dimensionnement”

7→ Arbre/Graphe de couverture [Karp& Miller 1969]

Construction “vue” plus tard

28 / 111

Outline

4 Exemples de modelisation en RdpUne histoire de pontJournee d’un planteur de bananesForme textuelle PetriPiscine

29 / 111

Une histoire de pont

Enonce

Un groupe de 4 personnes (A,B,C,D) se situe sur la rive gauche d’un fleuve etdoit se rendre sur la rive droite.Pour ce faire, ils doivent emprunter un pont mal eclaire qui ne peut supporterqu’une charge de deux personnes. Le groupe dispose d’une seule lampe depoche. Chaque traversee du pont necessite la possession de la lampe. Il estdonc necessaire de ramener la lampe de l’autre cote pour permettre unenouvelle traversee.Les 4 personnes marchent a une vitesse differente. Les temps de traversee pourchacun des individus est respectivement de 10 min pour A, 5 min pour B, 2min pour C et 1 min pour D.

Question : Quel est le temps minimal pour faire passer les 4 personnes sur larive droite ?

30 / 111

Principe de la modelisation

Les Places

- “booleens” : Lg, Ag, Bg, Cg, Dg, Lg, Ag, Bg, Cg, Dgindiquant la localisation (gauche/droite) des personnes et de la lampe.Initialement : Lg Ag Bg Cg Dg- “compteur” : Temps permet de cumuler le temps ecoule depuis le debut

Initialement : Temps*0

Les Transitions

6 transitions de la forme XYL2R representant le passage de gauche a droite(L2R) des personnes X et Y. Il faut que la lampe ainsi que X et Y soient agauche, ils sont a droite apres le tir. Le temps de la traversee (le max desdurees de passage) est ajoute a Temps.

4 transitions de la forme YR2L representant le retour (R2L). Il faut que lalampe et Y soient a droite. Ils sont a gauche apres le tir. Le temps de traverseede Y est ajoute a Temps.

1 transition stop materialisant la fin du “calcul”

31 / 111

Modelisation

Un modele (perfectible) possible

ABL2R

ACL2R

ADL2R

AR2L

BCL2R

BDL2R

BR2L

CDL2R

CR2L

DR2L

stop

AgAd

Temps

LdLg

Bg Bd

Cg

Cd

DgDd

fin

101010

10

5

5

5

2

2

Proprietes attendues

Ici on a un modele de calcul ( !)Terminaision : atteindre inevitablement un deadlock

Correction partielle : tous les etats de deadlock doivent marquer la place Fin32 / 111

Resultat de l’analyse

Le comportement (graphe des marquages)

0ABL2R

1ACL2R

2

ADL2R

3

BCL2R4

BDL2R5

CDL2R

6

AR2L

7

BR2L8

AR2L

9

CR2L10

AR2L

11

DR2L12

BR2L13

CR2L

14

BR2L15

DR2L

16

CR2L

17

DR2L

18

ACL2RABL2R

19

ADL2R

ABL2R

20 CDL2R

21

BCL2R

ABL2R

22BDL2R

ABL2R

23

CDL2R

24

ADL2RACL2R

25

BDL2RBCL2R26

BCL2R

ACL2R

27

BDL2R

ADL2R

28

CDL2R

ACL2R29

BCL2R

ACL2R

30

BDL2R

ADL2R

31

CDL2R

ADL2R32

ADL2RACL2R

33

BDL2RBCL2R34

CDL2R

BCL2R35

CDL2R

BDL2R36

ABL2R

37

ABL2R

38

AR2L

39

BR2L40

CR2L

41

AR2L

42

BR2L43

DR2L

44

BR2L

AR2L

45

CR2LAR2L

46

DR2LAR2L

47

AR2L

48

BR2L49

CR2L

50AR2L

51

BR2L52

DR2L

53

CR2L

BR2L54

DR2L

BR2L55

AR2L

56

CR2L

57

DR2L58

BR2L

AR2L

59

CR2L

AR2L

60

DR2L

AR2L

61 AR2L

62

BR2L63

CR2L

64

BR2L

CR2L

65

DR2LCR2L

66

AR2L

67

CR2L

68

DR2L69

BR2L

DR2L70

AR2L

71

BR2L72

DR2L73

AR2L

74

CR2L75DR2L

76

BR2L77

CR2L78

DR2L79

BR2L80

CR2L

81

DR2L82BR2L

83

CR2L84

DR2L85

DR2LCR2L

86

ADL2RACL2RABL2R

87

BDL2RBCL2R

ADL2RACL2R

ABL2R

88

CDL2RACL2R

ABL2R

89

CDL2R

ADL2R

ABL2R

90

ABL2R

BCL2R

ACL2RADL2R

91

BDL2RBCL2R

ABL2R

92

CDL2R

BCL2RABL2R93

CDL2R

BDL2R

ABL2R

94

BDL2R

ADL2RACL2R

95

BDL2RBCL2R

ACL2R

96

CDL2R

BCL2R

ACL2R

97

CDL2R

BDL2RBCL2RADL2R

ACL2R

98

BDL2RBCL2R

ADL2R

99

CDL2R

BDL2R

ADL2R

100

CDL2R

101

AR2L

102BR2L

103

CR2L

104

DR2L

105

stop

106

AR2L107

BR2L108

CR2L

109

DR2L110stop111

AR2L

112BR2L

113

CR2L

114

DR2L

115

stop

116

AR2L

117

BR2L

118

CR2L

119DR2L

120

stop

121

AR2L

122BR2L

123CR2L

124

DR2L

125stop

126

AR2L127BR2L128

CR2L129

DR2L130 stop131

AR2L132

BR2L

133CR2L

134

DR2L135

stop136

AR2L

137

BR2L138

CR2L

139

DR2L

140stop

141

AR2L

142

BR2L

143

CR2L

144DR2L

145

stop146

AR2L147BR2L148

CR2L149

DR2L150

stop151

AR2L152

BR2L153

CR2L

154

DR2L

155

stop

156

AR2L157

BR2L158

CR2L159

DR2L160

stop161

AR2L162

BR2L163 CR2L164

DR2L165

stop166

AR2L

167

BR2L168

CR2L169

DR2L

170

stop171

AR2L

172

BR2L

173

CR2L

174

DR2L

175stop

176

Taille : 177 marquages, 237 transitions

Borne, Bloquant (et c’est tant mieux !)

Le systeme se bloque inevitablement (terminaison)

Le systeme peut etre bloque sans marquer la placeFin (pas de correction partielle)

Temps minimal de Traversee : 17

Une analyse des “etats termi-naux” permet de recuperer les 6=temps de “transit”

Temps d’execution possibles :17, 19, 20 , 21, 23, 24, 26, 27,30, 33, 34, 36, 37, 40, 50

Traversee en 17 u.t

Passage de C et D 2 minRetour de C 4 min

Passage de A et B 14 minRetour de D 15 min

Passage de C et D 17 min

33 / 111

Exemple de Reseau non borne

Journee d’un planteur de bananes

Le planteur est initialement au champ ou il cueille des bananes (en quantite

suppose infinie). Il cesse son travail et se met a table pour manger quelques

bananes. A la fin du repas, il passe au jardin et jette quelques unes des peaux

de bananes mangees. Il part ensuite dormir.

(Un) reseau possible

rentre

leve

dort

cueille

mange

jette

champ

table

jardin

banane

peau

Son arbre de couverture

0

1 2

3 4

5 7

8

cueille rentre

cueille

rentre leve

levedort

dort

mange

mange

6

jette

leve

9

dort

10

AC : Sur-approximation ducomportement du planteur

34 / 111

Forme textuelle Petri

planteur.ndr

rentre

leve

dort

cueille

mange

jette

champ

table

jardin

banane

peau

planteur.net

pl champ (1)

tr rentre champ -> table

tr leve table -> jardin

tr dort jardin ->

tr cueille champ -> champ banane

tr mange table banane -> table peau

tr jette peau jardin -> jardin

pl champ (1)

# Commentaire

Remarques

2 mots-cles pl et tr et un separateur ->pl pour declarer le marquage initial specifique d’une place (0 par defaut)

Les places ne sont pas declareestr pour declarer les transitions :tr nom pre-conditions* -> post-conditions*

Ordre des declarations n’a pas d’importance 35 / 111

Le pont en textuel

pont.ndr

ABL2R

ACL2R

ADL2R

AR2L

BCL2R

BDL2R

BR2L

CDL2R

CR2L

DR2L

stop

AgAd

Temps

LdLg

Bg Bd

Cg

Cd

DgDd

fin

101010

10

5

5

5

2

2

Format textuel pont.net

tr ABL2R Lg Bg Ag -> Ld Bd Temps*10 Ad

tr ACL2R Lg Cg Ag -> Ld Cd Temps*10 Ad

tr ADL2R Lg Dg Ag -> Ld Dd Temps*10 Ad

tr BCL2R Lg Cg Bg -> Ld Cd Temps*5 Bd

tr BDL2R Lg Dg Bg -> Ld Dd Temps*5 Bd

tr CDL2R Lg Dg Cg -> Ld Dd Temps*2 Cd

tr AR2L Ad Ld -> Temps*10 Ag Lg

tr BR2L Bd Ld -> Temps*5 Bg Lg

tr CR2L Cd Ld -> Temps*2 Cg Lg

tr DR2L Dd Ld -> Temps Dg Lg

.../...

.../...

tr stop Dd Cd Bd Ad -> fin

pl Ag (1)

pl Lg (1)

pl Bg (1)

pl Cg (1)

pl Dg (1)

net pont36 / 111

Piscine

Enonce

Une piscine comporte c cabines pour se changer et p paniers pour deposer sesvetements.- On n’entre dans le piscine que si une cabine est libre. On attend un panierpour se changer et deposer ses vetements. On libere la cabine et on penetredans le bassin.

- On ne quitte le bassin que si une cabine est libre. On se change et on restitue

cabine et panier. On quitte la piscine.

Un modele possible

x6

7

x3

x7

7

T4T3

x4

T5

x5

T6

x1

T1

x2

public

1K

T2

37 / 111

Piscine : Legende du reseau

x6

7

x3

x7

7

T4T3

x4

T5

x5

T6

x1

T1

x2

public

1K

T2

T1 : le client entre a la piscine(si ∃ cabine libre (x6))

T2 : le client se deshabille(si ∃ panier libre (x7))

T3 : le client penetre dans le bassin(et restitue la cabine (x6))

T4 : le client quitte le bassin(si ∃ cabine libre (x6))

T5 : le client s’habille(et restitue le panier (x7))

T6 : le client quitte la piscine.

x1 : client en attente d’un panierx2 : client se deshabillex3 : client dans le bassinx4 : client s’habillex5 : client habille pret a sortirx6 : Compteur de cabines libresx7 : Compteur de paniers libres

38 / 111

Piscine : Le systeme peut-il se bloquer ?

Graphe des marquages pour c = p = 2

Graphe : 32 marquages, 57 transitions

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

21

22

23

24

25

26

27

28

29

30

31

20

T6

T6

T5

T6

T6

T4

T1

T6

T6

T3

T6

T5

T6

T2

T6

T4

T1

T5

T5

T6

T3

T5

T4

T1

T4

T1

T6

T2

T5

T3

T4

T1

T3

T6

T1

T5

T2

T2

T4

T3

T1

T5

T1

T4

T2

T1

T3

T4

T1

T3

T2

T3

T1

T2

T2

T1

T1

1 seul etat de Blocage : x1(2) x3(2)

Explosion combinatoire

Pour n = k = 10 7→ 7006 marquages, 28885 transitionsPour n = k = 15 7→ 38759 marquages 178703 transitionset toujours un seul etat de blocage ....

39 / 111

Outline

5 CompositionComposition & CommunicationCommunication Asynchrone & SynchroneAsynchrone Vs SynchroneProbleme du choix distant

40 / 111

Composition (produit) des reseaux de Petri

Objectif de la composition

Base : Pouvoir construire des systemes complexes a partird’elements plus simples.

Graal : Pouvoir deduire des proprietes des composants, unepropriete de la composition

Composition de Petri

Mecanisme de base : FusionFusion de Places et de Transitionsnb : Specification des elements fusionnes sera vue ulterieurement !

Composition Petri Vs Automates

Automates : Fusion de transitionsPetri : Analytique / Automates : Enumerative

41 / 111

Fusion de places

Graphiquement

On compose les reseaux en fusionnant les places MessageEnTransit

AprèsEnvoi

!mes

MessageEnTransit

AvantEnvoi

XAprèsRéception

?mes

AvantRéception

MessageEnTransit

=

AprèsEnvoi

!mes

MessageEnTransit

AvantEnvoi

AprèsRception

?mes

AvantRception

42 / 111

Fusion (produit) de transitions

Graphiquement

T0

P0 P2

P1

2

P3

X TO'

P0P4

P3 P2

= T0XTO'

P0

P1 P3

P4

P22

3

Analytiquement

Pour t = (•t, t•) et t ′ = (•t ′, t ′•), t⊗ t′ =Def (•t +• t ′, t• + t ′•)

Application :

TO = (

10100

,

01020

), TO ′ = (

10001

,

00110

) et TO ⊗ TO ′ = (

20101

,

01130

)

43 / 111

Composition & Communication

Fusion

2 modes de composition dans les reseaux de Petri

Fusion de placesPermet en general de modeliser la communication asynchrone :

L’emission du message precede sa receptionReception peut-etre bloquante

Fusion de transitionsPermet en general de modeliser la communication synchrone(rendez-vous) :

L’emission et la reception du message sont simultanesReception et Emission peuvent-etre bloquantes

44 / 111

Communication

Asynchrone

AprèsEnvoi

!mes

MessageEnTransit

AvantEnvoi

X

AprèsRéception

?mes

AvantRéception

MessageEnTransit

=

AprèsEnvoi

!mes

MessageEnTransit

AvantEnvoi

AprèsRception

?mes

AvantRception

L’emission precede la receptionL’emission est toujours possible, la reception peut etre bloquante.

Synchrone

AprèsEnvoi

!mes

AvantEnvoi

X

AprèsRéception

?mes

AvantRéception

=

AprèsRéception

!mes x ?mes

AprsEnvoi

AvantRéceptionAvantEnvoi

Emission et reception sont simultanees (cf rendez-vous)L’emission devient potentiellement bloquante.

45 / 111

Communication Asynchrone Vs Synchrone

Asynchrone simule par du Synchrone

AprèsEnvoi

!mes

AvantEnvoi

X !mes

MessageEnTransit

?mes X

AprèsRéception

?mes

AvantRéception

= ? ?

Asynchrone Vs Synchrone

On peut toujours simuler de l’asynchrone via du synchrone, mais lareciproque est fausse !En Uppaal, la communication de base est synchrone et on simulera lacommunication asynchrone via l’astuce ci-dessus.

Le controle d’un systeme concurrent/communiquant est notoirement plussimple en synchrone qu’en asynchrone, mais il n’est pas realiste de fairecommuniquer des entites distantes par rendez-vous !

46 / 111

Probleme du choix distant

Enonce

Deux entites distantes, Left et Right, peuvent communiquer par deuxcanaux a et b : Left emet sur a et recoit sur b tandis que Right emetsur b et recoit sur a.

SpecificationLeft

IdleL

ReinitL

?b?b!a

toInit

RightIdleR

ReinitR

?a!b

toInit

Probleme : Mettre en place un protocole permettant aux deux entites decommuniquer : Tout message emis doit etre inevitablement recu !

47 / 111

Choix distant synchrone !

IdleL

ReinitL

?b?b!a

toInit X

IdleR

ReinitR

?a!b

toInit

=

IdleR

ReinitR

RdvA

IdleL

toInitLtoInitRRdvB

ReinitL

Analyse

RdvB

RdvA1

toInitL

3

toInit

2

toInit

toInitL

0

Par construction : tout message emisest simultanement recu : Il y a doncbien communication entre les deuxentites

PB : Le rendez-vous entre deux sites distants n’est pas realiste.Defi : Disposer d’une implantation asynchrone permettant d’offrir lememe service (fonctionnement equivalent)

48 / 111

Choix distant asynchrone (V0)

Communication par envoi de message

AprèsEnvoi

!mes

AvantEnvoi

X !mes

MessageEnTransit

?mes XAprèsRéception

?mes

AvantRéception

=

AprèsEnvoi

!mes

MessageEnTransit

AvantEnvoi

AprèsRception

?mes

AvantRception

Mise en oeuvre (en textuel)

Pour TINA, en textuel (format .net), les transitions possedant le meme nomsont fusionnees. Il y a d’autres modes plus evolues (format .tpn vu en TP)

net left

tr ?b IdleL -> ReinitL

tr !a IdleL -> ReinitL

tr toInitL ReinitL -> IdleL

pl IdleL(1)

net right

tr ?a IdleR -> ReinitR

tr !b IdleR -> ReinitR

tr toInitR ReinitR -> IdleR

pl IdleR(1)

net LeftToRight

tr !a -> LtoR

tr ?a LtoR ->

net RightToLeft

tr !b -> RtoL

tr ?b RtoL ->49 / 111

Composition de base dans TINA (transitions)

Utilisation basique de .tpn

# fichier cdasy.tpn

source left.net

source right.ndr

source LeftToRight.net

source RightToLeft.net

# on peut mixer :

# textuel (.net)

# graphique (.ndr)

# ou encore (.tpn)

# cdasy.net automatiquement obtenu

tr !a IdleL -> LtoR ReinitL

tr !b IdleR -> ReinitR RtoL

tr ?a IdleR LtoR -> ReinitR

tr ?b IdleL RtoL -> ReinitL

tr toInitL ReinitL -> IdleL

tr toInitR ReinitR -> IdleR

pl IdleL (1)

pl IdleR (1)

En graphique : cdasy.ndr

IdleR toInitR

LtoR

!a ?a

!bIdleLtoInitL ?b

RtoL

ReinitLReinitR

50 / 111

Analyse (via le graphe de couverture)

Caracteristiques generales

Non borne – Places LtoR et RtoLA part ca : Non bloquant, Reinitialisable, Vivant ....

Exploration Partielle

!a

1

toInitR

toInitL0

?b?a

4

!b

2

toInitR

10

toInitL

9

!a!b

3

!a

21

!b

20

toInitR

6

toInitL

7

toInitLtoInitR

18

toInitR

8

toInitL

5

Il peut y avoir communication0:!a->1:?a->4

Mais ce n’est pas obligatoire !0:!a->1:b!->3:toInL->7:toInR->18

montre que l’on peut avoirune infinite d’emissions sansqu’il y ait aucune reception

Suite en TP UPPAAL

Controle de flux (Accuse de reception) : borne mais interblocageSolutions : Priorite, Tirage au sort, . . . 51 / 111

Outline

6 Proprietes generales des ReseauxBloquantReinitialisable / propreQuasi-vivaciteVivaciteInfiniment actifLien entre ces differentes proprietesDecision des proprietes generales via les CFC

52 / 111

Proprietes generales d’accessibilite

Blocage / Deadlock / Puits

N est sans blocage ssi ∀m ∈ G(R,m0), ∃t ∈ T : m[ t >

N#1 : Exemple de reseau non bloquant

p2

A

CB

p3

E

p5

p1

p4

D

M1

M0p1

M2p3p4M3 p2p5

M4 p4p5

A

BC

C B

E

D

E

p2p3

N#2 : Exemple de reseau bloquant

t0

?in

p1

t2

Perte

t1

!out

p0

2

Epsilon

0

p0

1

p1

t2t1

t0

53 / 111

Reinitialisable (propre)

N est Reinitialisable (propre) ssi ∀m ∈ G(R,m0),∃ω ∈ T+ : mω→ m0

nb : ω ∈ T+ impose que ω soit non nulle

N#1 : reseau propre

p2

A

CB

p3

E

p5

p1

p4

D

M1

M0p1

M2p3p4M3 p2p5

M4 p4p5

A

BC

C B

E

D

E

p2p3

N#2 : reseau non propre

t0

?in

p1

t2

Perte

t1

!out

p0

2

Epsilon

0

p0

1

p1

t2t1

t0

54 / 111

Quasi-vivacite

1 Une transition t est quasi-vivante ssi ∃m ∈ G(R,m0) : mt→

2 Le reseau est quasi-vivant si chacune de ses transitions est quasi-vivante.

Un transition non vivante est dite morte

N#2 : reseau quasi-vivant

t0

?in

p1

t2

Perte

t1

!out

p0

2

Epsilon

0

p0

1

p1

t2t1

t0

N#3 : Reseau non quasi-vivant : transition PB-mutex morte

Idle1

CS1

take1 Semaphore take2

Idle2

CS2

Lib2Lib1

PB-Mutex

Lib2Lib1

0

Idle1 Semaphore Idle2

take1

1

Idle2 CS1

take2

2

Idle1 CS2

nb : le fait que pb-mutex soit morte permet de verifier la proprieted’exclusion mutuelle (principe de verification par la methode desobservateurs) 55 / 111

N est Vivant

1 Une transition t est vivante ssi ∀m ∈ G(R,m0) : ∃ω ∈ T ∗ : mω.t→

2 Le reseau est vivant si chacune de ses transitions est vivante.

Un transition non vivante est dite non vivante ( !)

N#4 : reseau non reinitialisable mais vivant

24

X

2Y

C

5

A B

3

5

5

2

3

1

0

23

6 5

4

B

B

C

A

B

B

C

A

N#2 : Reseau quasi-vivant, bloquant et non vivant

t0

?in

p1

t2

Perte

t1

!out

p0

2

Epsilon

0

p0

1

p1

t2t1

t0

N#5 : quasi-vivant,non bloquant, aucune transition vivante

t1 t3

p0

t0

p1p3

t2t3 t0

1 0 t2t1

2

56 / 111

Infiniment actif

Un reseau est infiniment actif ssi ∀k ∈ IN, ∃σ ∈ TK : mσ→

Le reseau admet au moins une sequence de franchissement infinie.

N#2 : Reseau bloquant et infiniment actif

t0

?in

p1

t2

Perte

t1

!out

p0

2

Epsilon

0

p0

1

p1

t2t1

t0

N#6 : Reseau non infiniment actif

t0 t1

p1

10

p0

0

t0

1

t1

2

t0

3

t1t0

4

t1

5

t0

6

t1t0

7

t1t0

8

t1

9

t0

10

t1t0

11

t1t0

12

t1

t0

13

t1

14

t0

15

t1t0

16

t1t0

17

t1t0

18

t1t0

19

t1

20

t0

21

t1t0

22

t1t0

23

t1t0

24

t1t0

25

t1

t0

26

t1

27

t0

28

t1t0

29

t1t0

30

t1t0

31

t1t0

32

t1

t0

33

t1

t0

34

t1

35

t0

36

t1t0

37

t1t0

38

t1t0

39

t1t0

40

t1

t0

41

t1

t0

42

t1

t0

43

t1

44

t0

45t1

t0

46

t1t0

47

t1t0

48

t1t0

49

t1t0

50

t1

t0

51

t1

t0

52

t1

t0

53

t1

54

t0

55

t1

t0

56t1

t0

57

t1t0

58

t1t0

59

t1t0

60

t1

t0

61

t1

t0

62

t1

t0

63

t1

t0

64

t1

65

Toutes les sequences sont de longueur bornees (ici par 10)57 / 111

Lien entre ces differentes proprietes

Reinitialisable ⇒ Sans blocage

Vivant ⇒ Sans blocage

Reinitialisable et Vivant sont sans rapportN#4 est vivant sans etre reinitialisableN#3 est reinitialisable sans etre vivant

Reinitialisable + Quasi-Vivant ⇒ Vivant

Sans blocage ⇒ Infiniment actifReciproque fausse (cf N#2)

Pas de rapport entre Infiniment actif et quasi-vivacite, vivacite, propre

Pas de rapport entre borne et bloquant, quasi-vivacite, vivacite, propreReseau N#7 est non borne et contient une infinite d’etats de blocage

Non borne ⇒ Infiniment actifReciproque fausse (par ex N#2)

Reseau N#7 : non borne et avec une infinite de deadlocks

p0

t0 t1

p1A(N#7, p0.p1) =p0.p1k : k ∈ IN ∪ p1k : k ∈ IN

p1k : k ∈ IN contient les deadlocks

58 / 111

Decision des proprietes generales via les CFC

(Rappels) Composantes fortement connexes (CFC/SCC)

Etant donne un graphe oriente G =< S ,→>

1 C ⊂ S est une composante fortement connexe de G ssi C est unsous-ensemble maximal verifiant : u, v ∈ C alors ∃σ1, σ2 ∈ T ∗ : u

σ1→ v etvσ2→ u

2 Les CFC forment une partition du graphe et induisent une relationd’equivalence ∼cfc : s ∼cfc q ssi s et q appartiennent a la meme CFC.

Sur l’ exemple S/∼cfc = a, b, e, c, d , h, f , g3 On peut “ quotienter” le graphe initial (G =< S ,→>) pour obtenir le

graphe quotient des CFC : G/∼cfc=< S∼cfc ,→∼cfc> defini par :S∼cfc = S/∼cfc et →∼cfc = (s, q) ∈→: s 6∼cfc q

2

c,d,h

1

f,g

0

a,b,e

4 Une cfc est “pendante” ssi ∀e ∈ cfc, e → q ⇒ q ∈ cfcf , g est pendante

5 Une cfc est “triviale” ssi elle est reduite a un point et ne contient pas deboucle. 59 / 111

Decision de (certaines) proprietes generales via les CFC

Soit < R,m0 > un reseau borne :

1 < R,m0 > est bloquant ssi G(R,m0)/∼cfc contient au moins une cfcpendante triviale.

2 < R,m0 > est propre ssi G(R,m0)/∼cfc contient une seule cfc.

3 < R,m0 > est infiniment actif ssi G(R,m0)/∼cfc contient au moins unecfc non triviale.

4 < R,m0 > est vivant ssi chaque cfc pendante de G(R,m0)/∼cfc contienttoutes les transitions.

nb : les cfc n’apportent pas de reponse sur la quasi-vivacite ou sur le caractere

borne

Retour sur N#4

24

X

2Y

C

5

A B

3

5

5

2

3

- 3 cfc donc N#4 n’est pasreinitialisable- chaque cfc pendante (il n’ yen a qu’une) contient toutes lestransitions : N#4 est vivant- 2 cfc non triviales donc N#4est infiniment actif

60 / 111

Reseau N#0

Ceci est un reseau constitue par uneunique transition (pas de place)

t0

Exercice : Completez le tableau suivant

N #0 #1 #2 #3 #4 N#5 #6 #7

Bloquant

Reinitialisable

Quasi-Vivant

Vivant

Infiniment Actif

Borne

61 / 111

Outline

7 Decision de la propriete K BorneQuelques rappelsCaracterisation des reseaux Infiniment actifsCaracterisation des reseaux non bornesArbre de couvertureAlgorithme de Karp & Miller

62 / 111

Quelques rappels ....

Reseau borne

Soit < N,M0 > un reseau marque

1 Une place p ∈ P est b-bornee ssi ssi ∃b ∈ IN, ∀M ∈ A(N,M0) : M(p) ≤ b

2 < N,M0 > est b-borne ssi chacune de ses places est b-bornee

3 < N,M0 > est borne ssi ∃b ∈ IN : < N,M0 > est b-borne

N#8 : Producteur/Consommateur

BacProducteur

prod cons

Consommateur

Place Bac est nonbornee

Producteur

prod cons

Consommateur

AntiBac

Bac

K

Les places Bac et AntiBacsont complementaires

et sont k-bornees

Remarques

Le semi-algorithme de construction du graphe des marquages n’apporte pas dereponse.La propriete “borne “ est importante puisqu’elle conditionne la possibilited’implantation du modele 63 / 111

Decision de la propriete k-borne

Les grandes etapes

Proprietes de Monotonie

Caracterisation des reseaux infiniment Actifs

Algorithme de Karp & MillerArbre de Couverture & Graphe de Couverture

Monotonie : Soit un reseau marque < N,m0 >

Sensibilisation/Tir (rappels)

1 t(•t, t•) est sensibilisee pour le marquage M ssi M ≥• t

2 Si M ≥• t alors Mt→ M ′ avec M ′ = M −• t + t•

nb : Si X ≥ M alors Xt→ X ′ et X ′ − X = M ′ −M = −•t + t•

A(N,m0),G(N,m0), L(N,m0)

Soit M ≥ m0 alors|A(N,m0)| ≤ |A(N,M)|, |G(N,m0)| ≤ |G(N,M)|, L(N,m0) ⊆ L(N,M)

64 / 111

Caracterisation des reseaux Infiniment actifs

Sequences repetitive

Une sequence de transitions σ ∈ T ∗ est dite repetitive ssi∀M ∈ A(N,m0) : M

σ→ M ′ ⇒ M ′σ→

Prop : σ ∈ T ∗ est repetitive ssi ∀M ∈ A(N,m0) : Mσ→ M ′ ⇒ M ′ ≥ M

N#2 : bloquant, borne et infiniment actif

t0

?in

p1

t2

Perte

t1

!out

p0

2

Epsilon

0

p0

1

p1

t2t1

t0

La sequence t0.t1 est repetitive (Xt0.t1→ X (∀X )) et franchissable

Caracterisation des reseaux Infiniment actifs

(rappel) Un reseau est infiniment actif ssi il admet au moins une sequence defranchissement infinie.

Prop : Un reseau est infiniment actif ssi il admet une sequence de

franchissement repetitive65 / 111

Sequence repetitive croissante

Sequence repetitive croissante pour une place donnee

Une sequence de transitions σ ∈ T ∗ est dite repetitive croissante pour une

place p ssi ∀M ∈ A(N,m0) : Mσ→ M ′ ⇒ M ′ ≥ M et M ′(p) > M(p)

N#9 : Un autre reseau non borne

p2

A

B

p1 p3

C

La sequence C .A est repetitive croissante pourla place P2

001

C→100

A→011

avec001≤

011

ou p3C→ p1

A→ p2p3

Exercice : Exploration Partielle de G (N#9, p3)

4 50

3

6

21

p3 p2p3 p2*2p3 p2*3p3

p1 p1p2 p1p2*2

Reliez les marquages entre-euxDonnez les(des) sequencesrepetitives croissantes

66 / 111

Caracterisation des reseaux non bornes

Caracterisation des reseaux non bornes

Une place p est non bornee ssi le reseau admet une sequence de franchissementrepetitive croissante pour la place p

(rappel) Un reseau est non borne ssi il admet une place non bornee

Arbre de Couverture (Karp & Miller)

Arbre de Couverture : Structure finie permettant de detecter toutes les placesnon bornees et de donner une borne a toutes les autres.

Principe : Explorer l’espace d’etats de facon a detecter toutes les sequencesrepetitives croissantes

1 Chaque marquage explore sera compare a tous ses predecesseurs : on doitdonc etre capable de remonter dans le passe. On utilise donc un arbre aulieu d’un graphe

2 On veut etre aussi capable de donner une borne pour les places bornees :on considere des pseudo-marquages (∈ (IN ∪ ω)P) pour lesquels lesplaces non bornees sont marquees par ω. On obtient ainsi une“couverture” (finie) de l’ensemble (infini) des marquages reels.

67 / 111

Arbre de couverture

Definition de INω et des operations afferentes

INω = IN ∪ ω∀n ∈ IN : n < ω

n + ω = ω + n = ωω − n = ω (n − ω n’est pas defini)

On etend de la meme maniere +,−, < a INPω

Intuition de l’arbre de couverture (AC (R,m0))

Les sommets de l’arbre de couverture sont des ω-marquages (∈ INωP)

Propriete de couverture : AC(R,m0) “couvre” A(R,m0)

∀m ∈ A(R,m0),∃m′ ∈ AC(R,m0) : m ≤ m′

68 / 111

Algorithme de Karp & Miller

Algorithme construction de AC (R,m0)

Soit q un sommet etiquete par mSi q admet un ancetre p ayant la meme etiquette

Alors q n’a pas de fils.Sinon

Pour chaque transition t sensibilisee en m : mt→ mt

q admet un fils qt ,l’arc reliant q a qt est etiquete par tet le sommet qt est etiquete par Ω(mt)

Definition de Ω(mt)(p)

Pour chaque place p ∈ PSi qt admet un ancetre a etiquete par ma

avec ma ≤ mt et ma(p) < mt(p)Alors Ω(mt)(p) = ω Sinon Ω(mt)(p) = mt(p)

69 / 111

Exemples d’arbres de couverture

N#10 : Reseau non borne et son arborescence de couverture

p1

p2

t3t1 t2

p3

N#9 (deja vu)

p2

A

B

p1 p3

C

C1

p1

A2

p2*wp3

B

3

p1p2*w

C

4

p1p2*w

A5

p2*wp3

A6

p2*wp3

0

p3

70 / 111

Arbre et Graphe de couverture

Proprietes de l’arbre de couverture [Karp-Miller 69]

Soit un reseau marque < R,m0 >

1 AC(R,m0) est fini

2 < R,m0 > est non borne ssi ∃ q ∈ AC(R,m0),∃p ∈ P tel que q(p) = ω

3 Une place p est non bornee ssi ∃q ∈ AC(R,m0) tel que q(p) = ω

4 Une place bornee p a pour borne Max(q(p) : q ∈ AC(R,m0))

Graphe de Couverture GC (R,m0)

GC(R,m0) : Quotient de l’arbre de couverture obtenu en identifiant lessommets etiquetes par le meme marquage

Exemple N#9 : Arbre et Graphe de couverture

C1

p1

A2

p2*wp3

B

3

p1p2*w

C

4

p1p2*w

A5

p2*wp3

A6

p2*wp3

0

p3

S/ ∼=0, 1, 2, 5, 6, 3, 4

A A

B

C

C0' 1' 2' 3'

2′ ↔ 2, 5, 6 et 3′ ↔ 2, 471 / 111

Graphe de Couverture

Proprietes du Graphe de Couverture GC (R,m0)

1 Si < R,m0 > est borne alors GC(R,m0) = G(R,m0)

2 ∀σ ∈ T ∗ Si m0σ→ m dans < R,m0 >

alors dans GC(R,m0) on a aussi m0σ→ m

Reciproque fausse : Une sequence dans le graphe de couverture necorrespond pas forcement a une sequence de franchissement du reseau.

L’introduction des ω-marquages peut se traduire par l’apparition desequences de franchissement qui n’existent pas en realite.

3 L(R,m0) ⊂ L(GC(R,m0))(Graphe de couvreture est une sur-approximation du comportement reel)

N#11 : Reseau parentheses (expressions bien parenthesees)

[ ]

nbpo

[[w]

] [w]

[

[w]

[0] [[w][0]

[,]

[]]] n’est pas bien parenthesee ( 6∈ L(R,m0)) mais est “reconnue” par le graphede couverture (∈ L(GC(R,m0))

Les langages de Dick ne sont pas rationnels : imposssible de les reconnaıtre par

des automates a etats finis 72 / 111

Journee d’un planteur de bananes

Reseau

rentre

leve

dort

cueille

mange

jette

champ

table

jardin

banane

peau

Graphe de Couverture

0

1 2

3 4

5 7

8

cueille rentre

cueille

rentre leve

levedort

dort

mange

mange

6

jette

leve

9

dort

10

73 / 111

Outline

8 Analyse StructurelleMatrice d’incidenceEquation Fondamentale des reseaux de PetriIntuition de l’analyse structurelleInvariants : definitions, calculs et proprietesExemple de modelisation et de verification par analyse structurelleAnalyse structurelle avec TINA

74 / 111

Introduction

Objectif

B

T

TBAR

C

P2

A

D

P1

Etre capable d’obtenir certainesproprietes du reseau uniquementpar une analyse de la struc-ture/topologie du reseau.

Approche de la verification

Elegante : pas d’exploration de l’espace d’etats

Manuelle : calculs automatiques mais interpretation “manuelle”

Puissante (possiblement) : analyse parametree

Decevante (possiblement) : peut echouer a monter une propriete vraie

75 / 111

Reseaux Place/Transition (rappels)

Definition RdP (rappel)

R =< P,T ,Pre,Post > ou- P, ensemble fini de Places- T , ensemble fini de Transitions- Pre : P × T 7→ IN- Post : P × T 7→ IN

p2

A

CB

p3

E

p5

p1

p4

D

A B ...(•A,A•) (•B,B•)

(

10000

,

01100

) (

01000

,

00010

)

Matrices Pre et Post associees

Pre A B C D E

1 1 0 0 0 02 0 1 0 0 03 0 0 1 0 04 0 0 0 1 05 0 0 0 1 1

Post A B C D E

1 0 0 0 1 02 1 0 0 0 03 1 0 0 0 14 0 1 0 0 05 0 0 1 0 0

76 / 111

Matrice d’incidence

Un autre exemple

X

Y

CA B

5

3

3

2

5

5

2

Pre A B C

5 2 00 1 5

Post A B C

2 0 53 3 0

Matrice d’incidence

C : P × T 7→ ZZC = Post - PreC(p, t) = t•(p)−• t(p)

C A B C

−3 −2 53 2 −5

Reseaux Purs

N est pur ssi t•(p)ו t(p) = 0 ∀t, ∀p

Prop : Si N est pur, Il est possible de retrouver N a partir de C .•t(p) = −Max(0,−C(p, t)) et t•(p) = Max(0,C(p, t))

Dans le cas general, C correspond a une infinite de reseaux distincts.

77 / 111

Image commutative d’une sequence de transitions¯

¯ : T ∗ 7→ INT definie par σ(t) = |σ|tou | | : T ∗ × T 7→ IN est definie par

|ε|t = 0 et |u.σ|t =

1 + |σ|t si u = t|σ|t sinon

Exemple : T = t1, t2, t3, t4

σ1 = t1.t2.t2.t3|σ1|t1 = |σ1|t3 = 1|σ1|t2 = 2,|σ1|t4 = 0

σ1 =

1210

σ2 = t4.t2.t1.t3 |σ1|t = 1 ∀t ∈ T σ1 =

1111

σ3 = t3.t2.t1.t2|σ3|t1 = |σ1|t3 = 1,|σ1|t2 = 2,|σ1|t4 = 0

σ3 =

1210

NB ¯ n’est pas injective (σ3 6= σ1ETσ3 = σ1) 78 / 111

Equation Fondamentale des reseaux de Petri

L’equation

Soient m1,m2 ∈ A(R,m0), σ ∈ T ∗ : Si m1σ→ m2 Alors m2 = m1 + C .σ

Reciproque FAUSSE(1) on travaille avec σ et non σ

(2) on raisonne avec C et non avec Pre & Post

Corollaires

1 ∀m ∈ G(R,m0), ∃σ ∈ T ∗ m = m0 + C .σfondement de l’analyse structurelle

2 Soient m1,m2 ∈ A(R,m0) et σ ∈ T ∗ tels que m2 = m1 + C .σSi ∃p ∈ P : m2(p) < 0 Alors NON (m1

σ→ )

79 / 111

Exemple d’application

Equation RdP : Si m1σ→ m2 Alors m2 = m1 + C .σ

X

Y

CA B

5

3

3

2

5

5

2

C A B C

−3 −2 53 2 −5

Si S = BBCA alors S =121

et C .S =−3 −2 53 2 −5

⊗121

=−22

Ici42

BBCA→ M ′ avec M ′ =42

+−22

=24

De meme,51

BBCA→ M ′′ avec M ′′ =51

+−22

=33

80 / 111

Analyse structurelle/statique

Exploitation du corollaire de l’equation fondamentale des RdP

∀m ∈ G(R,m0), ∃σ ∈ T ∗ : m = m0 + C .σ

Principe : eliminer une des inconnues

Chercher les applications F telle que F .C = 07−→ F .m = F .m0 Invariants lineaires de Place

Chercher les σ verifiant C .σ = 07−→ m0

σ→ m avec m0 = m Invariants lineaires de Transitions

Retour sur la matrice d’incidence C

C ∈ ZZP×T

Image de C , Im(C) = M ∈ ZZP : ∃σ ∈ ZZT : C .σ = MNoyau de C , Ker(C) = σ ∈ ZZT : C .σ = 0

Prop : A(N,m0) ⊆ Im(C) (∀m0 ∈ INP)

81 / 111

Invariants de Place (Intuition)

B

T

TBAR

C

P2

A

D

P1

Focus sur les places T et TBar

1 A et C ne sont pas connectees aux places T et TBarPour x ∈ A,C, Si m

x→ m′

alors m′(T ) = m(T ) et m′(TBar) = m(TBar)

2 Si mB→ m′ alors m′(T ) = m(T ) + 1 et m′(TBar) = m(TBar)− 1

3 Si mD→ m′ alors m′(T ) = m(T )− 1 et m′(TBar) = m(TBar) + 1

donc pour t ∈ B,DSi m

t→ m′ alors m(T ) + m(TBar) = m′(T ) + m′(TBar)

82 / 111

Invariants de Place (Intuition)

B

T

TBAR

C

P2

A

D

P1

Bilan

1) A, C laissent m(T ) et m(TBar) invariants2) & 3) B, D laissent la Somme m(T ) + m(TBar) invariante⇒ m(T ) + m(TBar) est invariante

Conclusion

∀m ∈ A(R,m0) : m(T ) + m(TBar) = m0(T ) + m0(TBar)

Resutat tres general puisqu’il est independant du marquage initial.Impossible a obtenir en utilisant les approches exhaustives type arbre decouverture.

83 / 111

Invariants de Transition (Intuition)

Exemple

B

T

TBAR

C

P2

A

D

P1

P1

P2

TTBar

A.B.C .D→

P1

P2

TTBar

La sequence A.B.C.D laisse le marquage invariant

Dans le detail ....

P1

P2

TTBar

A→

P1 + 1P2

TTBar

B→

(P1 + 1)− 1P2

T + 1TBar − 1

C→

P1

P2 + 1T + 1TBar − 1

D→

P1

(P2 + 1)− 1(T + 1)− 1(TBar − 1) + 1

Verification

C A B C D

P1 1 −1 0 0P2 0 0 1 −1T 0 1 0 −1TBar 0 −1 0 −1

×

1111

=

0000

84 / 111

Invariants de Place (P semi-flots)

Objectif Chercher les applications F tq F .C = 0 et par suite F .m = F .m0

Propriete : Soit F telle que F .C = 0

En posant P = p1, p2 . . . pn et en developpant F .m = F .m0 on obtient :

j=n∑j=1

fj ×m(pj) =

j=n∑j=1

fj ×m0(pj)

j=n∑j=1

fj ×m(pj) = Constante(m0) (∀m ∈ INP)

Propriete : Soit F a coefficients dans IN telle que F .C = 0

Si fi 6= 0 alors la place pi est bornee

fi ×m(pi ) = Cste(m0)− (∑

j∈[1,p]\i

fj ×m(pj))

m(pi ) = 1/fi × (Cste(m0)−∑

j∈[1,p]\i

fj ×m(pj)

m(pi ) ≤ m(m0)/fi Et pi est bornee85 / 111

Invariants de Place du Producteur/Consommateur

B

T

TBAR

C

P2

A

D

P1

1 −1 0 00 0 1 −10 1 0 −10 −1 0 −1

On resoud FP1 FP2 FT FTBar × C =

0000

F .C = 0 ssi FP1 FP2 FT FTBar = λ. 0 0 1 1

Comme FT & FTBar 6= 0 on a T et TBar bornees

De plus, en prenant m0 =

000k

et en developpant F .m = F .m0 on obtient :

m(T ) ≤ K & m(T ′) ≤ K (∀m ∈ G(R,m0))

86 / 111

Composante Conservative, Repetitive

Composante Conservative - Invariant de Place, P semi-flots

Def : B ⊆ P est un invariant de Place ssi ∃F ≥ 0 tq ||F || = B et F .C = 0ou ||F || = pi ∈ P : Fi 6= 0

Prop : Si B est un invariant de place, alors toute place p de B est borneereciproque fausse

Def : R est conservatif (consistent) si P est couvert par des invariants de place

Prop : Si R est conservatif/consistent alors R est borne

Composante Conservative - Invariant de Transitions, T semi-flots

Def : S ⊆ T est un invariant de Transition ssi∃s ∈ T ∗ telle que ||σ|| = S et C .σ = 0

Def : R est repetitif (invariant) si T est couvert par des invariants de transition

Prop : Si R est vivant et borne est Alors R est repetitif

nb :

Infinite possible d’invariants. L’analyse permet d’en obtenir une base.87 / 111

Exemple de reseau sans invariant de place

rentre

leve

dort

cueille

mange

jette

champ

table

jardin

banane

peau

T semi-flot

Cueille.Mange.Jette est une sequence invariante

Pour que l’invariant de transitions soit effectif(soit franchissable) il faut au moins 3 planteurs ;un au champ, un a table et un dans le jardin.

Aucun P semi-flot

Pour m0 donne et m ∈ A(R,m0) on am(champ) + m(table) + m(jardin) ≤ m0(champ) + m0(table) + m0(jardin)

Les places champ, table et jardin ne forment pas un invariant de place, pourautant les places champ, table et jardin sont bornees.

On sait par ailleurs que banane et peau sont non bornees et ne peuvent

appartenir a un invariant de place.

88 / 111

Modelisation et verification struturelle du Pb deslecteurs/ecrivains

Enonce

Lecteurs et ecrivains en concurrence pour acceder a une (abstraction) de basede donnees. Modeliser un arbitre (controleur) permettant de synchroniser leslecteurs et les ecrivains pour assurer les proprietes de surete ci-dessous

C1 : Pas plus de k lectures simultanees

C2 : Pas plus d’un ecrivain dans la base

C3 : Pas de lecture et d’ecriture simultanement dans la base

Aspects non traites :

Vivacite/”Absence de Famine” : Toute requete (de lecture ou d’ecriture)est satisfaite au bout d’un temps fini.

Maintien de la coherence des donnees (si une valeur est lue alors ellecorrespond a la derniere valeur ecrite).

89 / 111

Un modele possible

Modelisation parametree

Modele de la base de donnees “generique” :entier positif k est un parametre du marquage et du reseau.

On suppose que la population de lecteurs et d’ecrivains est infinie.

90 / 111

Legende

Les “composants”A droite les lecteurs, a gauche les ecrivains et au centre le controle.Les “lieux”

une salle de lecture et d’une salle d’ecriture,

deux salles d’attente : l’une pour les lecteurs et l’autre pour les ecrivains.

Le “controle” : Mutex synchronise lecteurs et ecrivains.

Expression dans le modele des proprietes attendues : ∀m ∈ A(R,m0)

C1 : m(Lecture) ≤ k Pas plus de k lectures simultanees

C2 : m(Ecriture) ≤ 1 Pas plus d’un ecrivain dans la base

C3 : m(Ecriture)×m(Lecture) = 0Pas de lecture et d’ecriture simultanees

Remarque Modelisation/Verification

On fait le modele pour l’analyser/verifier. On doit avoir identifier (avant) lesproprietes que l’on voudra verifier. On doit donc s’assurer, au plus tot, que l’onest deja capable de les exprimer dans/avec le modele.

Si on est pas capable de les exprimer (simplement) alors on ne pourra pas les

verifier (surement).91 / 111

Calcul et exploitation des P semi-flots

On resoud F .C = 0En ayant pris P = [Lecture,Mutex ,Ecriture,Attente Lecture,Attente Ecriture]On obtient F = λ(1, 1,K , 0, 0)

Sachant que K > 0 on en deduit que les places Lecture, Ecriture et Mutex sontbornees.

De plus, pour m0 =

0K000

et m ∈ A(R,m0) on a

F .m = (1, 1,K , 0, 0)×

m(Lecture)M(Mutex)M(Ecriture)M(Attente Lecture)m(Attente Ecriture

= F .m0 = 0

et finalement m(Lecture) + m(Mutex) + k ×m(Ecriture) = K

92 / 111

Verification structurelle des proprietes

1 En isolant m(Lecture) dans l’invariant, on obtient :

m(Lecture) = K − (m(Mutex) + K ×m(Ecriture))

Comme un marquage est une application a valeurs dans les entiersnaturels, on en deduit C1 : m(Lecture) ≤ K .

2 C2 : m(Ecriture) ≤ 1 peut etre obtenue de facon identique en isolantm(Ecriture) dans l’invariant et en se souvenant que K est strictementpositif.

3 En prenant la negation de C3, on obtient

m(Lecture) > 0 et m(Ecriture) > 0

On a donc m(Lecture) + K ×m(Ecriture) > K + 1

D’un autre cote, l’invariant nous assure que :

m(Lecture) + K ×m(Ecriture) ≤ k

Comme K > 0, on aboutit ainsi a la contradiction et C3 est validee.

93 / 111

Quid de K = 0

Bilan

L’analyse structurelle ne permet plus d’assurer C2 et C3.

La place Mutex n’est plus une pre-condition de la transitionEntree Ecrivains ; L’arc correspondant disparaıt car il est value par 0 et lenombre d’ecritures simultanees devient non borne.

La lecture devient impossible puisque le marquage initial de la placeMutex est nul.

94 / 111

Bilan Analyse structurelle

Analyse parametree

Possibilite de pouvoir travailler avec l’analyse structurelle sur un reseauparametre.

Les proprietes attendues ont ete etablies non pas pour un reseau marque maispour toute une famille (infinie) indexee par K > 0 de reseaux marques.

Une approche exhaustive (construction du graphe d’accessibilite, arbre de

couverture de Karp et Miller) n’aurait pu etre conduite puisque nous aurions du

auparavant fixer une valeur pour le parametre K .

Vivacite/Surete

L’analyse structurelle est une approche seduisante pour la verification desproprietes dites de “Surete”

“Rien de mauvais ne peut arriver”

L’analyse structurelle n’appporte (en general) pas de reponse pour laverification des proprietes dites de “Vivacite”

“Quelque chose de bon doit arriver”95 / 111

Analyse structurelle avec TINA

Enonce

Deux processus (banalises) partagent deux ressources (A et B). L’un des

processus se procure d’abord A (OqpA), puis se procure B (OqpAB), il travaille

(WorkAB) puis il retourne au repos en liberant (FreeAB) les deux ressources.

L’autre processus procede dans l’ordre inverse : obtention de B puis de A.

OqpA OqpAB

OqpBOqpBA

Bidle

2

WaitB

WaitA

workAB

FreeAB

A

workBA

FreeBA

Exploration de l’espace d’etats0 : A B idle*2

1 : B WaitB idle

2 : idle workAB

3 : WaitA WaitB

4 : A WaitA idle

5 : idle workBA

OqpA

1

OqpAOqpB3

OqpAB

2

FreeBAFreeAB

0

OqpBA

5

OqpB

4

96 / 111

Analyse structurelle avec TINA : P Semi-flots

(rappel)

0 : A B idle*2

1 : B WaitB idle

2 : idle workAB

3 : WaitA WaitB

4 : A WaitA idle

5 : idle workBA

P-SEMI-FLOWS GENERATING SET

invariant

A WaitB workAB workBA

WaitA WaitB idle workAB workBA

B WaitA workAB workBA

Interpretation/Remarques

Invariant (conservatif) : Reseau structurellement borne

Ensemble (infini) des invariants est genere par une base de 3 invariantsm(A) + m(WaitB) + m(workAB) + m(workBA) = cstea(m0)

m(WaitA)+m(WaitB)+m(idle)+m(workAB)+m(workBA) = csteb(m0)m(B) + m(WaitA) + m(workAB) + m(workBA) = cstec(m0)

L’exclusion mutuelle peut etre prouvee en utilisant Inv1 (ou Inv3)

97 / 111

Analyse structurelle avec TINA : T Semi-flots

OqpA

1

OqpAOqpB3

OqpAB

2

FreeBAFreeAB

0

OqpBA

5

OqpB

4

T-SEMI-FLOWS GENERATING SET

consistent

FreeAB OqpA OqpAB

FreeBA OqpB OqpBA

Interpretation/Remarques

Consistent (i.e., repetitif)chaque transition appartient a un invariant de transitions

Ensemble (infini) des invariants est genere par une base de 2 invariantsFreeAB OqpA OqpABFreeBA OqpB OqpBA

Interpetation :Si M − OqpA.OqpAB.FreeBA− >

alors M − OqpA.OqpAB.FreeBA− > M(1) l’orde des transitions dans la sequence n’est pas fourni !(2) un tel marquage M n’est pas forcement accessible.

L’existence de ces invariants laisse presager la possibilite de famine !C’est bien le cas ici ! 98 / 111

Outline

9 Boıte a Outils TINAFormalisation : Modelisation/Verification avec TINATINA ToolboxMethodes Formelles et Process IndustrielsLiens

99 / 111

Formalisation : Modelisation/Verification (Rappel)

Ingredients

FormalisationM : Modele (formel) du comportement (issu de Rdp, AC, Alg.Proc,..)7→ Permet de decrire l’ensemble de tous les comport ements du systeme

φ : Modele (formel) des proprietes (formalism e dedie)7→ Permet de formaliser les exigences a respecter

Verification Model − Checker :Outil de verification permettant de decider si M satisfait φ?

nb : Formel est une condition requise pour envisager l’automaticite

100 / 111

TINA (TIme Petri Net Analyser)

TINA Toolbox (http ://www.laas.fr/tina)

Environnement d’edition, simulation, verification de reseaux de Petrietendus.Freeware / Linux, Solaris, MacOS, Windows

Processus de verification en 3 Etapes

Modelisation

⇒ modele formel M de l’application⇒ proprietes attendues Φ, dans la logique L

Abstraction de M

preservant les formules de L⇒ graphe d’etats abstraits fini Abs

Verification des formules Φ sur A (Model-Checking)

⇒ VRAI ou un contre-exemple(M |= Φ⇔ Abs |= Φ)

101 / 111

TINA

Modeles formels

Reseaux de Petri Temporels + Priorites, Donnees, Chronometres

Descriptions de haut niveau en FIACRE (compilees)

Abstractions

Graphes de couverture

Espaces d’etats exacts

Reductions ordre partiel

Graphes de classes

Graphes d’etats essentiels

Verification

State/Event LTL (natif)

Mu-Calcul (natif)

Exportation abstraction vers outils CADP, MEC

102 / 111

TINA Toolbox (http ://www.laas.fr/tina)

nd (netdraw)

Graphic and textual editor Of Time Petri Net or Transition Systems

Simulating interactively net descriptions in all formats accepted by tina

Interfaced with other tools

tina, sift (state space generators)

Input : Petri nets + time, priorities, preemption, data (API)

Builds : behavior abstractions, Preserving some classes of properties

Output : in verbose form or in model-checkers formats

selt, muse

Model checkers for SE-LTL temporal logic and modal µ-calculus

struct, plan, etc

Structural analysis, Path analysis, converters, etc

Vu cette annee : nd, tina, struct103 / 111

Methodes Formelles et Process Industriels

104 / 111

Liens

Outils

http://www.laas.fr/tina

http://www.laas.fr/fiacre

Projets

Topcased : www.topcased.orgSpices : www.spices-itea.orgOpenEmbeDD : openembedd.orgItemis : itemis-anr.orgQuarteft : quarteft.loria.frCESAR : www.cesarproject.eu

OpenETCS : openetcs.orgINGEQUIP, OCE, MOISE :www.irt-saintexupery.com/

105 / 111

Outline

10 EpilogueConclusionBibliographie PetriTable des Matieres

106 / 111

En conclusion pour la partie Petri

Interet des RdP

Formalisme Rigoureux (semantique precise)

Expressivite+ Compact (vs machines a etats)+ Concepts : //, Cooperation, Competition, Synchronisation, . . .+ Dualite Etat/Evenement

Possibilites d’Analyse : Structurelle, Exhaustive

Representation Graphique

Aspects non traites

Reductions

Extensions des RdP

arcs inhibiteurs, priorites (voir tp)Donnees (Reseaux colores, Reseaux Predicat/transitions)Temps (temps reel)Stochastique (performances)

+ generalement (hors rdp) : techniques de verification107 / 111

Bibliographie

G.W Brams (ouvrage collectif)Reseaux de Petri : Theorie et Pratique (2 tomes) - Masson -1980

W. ReisigPetri Nets. An Introduction Springer-Verlag EATCS 1985

C. ReutenauerAspect Mathematiques des Reseaux de PetriEtudes et recherches en informatique Masson - 1989

K. JensenColoured Petri Nets - Springer-Verlag EATCS 1992

W. ReisigElements od Distributed Algortithms : Modeling and Analysis with PetriNets Springer-Verlag 1998

M. Diaz (Editeur)Les Reseaux de Petri. Modeles fondamentaux,Hermes Science, Traite IC2, 2001

M. Diaz (Editeur)Petri Nets. Fundamental Models, Verification and Applications,ISTE & Wiley, N 978-1-84821-079-0, 2009

108 / 111

Table des Matieres

1 Introduction

2 Reseaux de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Reseaux Place/Transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1 Exemple introductif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Definitions Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Semantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Graphe des Marquages accessibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 Reseaux bornes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Exemples de modelisation en Rdp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Une histoire de pont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Journee d’un planteur de bananes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Forme textuelle Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Piscine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 Composition & Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 Communication Asynchrone & Synchrone . . . . . . . . . . . . . . . . . . . . . . . 453 Asynchrone Vs Synchrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 Probleme du choix distant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

109 / 111

6 Proprietes generales des Reseaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521 Bloquant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 Reinitialisable / propre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 Quasi-vivacite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 Infiniment actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 Lien entre ces differentes proprietes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 Decision des proprietes generales via les CFC . . . . . . . . . . . . . . . . . . . . 59

7 Decision de la propriete K Borne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 Caracterisation des reseaux Infiniment actifs . . . . . . . . . . . . . . . . . . . . . 652 Caracterisation des reseaux non bornes . . . . . . . . . . . . . . . . . . . . . . . . . . 663 Arbre de couverture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 Algorithme de Karp & Miller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69

Analyse Structurelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741 Matrice d’incidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762 Equation Fondamentale des reseaux de Petri . . . . . . . . . . . . . . . . . . . . .793 Intuition de l’analyse structurelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824 Invariants : definitions, calculs et proprietes . . . . . . . . . . . . . . . . . . . . . . 855 Exemple de modelisation et de verification par analyse structurelle 896 Analyse structurelle avec TINA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

110 / 111

8 TINA (Time Petri Net Analyser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .991 Formalisation : Modelisation/Verification avec TINA . . . . . . . . . . . . 1012 TINA Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033 Methodes Formelles et Process Industriels . . . . . . . . . . . . . . . . . . . . . . 1044 Liens et Projets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

9 Epilogue1 Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1072 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083 Table des Matieres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

111 / 111