petri nets
DESCRIPTION
Petri Nets. Marco Sgroi EE249 - Fall 2001 Most slides borrowed from Luciano Lavagno’s lecture ee249 (1998). Models Of Computation for reactive systems. Main MOCs: Communicating Finite State Machines Dataflow Process Networks Discrete Event Codesign Finite State Machines Petri Nets - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/1.jpg)
1
Petri Nets
Marco SgroiEE249 - Fall 2001
Most slides borrowed from Luciano Lavagno’s lecture ee249 (1998)
![Page 2: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/2.jpg)
2
Models Of Computationfor reactive systems
• Main MOCs:– Communicating Finite State Machines
– Dataflow Process Networks
– Discrete Event
– Codesign Finite State Machines
– Petri Nets
• Main languages:– StateCharts
– Esterel
– Dataflow networks
![Page 3: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/3.jpg)
3
Outline
• Petri nets– Introduction– Examples– Properties– Analysis techniques
![Page 4: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/4.jpg)
4
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 • Main drawback: no hierarchy
![Page 5: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/5.jpg)
5
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 6: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/6.jpg)
6
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 7: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/7.jpg)
7
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 8: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/8.jpg)
8
Concurrency, causality, choice
t1
t
2
t3 t4
t5
t6
![Page 9: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/9.jpg)
9
Concurrency, causality, choice
Concurrency
t1
t
2
t3 t4
t5
t6
![Page 10: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/10.jpg)
10
Concurrency, causality, choice
Causality, sequencing
t1
t
2
t3 t4
t5
t6
![Page 11: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/11.jpg)
11
Concurrency, causality, choice
Choice,
conflict
t1
t
2
t3 t4
t5
t6
![Page 12: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/12.jpg)
12
Concurrency, causality, choice
Choice,
conflict
t1
t
2
t3 t4
t5
t6
![Page 13: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/13.jpg)
13
Communication Protocol
P1
Send msg
Receive Ack
Send Ack
Receive msg
P2
![Page 14: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/14.jpg)
14
Communication Protocol
P1
Send msg
Receive Ack
Send Ack
Receive msg
P2
![Page 15: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/15.jpg)
15
Communication Protocol
P1
Send msg
Receive Ack
Send Ack
Receive msg
P2
![Page 16: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/16.jpg)
16
Communication Protocol
P1
Send msg
Receive Ack
Send Ack
Receive msg
P2
![Page 17: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/17.jpg)
17
Communication Protocol
P1
Send msg
Receive Ack
Send Ack
Receive msg
P2
![Page 18: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/18.jpg)
18
Communication Protocol
P1
Send msg
Receive Ack
Send Ack
Receive msg
P2
![Page 19: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/19.jpg)
19
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 20: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/20.jpg)
20
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 21: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/21.jpg)
21
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 22: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/22.jpg)
22
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 23: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/23.jpg)
23
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 24: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/24.jpg)
24
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 25: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/25.jpg)
25
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 26: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/26.jpg)
26
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 27: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/27.jpg)
27
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 28: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/28.jpg)
28
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 29: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/29.jpg)
29
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 30: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/30.jpg)
30
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 31: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/31.jpg)
31
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 32: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/32.jpg)
32
Producer-Consumer Problem
Produce
Consume
Buffer
![Page 33: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/33.jpg)
33
Producer-Consumer with priority
Consumer B can
consume only if
buffer A is empty
Inhibitor arcs
A
B
![Page 34: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/34.jpg)
34
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 35: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/35.jpg)
35
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 36: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/36.jpg)
36
• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa
Liveness
Not live
![Page 37: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/37.jpg)
37
• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa
Liveness
Not live
![Page 38: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/38.jpg)
38
• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa
Liveness
Deadlock-free
![Page 39: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/39.jpg)
39
• Liveness: from any marking any transition can become fireable– Liveness implies deadlock freedom, not viceversa
Liveness
Deadlock-free
![Page 40: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/40.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/41.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/42.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/43.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/44.jpg)
44
• 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 45: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/45.jpg)
45
Conservation
• Conservation: the total number of tokens in the net is constant
Not conservative
![Page 46: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/46.jpg)
46
Conservation
• Conservation: the total number of tokens in the net is constant
Not conservative
![Page 47: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/47.jpg)
47
Conservation
• Conservation: the total number of tokens in the net is constant
Conservative
2
2
![Page 48: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/48.jpg)
48
Analysis techniques
• Structural analysis techniques– Incidence matrix
– T- and S- Invariants
• State Space Analysis techniques– Coverability Tree
– Reachability Graph
![Page 49: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/49.jpg)
49
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 50: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/50.jpg)
50
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 51: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/51.jpg)
51
Necessary Condition only
22
Firing vector:
(1,2,2)
t1
t2
t3
Deadlock!!
![Page 52: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/52.jpg)
52
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 53: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/53.jpg)
53
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 54: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/54.jpg)
54
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 55: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/55.jpg)
55
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 56: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/56.jpg)
56
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 57: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/57.jpg)
57
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 58: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/58.jpg)
58
Coverability Tree• Boundedness is decidable
with coverability tree
p1 p2 p3
p4
t1t2
t3
1000
![Page 59: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/59.jpg)
59
Coverability Tree• Boundedness is decidable
with coverability tree
p1 p2 p3
p4
t1t2
t3
1000
0100t1
![Page 60: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/60.jpg)
60
Coverability Tree• Boundedness is decidable
with coverability tree
p1 p2 p3
p4
t1t2
t3
1000
0100
0011
t1
t3
![Page 61: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/61.jpg)
61
Coverability Tree• Boundedness is decidable
with coverability tree
p1 p2 p3
p4
t1t2
t3
1000
0100
0011
t1
t3
0101
t2
![Page 62: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/62.jpg)
62
Coverability Tree• Boundedness is decidable
with coverability tree
Cannot solve the reachability and liveness problems
p1 p2 p3
p4
t1t2
t3
1000
0100
0011
t1
t3
t2010
![Page 63: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/63.jpg)
63
Coverability Tree• Boundedness is decidable
with coverability tree
Cannot solve the reachability and liveness problems
p1 p2 p3
p4
t1t2
t3
1000
0100
0011
t1
t3
t2010
![Page 64: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/64.jpg)
64
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 65: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/65.jpg)
65
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 66: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/66.jpg)
66
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 67: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/67.jpg)
67
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 68: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/68.jpg)
68
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 69: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/69.jpg)
69
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 70: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/70.jpg)
70
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 71: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/71.jpg)
71
Subclasses of Petri nets: FC nets
• Free-Choice net: every transition after choice has exactly 1 predecessor
![Page 72: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/72.jpg)
72
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 73: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/73.jpg)
73
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 74: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/74.jpg)
74
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 75: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/75.jpg)
75
• Choose one successor for each conflicting place:
MG reduction and cover
![Page 76: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/76.jpg)
76
• Choose one successor for each conflicting place:
MG reduction and cover
![Page 77: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/77.jpg)
77
• Choose one successor for each conflicting place:
MG reduction and cover
![Page 78: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/78.jpg)
78
• Choose one successor for each conflicting place:
MG reduction and cover
![Page 79: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/79.jpg)
79
• Choose one successor for each conflicting place:
MG reduction and cover
![Page 80: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/80.jpg)
80
MG reductions• The set of all reductions yields a cover of MG
components (T-invariants)
![Page 81: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/81.jpg)
81
MG reductions• The set of all reductions yields a cover of MG
components (T-invariants)
![Page 82: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/82.jpg)
82
SM reduction and cover
• Choose one predecessor for each transition:
![Page 83: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/83.jpg)
83
SM reduction and cover
• Choose one predecessor for each transition:
![Page 84: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/84.jpg)
84
SM reduction and cover
• Choose one predecessor for each transition:
• The set of all reductions yields a cover of SM components (S-invariants)
![Page 85: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/85.jpg)
85
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 86: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/86.jpg)
86
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 87: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/87.jpg)
87
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 88: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/88.jpg)
88
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 89: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/89.jpg)
89
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 90: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/90.jpg)
90
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 91: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/91.jpg)
91
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 92: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/92.jpg)
92
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 93: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/93.jpg)
93
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 94: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/94.jpg)
94
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 95: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/95.jpg)
95
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 96: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/96.jpg)
96
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 97: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/97.jpg)
97
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 98: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/98.jpg)
98
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 99: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/99.jpg)
99
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 100: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/100.jpg)
100
Hack’s theorem
• Example of non-live (but safe) FCN
![Page 101: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/101.jpg)
101
Hack’s theorem
• Example of non-live (but safe) FCN
Not live
![Page 102: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/102.jpg)
102
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 103: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/103.jpg)
103
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 104: Petri Nets](https://reader036.vdocument.in/reader036/viewer/2022062408/568134e0550346895d9c1671/html5/thumbnails/104.jpg)
104
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)