petri nets

105
1 Petri Nets Marco Sgroi ([email protected]) EE249 - Fall 2002

Upload: wyanet

Post on 14-Jan-2016

71 views

Category:

Documents


0 download

DESCRIPTION

Petri Nets. Marco Sgroi ([email protected]) EE249 - Fall 2002. Outline. Petri nets Introduction Examples Properties Analysis techniques. Petri Nets (PNs). Model introduced by C.A. Petri in 1962 Ph.D. Thesis: “Communication with Automata” - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Petri Nets

1

Petri Nets

Marco Sgroi ([email protected])

EE249 - Fall 2002

Page 2: Petri Nets

2

Outline

• Petri nets– Introduction– Examples– Properties– Analysis techniques

Page 3: Petri Nets

3

Petri Nets (PNs)

• Model introduced by C.A. Petri in 1962– Ph.D. Thesis: “Communication with Automata”

• Applications: distributed computing, manufacturing, control, communication networks, transportation…

• PNs describe explicitly and graphically:– sequencing/causality

– conflict/non-deterministic choice

– concurrency

• Asynchronous model (partial ordering)• Main drawback: no hierarchy

Page 4: Petri Nets

4

Petri Net Graph• Bipartite weighted directed graph:

– Places: circles– Transitions: bars or boxes– Arcs: arrows labeled with weights

• Tokens: black dots

t1p1

p2

t2

p4

t3

p3

2

3

Page 5: Petri Nets

5

Petri Net• A PN (N,M0) is a Petri Net Graph N

– places: represent distributed state by holding tokens• marking (state) M is an n-vector (m1,m2,m3…), where mi is the non-

negative number of tokens in place pi.

• initial marking (M0) is initial state

– transitions: represent actions/events• enabled transition: enough tokens in predecessors

• firing transition: modifies marking

• …and an initial marking M0. t1p1

p2 t2

p4

t3p3

2

3Places/Transition: conditions/events

Page 6: Petri Nets

6

Transition firing rule• A marking is changed according to the following rules:

– A transition is enabled if there are enough tokens in each input place

– An enabled transition may or may not fire

– The firing of a transition modifies marking by consuming tokens from the input places and producing tokens in the output places

22

3

2 2

3

Page 7: Petri Nets

7

Concurrency, causality, choice

t1

t

2

t3 t4

t5

t6

Page 8: Petri Nets

8

Concurrency, causality, choice

Concurrency

t1

t

2

t3 t4

t5

t6

Page 9: Petri Nets

9

Concurrency, causality, choice

Causality, sequencing

t1

t

2

t3 t4

t5

t6

Page 10: Petri Nets

10

Concurrency, causality, choice

Choice,

conflict

t1

t

2

t3 t4

t5

t6

Page 11: Petri Nets

11

Concurrency, causality, choice

Choice,

conflict

t1

t

2

t3 t4

t5

t6

Page 12: Petri Nets

12

Communication Protocol

P1

Send msg

Receive Ack

Send Ack

Receive msg

P2

Page 13: Petri Nets

13

Communication Protocol

P1

Send msg

Receive Ack

Send Ack

Receive msg

P2

Page 14: Petri Nets

14

Communication Protocol

P1

Send msg

Receive Ack

Send Ack

Receive msg

P2

Page 15: Petri Nets

15

Communication Protocol

P1

Send msg

Receive Ack

Send Ack

Receive msg

P2

Page 16: Petri Nets

16

Communication Protocol

P1

Send msg

Receive Ack

Send Ack

Receive msg

P2

Page 17: Petri Nets

17

Communication Protocol

P1

Send msg

Receive Ack

Send Ack

Receive msg

P2

Page 18: Petri Nets

18

Producer-Consumer Problem

Produce

Consume

Buffer

Page 19: Petri Nets

19

Producer-Consumer Problem

Produce

Consume

Buffer

Page 20: Petri Nets

20

Producer-Consumer Problem

Produce

Consume

Buffer

Page 21: Petri Nets

21

Producer-Consumer Problem

Produce

Consume

Buffer

Page 22: Petri Nets

22

Producer-Consumer Problem

Produce

Consume

Buffer

Page 23: Petri Nets

23

Producer-Consumer Problem

Produce

Consume

Buffer

Page 24: Petri Nets

24

Producer-Consumer Problem

Produce

Consume

Buffer

Page 25: Petri Nets

25

Producer-Consumer Problem

Produce

Consume

Buffer

Page 26: Petri Nets

26

Producer-Consumer Problem

Produce

Consume

Buffer

Page 27: Petri Nets

27

Producer-Consumer Problem

Produce

Consume

Buffer

Page 28: Petri Nets

28

Producer-Consumer Problem

Produce

Consume

Buffer

Page 29: Petri Nets

29

Producer-Consumer Problem

Produce

Consume

Buffer

Page 30: Petri Nets

30

Producer-Consumer Problem

Produce

Consume

Buffer

Page 31: Petri Nets

31

Producer-Consumer Problem

Produce

Consume

Buffer

Page 32: Petri Nets

32

Producer-Consumer with priority

Consumer B can

consume only if

buffer A is empty

Inhibitor arcs

A

B

Page 33: Petri Nets

33

PN properties

• Behavioral: depend on the initial marking (most interesting)– Reachability

– Boundedness

– Schedulability

– Liveness

– Conservation

• Structural: do not depend on the initial marking (often too restrictive)– Consistency

– Structural boundedness

Page 34: Petri Nets

34

Reachability

• Marking M is reachable from marking M0 if there exists a sequence of firings M0 t1 M1 t2 M2… M that transforms M0 to M.

• The reachability problem is decidable.

t1p1

p2t2

p4

t3p3

= (1,0,1,0)M = (1,1,0,0)

= (1,0,1,0) t3

M1 = (1,0,0,1) t2

M = (1,1,0,0)

Page 35: Petri Nets

35

• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa

Liveness

Not live

Page 36: Petri Nets

36

• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa

Liveness

Not live

Page 37: Petri Nets

37

• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa

Liveness

Deadlock-free

Page 38: Petri Nets

38

• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa

Liveness

Deadlock-free

Page 39: Petri Nets

39

• Boundedness: the number of tokens in any place cannot grow indefinitely– (1-bounded also called safe)

– Application: places represent buffers and registers (check there is no overflow)

Boundedness

Unbounded

Page 40: Petri Nets

40

• Boundedness: the number of tokens in any place cannot grow indefinitely– (1-bounded also called safe)

– Application: places represent buffers and registers (check there is no overflow)

Boundedness

Unbounded

Page 41: Petri Nets

41

• Boundedness: the number of tokens in any place cannot grow indefinitely– (1-bounded also called safe)

– Application: places represent buffers and registers (check there is no overflow)

Boundedness

Unbounded

Page 42: Petri Nets

42

• Boundedness: the number of tokens in any place cannot grow indefinitely– (1-bounded also called safe)

– Application: places represent buffers and registers (check there is no overflow)

Boundedness

Unbounded

Page 43: Petri Nets

43

• Boundedness: the number of tokens in any place cannot grow indefinitely– (1-bounded also called safe)

– Application: places represent buffers and registers (check there is no overflow)

Boundedness

Unbounded

Page 44: Petri Nets

44

Conservation

• Conservation: the total number of tokens in the net is constant

Not conservative

Page 45: Petri Nets

45

Conservation

• Conservation: the total number of tokens in the net is constant

Not conservative

Page 46: Petri Nets

46

Conservation

• Conservation: the total number of tokens in the net is constant

Conservative

2

2

Page 47: Petri Nets

47

Analysis techniques

• Structural analysis techniques– Incidence matrix

– T- and S- Invariants

• State Space Analysis techniques– Coverability Tree

– Reachability Graph

Page 48: Petri Nets

48

Incidence Matrix

• Necessary condition for marking M to be reachable from initial marking M0:

there exists firing vector v s.t.:

M = M0 + A v

p1 p2 p3t1t2

t3A=A=

-1-1 00 0011 11 -1-100 -1-1 11

t1 t2 t3

p1

p2

p3

Page 49: Petri Nets

49

State equations

p1 p2 p3t1

t3

A=A=-1-1 00 0011 11 -1-100 -1-1 11

• E.g. reachability of M =|0 0 1|T from M0 = |1 0 0|T

but also vbut also v2 2 = | 1 1 2 |= | 1 1 2 |TT or any v or any vk k = | 1 (k) = | 1 (k) (k+1) |(k+1) |TT

t2

110000

++-1-1 00 0011 11 -1-100 -1-1 11

000011

==110011

vv1 1 ==110011

Page 50: Petri Nets

50

Necessary Condition only

22

Firing vector:

(1,2,2)

t1

t2

t3

Deadlock!!

Page 51: Petri Nets

51

State equations and invariants

• Solutions of Ax = 0 (in M = M0 + Ax, M = M0)

T-invariants– sequences of transitions that (if fireable) bring back to original marking

– periodic schedule in SDF

– e.g. x =| 0 1 1 |T

p1 p2 p3t1

t3

A=A=-1-1 00 0011 11 -1-100 -1-1 11

t2

Page 52: Petri Nets

52

Application of T-invariants

• Scheduling– Cyclic schedules: need to return to the initial state

i *k2 +

*k1

Schedule: i *k2 *k1 + o

T-invariant: (1,1,1,1,1)

o

Page 53: Petri Nets

53

State equations and invariants

• Solutions of yA = 0

S-invariants– sets of places whose weighted total token count does not

change after the firing of any transition (y M = y M’)

– e.g. y =| 1 1 1 |T

p1 p2 p3t1

t3

AATT==-1-1 11 0000 11 -1-100 -1-1 11

t2

Page 54: Petri Nets

54

Application of S-invariants

• Structural Boundedness: bounded for any finite initial marking M0

• Existence of a positive S-invariant is CS for structural boundedness – initial marking is finite

– weighted token count does not change

Page 55: Petri Nets

55

Summary of algebraic methods

• Extremely efficient (polynomial in the size of the net)

• Generally provide only necessary or sufficient information

• Excellent for ruling out some deadlocks or otherwise dangerous conditions

• Can be used to infer structural boundedness

Page 56: Petri Nets

56

Coverability Tree

• Build a (finite) tree representation of the markings

Karp-Miller algorithm• Label initial marking M0 as the root of the tree and tag it as new

• While new markings exist do:– select a new marking M

– if M is identical to a marking on the path from the root to M, then tag M as old and go to another new marking

– if no transitions are enabled at M, tag M dead-end

– while there exist enabled transitions at M do:• obtain the marking M’ that results from firing t at M

• on the path from the root to M if there exists a marking M’’ such that M’(p)>=M’’(p) for each place p and M’ is different from M’’, then replace M’(p) by for each p such that M’(p) >M’’(p)

• introduce M’ as a node, draw an arc with label t from M to M’ and tag M’ as new.

Page 57: Petri Nets

57

Coverability Tree• Boundedness is decidable

with coverability tree

p1 p2 p3

p4

t1t2

t3

1000

Page 58: Petri Nets

58

Coverability Tree• Boundedness is decidable

with coverability tree

p1 p2 p3

p4

t1t2

t3

1000

0100t1

Page 59: Petri Nets

59

Coverability Tree• Boundedness is decidable

with coverability tree

p1 p2 p3

p4

t1t2

t3

1000

0100

0011

t1

t3

Page 60: Petri Nets

60

Coverability Tree• Boundedness is decidable

with coverability tree

p1 p2 p3

p4

t1t2

t3

1000

0100

0011

t1

t3

0101

t2

Page 61: Petri Nets

61

Coverability Tree• Boundedness is decidable

with coverability tree

p1 p2 p3

p4

t1t2

t3

1000

0100

0011

t1

t3

t2010

Page 62: Petri Nets

62

Coverability Tree• Is (1) reachable from (0)?

t1 p1 t2

t1

0

t1

0

t1

p1 t22 2

Page 63: Petri Nets

63

Coverability Tree• Is (1) reachable from (0)?

t1 p1 t2

t1

0

t1

0

t1

p1 t22 2

(0) (1) (2)…

Page 64: Petri Nets

64

Coverability Tree• Is (1) reachable from (0)?

• Cannot solve the reachability problem

t1 p1 t2

t1

0

t1

0

t1

p1 t22 2

(0) (1) (2)…

(0) (2) (0)…

Page 65: Petri Nets

65

Reachability graph

p1 p2 p3t1t2

t3

100

• For bounded nets the Coverability Tree is called Reachability Tree since it contains all possible reachable markings

Page 66: Petri Nets

66

Reachability graph

p1 p2 p3t1t2

t3

100

010t1

• For bounded nets the Coverability Tree is called Reachability Tree since it contains all possible reachable markings

Page 67: Petri Nets

67

Reachability graph

p1 p2 p3t1t2

t3

100

010

001

t1

t3

• For bounded nets the Coverability Tree is called Reachability Tree since it contains all possible reachable markings

Page 68: Petri Nets

68

Reachability graph

p1 p2 p3t1t2

t3

100

010

001

t1

t3t2

• For bounded nets the Coverability Tree is called Reachability Tree since it contains all possible reachable markings

Page 69: Petri Nets

69

Subclasses of Petri nets• Reachability analysis is too expensive• State equations give only partial information • Some properties are preserved by reduction rules

e.g. for liveness and safeness

• Even reduction rules only work in some cases• Must restrict class in order to prove stronger results

Page 70: Petri Nets

70

Subclasses of Petri nets: SMs

• State machine: every transition has at most 1 predecessor and 1 successor

• Models only causality and conflict – (no concurrency, no synchronization of parallel activities)

Page 71: Petri Nets

71

Subclasses of Petri nets: MGs• Marked Graph: every place has at most 1 predecessor and 1

successor• Models only causality and concurrency (no conflict)

• Same as underlying graph of SDF

Page 72: Petri Nets

72

Subclasses of Petri nets: FC nets

• Free-Choice net: every transition after choice has exactly 1 predecessor

Page 73: Petri Nets

73

Free-Choice Petri Nets (FCPN)

Free-Choice (FC)

Extended Free-Choice Confusion (not-Free-Choice)

t1

t2

Free-Choice: the outcome of a choice depends on the value of a token (abstracted non-deterministically) rather than on its arrival time.

Easy to analyze

Page 74: Petri Nets

74

Free-Choice nets

• Introduced by Hack (‘72)• Extensively studied by Best (‘86) and Desel and

Esparza (‘95)• Can express concurrency, causality and choice without

confusion• Very strong structural theory

– necessary and sufficient conditions for liveness and safeness, based on decomposition

– exploits duality between MG and SM

Page 75: Petri Nets

75

MG (& SM) decomposition• An Allocation is a control function that chooses which

transition fires among several conflicting ones ( A: P T).

• Eliminate the subnet that would be inactive if we were to use the allocation...

• Reduction Algorithm– Delete all unallocated transitions

– Delete all places that have all input transitions already deleted

– Delete all transitions that have at least one input place already deleted

• Obtain a Reduction (one for each allocation) that is a conflict free subnet

Page 76: Petri Nets

76

• Choose one successor for each conflicting place:

MG reduction and cover

Page 77: Petri Nets

77

• Choose one successor for each conflicting place:

MG reduction and cover

Page 78: Petri Nets

78

• Choose one successor for each conflicting place:

MG reduction and cover

Page 79: Petri Nets

79

• Choose one successor for each conflicting place:

MG reduction and cover

Page 80: Petri Nets

80

• Choose one successor for each conflicting place:

MG reduction and cover

Page 81: Petri Nets

81

MG reductions• The set of all reductions yields a cover of MG

components (T-invariants)

Page 82: Petri Nets

82

MG reductions• The set of all reductions yields a cover of MG

components (T-invariants)

Page 83: Petri Nets

83

SM reduction and cover

• Choose one predecessor for each transition:

Page 84: Petri Nets

84

SM reduction and cover

• Choose one predecessor for each transition:

Page 85: Petri Nets

85

SM reduction and cover

• Choose one predecessor for each transition:

• The set of all reductions yields a cover of SM components (S-invariants)

Page 86: Petri Nets

86

Hack’s theorem (‘72)

• Let N be a Free-Choice PN:– N has a live and safe initial marking (well-formed)

if and only if• every MG reduction is strongly connected and not empty, and

the set of all reductions covers the net

• every SM reduction is strongly connected and not empty, and

the set of all reductions covers the net

Page 87: Petri Nets

87

Hack’s theorem

• Example of non-live (but safe) FCN

Page 88: Petri Nets

88

Hack’s theorem

• Example of non-live (but safe) FCN

Page 89: Petri Nets

89

Hack’s theorem

• Example of non-live (but safe) FCN

Page 90: Petri Nets

90

Hack’s theorem

• Example of non-live (but safe) FCN

Page 91: Petri Nets

91

Hack’s theorem

• Example of non-live (but safe) FCN

Page 92: Petri Nets

92

Hack’s theorem

• Example of non-live (but safe) FCN

Page 93: Petri Nets

93

Hack’s theorem

• Example of non-live (but safe) FCN

Page 94: Petri Nets

94

Hack’s theorem

• Example of non-live (but safe) FCN

Page 95: Petri Nets

95

Hack’s theorem

• Example of non-live (but safe) FCN

Page 96: Petri Nets

96

Hack’s theorem

• Example of non-live (but safe) FCN

Page 97: Petri Nets

97

Hack’s theorem

• Example of non-live (but safe) FCN

Page 98: Petri Nets

98

Hack’s theorem

• Example of non-live (but safe) FCN

Page 99: Petri Nets

99

Hack’s theorem

• Example of non-live (but safe) FCN

Page 100: Petri Nets

100

Hack’s theorem

• Example of non-live (but safe) FCN

Page 101: Petri Nets

101

Hack’s theorem

• Example of non-live (but safe) FCN

Page 102: Petri Nets

102

Hack’s theorem

• Example of non-live (but safe) FCN

Not live

Page 103: Petri Nets

103

Summary of LSFC nets

• Largest class for which structural theory really helps

• Structural component analysis may be expensive (exponential number of MG and SM components in the

worst case)

• But… – number of MG components is generally small

– FC restriction simplifies characterization of behavior

Page 104: Petri Nets

104

Petri Net extensions

• Add interpretation to tokens and transitions– Colored nets (tokens have value)

• Add time– Time/timed Petri Nets (deterministic delay)

• type (duration, delay)• where (place, transition)

– Stochastic PNs (probabilistic delay)– Generalized Stochastic PNs (timed and immediate

transitions)

• Add hierarchy– Place Charts Nets

Page 105: Petri Nets

105

Summary of Petri Nets

• Graphical formalism• Distributed state (including buffering)• Concurrency, sequencing and choice made

explicit• Structural and behavioral properties• Analysis techniques based on

– linear algebra – structural analysis (necessary and sufficient only for

FC)