petri nets refesher
Post on 06-Jan-2016
32 Views
Preview:
DESCRIPTION
TRANSCRIPT
/faculteit technologie management
PN-1
Petri nets refesher
Prof.dr.ir. Wil van der AalstEindhoven University of Technology, Faculty of Technology Management,
Department of Information and Technology, P.O.Box 513, NL-5600 MB,
Eindhoven, The Netherlands.
/faculteit technologie management
PN-2
Petri netsClassical Petri nets: The basic model
Prof.dr.ir. Wil van der AalstEindhoven University of Technology, Faculty of Technology Management,
Department of Information and Technology, P.O.Box 513, NL-5600 MB,
Eindhoven, The Netherlands.
/faculteit technologie management
PN-3
Process modeling
• Emphasis on dynamic behavior rather than structuring the state space
• Transition system is too low level
• We start with the classical Petri net
• Then we extend it with:– Color
– Time
– Hierarchy
/faculteit technologie management
PN-4
Classical Petri net
• Simple process model– Just three elements: places, transitions and arcs.– Graphical and mathematical description.– Formal semantics and allows for analysis.
• History:– Carl Adam Petri (1962, PhD thesis)– In sixties and seventies focus mainly on theory.– Since eighties also focus on tools and applications
(cf. CPN work by Kurt Jensen).– “Hidden” in many diagramming techniques and
systems.
/faculteit technologie management
PN-5
Elements
(name)
(name)
place
transition
arc (directed connection)
token
t34 t43
t23 t32
t12 t21
t01 t10
p4
p3
p2
p1
p0
place
transition
token
/faculteit technologie management
PN-6
Rules
• Connections are directed.
• No connections between two places or two transitions.
• Places may hold zero or more tokens.
• First, we consider the case of at most one arc between two nodes.
wait enter before make_picture after leave gone
free
occupied
/faculteit technologie management
PN-7
Enabled
• A transition is enabled if each of its input places contains at least one token.
wait enter before make_picture after leave gone
free
occupied
enabled Not enabled
Not enabled
/faculteit technologie management
PN-8
Firing
• An enabled transition can fire (i.e., it occurs).
• When it fires it consumes a token from each input place and produces a token for each output place.
wait enter before make_picture after leave gone
free
occupied
fired
/faculteit technologie management
PN-9
Play “Token Game”
• In the new state, make_picture is enabled. It will fire, etc.
wait enter before make_picture after leave gone
free
occupied
/faculteit technologie management
PN-10
Remarks
• Firing is atomic.
• Multiple transitions may be enabled, but only one fires at a time, i.e., we assume interleaving semantics (cf. diamond rule).
• The number of tokens may vary if there are transitions for which the number of input places is not equal to the number of output places.
• The network is static.
• The state is represented by the distribution of tokens over places (also referred to as marking).
/faculteit technologie management
PN-11
Non-determinism
t34 t43
t23 t32
t12 t21
t01 t10
p4
p3
p2
p1
p0
transition t23fires
t34 t43
t23 t32
t12 t21
t01 t10
p4
p3
p2
p1
p0
Two transitions are enabled but only one can fire
/faculteit technologie management
PN-12
Example: Single traffic light rg
go
or
red
green
orange
/faculteit technologie management
PN-13
Two traffic lights
rg
go
or
red
green
orange
rg
go
or
red
green
orange
rg
go
or
red
green
orange
OR
/faculteit technologie management
PN-14
Problem
/faculteit technologie management
PN-15
Solution
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
How to make them alternate?
/faculteit technologie management
PN-16
Playing the “Token Game” on the Internet
• Applet to build your own Petri nets and execute them: http://www.tm.tue.nl/it/staff/wvdaalst/Downloads/pn_applet/pn_applet.html
• FLASH animations: http://www.tm.tue.nl/it/staff/wvdaalst/courses/pm/flash/
/faculteit technologie management
PN-17
Exercise: Train system (1)
• Consider a circular railroad system with 4 (one-way) tracks (1,2,3,4) and 2 trains (A,B). No two trains should be at the same track at the same time and we do not care about the identities of the two trains.
/faculteit technologie management
PN-18
Exercise: Train system (2)
• Consider a railroad system with 4 tracks (1,2,3,4) and 2 trains (A,B). No two trains should be at the same track at the same time and we want to distinguish the two trains.
/faculteit technologie management
PN-19
Exercise: Train system (3)
• Consider a railroad system with 4 tracks (1,2,3,4) and 2 trains (A,B). No two trains should be at the same track at the same time. Moreover the next track should also be free to allow for a safe distance. (We do not care about train identities.)
/faculteit technologie management
PN-20
Exercise: Train system (4)
• Consider a railroad system with 4 tracks (1,2,3,4) and 2 trains. Tracks are free, busy or claimed. Trains need to claim the next track before entering.
/faculteit technologie management
PN-21
WARNINGIt is not sufficient to understand the (process) models. You have to be
able to design them yourself !
/faculteit technologie management
PN-22
Multiple arcs connecting two nodes
• The number of arcs between an input place and a transition determines the number of tokens required to be enabled.
• The number of arcs determines the number of tokens to be consumed/produced.
wait enter before make_picture after leave gone
free
/faculteit technologie management
PN-23
Example: Ball game
red
rr
rb
bb
black
/faculteit technologie management
PN-24
Exercise: Manufacturing a chair
• Model the manufacturing of a chair from its components: 2 front legs, 2 back legs, 3 cross bars, 1 seat frame, and 1 seat cushion as a Petri net.
• Select some sensible assembly order.
• Reverse logistics?
/faculteit technologie management
PN-25
Exercise: Burning alcohol.
• Model C2H5OH + 3 * O2 => 2 * CO2 + 3 * H2O
• Assume that there are two steps: first each molecule is disassembled into its atoms and then these atoms are assembled into other molecules.
/faculteit technologie management
PN-26
Exercise: Manufacturing a car
• Model the production process shown in the Bill-Of-Materials.
car
engine
subassembly1
subassembly2
wheelchassis
chair2
4
/faculteit technologie management
PN-27
Formal definition
A classical Petri net is a four-tuple (P,T,I,O) where:
• P is a finite set of places,
• T is a finite set of transitions,
• I : P x T -> N is the input function, and
• O : T x P -> N is the output function.
Any diagram can be mapped onto such a four tuple and vice versa.
/faculteit technologie management
PN-28
Formal definition (2)
The state (marking) of a Petri net (P,T,I,O) is defined as follows:
• s: P-> N, i.e., a function mapping the set of places onto {0,1,2, … }.
/faculteit technologie management
PN-29
Exercise: Map onto (P,T,I,O) and S
red
rr
rb
bb
black
/faculteit technologie management
PN-30
Exercise: Draw diagram
Petri net (P,T,I,O):
• P = {a,b,c,d}
• T = {e,f}
• I(a,e)=1, I(b,e)=2, I(c,e)=0, I(d,e)=0, I(a,f)=0, I(b,f)=0, I(c,f)=1, I(d,f)=0.
• O(e,a)=0, O(e,b)=0, O(e,c)=1, O(e,d)=0, O(f,a)=0, O(f,b)=2, O(f,c)=0, O(f,d)=3.
State s:
• s(a)=1, s(b)=2, s(c)=0, s(d) = 0.
/faculteit technologie management
PN-31
Enabling formalized
Transition t is enabled in state s1 if and only if:
/faculteit technologie management
PN-32
Firing formalized
If transition t is enabled in state s1, it can fire and the resulting state is s2 :
/faculteit technologie management
PN-33
Mapping Petri nets onto transition systems
A Petri net (P,T,I,O) defines the following transition system (S,TR):
/faculteit technologie management
PN-34
Reachability graph
• The reachability graph of a Petri net is the part of the transition system reachable from the initial state in graph-like notation.
• The reachability graph can be calculated as follows:
1. Let X be the set containing just the initial state and let Y be the empty set.
2. Take an element x of X and add this to Y. Calculate all states reachable for x by firing some enabled transition. Each successor state that is not in Y is added to X.
3. If X is empty stop, otherwise goto 2.
/faculteit technologie management
PN-35
Examplered
rr
rb
bb
black
(3,2)
(1,3) (1,2)
(3,1) (3,0)
(1,1)
(1,0)
Nodes in the reachability graph can be represented by a vector “(3,2)” or as “3 red + 2 black”. The latter is useful for “sparse states” (i.e., few places are marked).
/faculteit technologie management
PN-36
Exercise: Give the reachability graph using both notations
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
/faculteit technologie management
PN-37
Different types of states
• Initial state: Initial distribution of tokens.• Reachable state: Reachable from initial state.• Final state (also referred to as “dead states”):
No transition is enabled.• Home state (also referred to as home marking):
It is always possible to return (i.e., it is reachable from any reachable state).
How to recognize these states in the reachability graph?
/faculteit technologie management
PN-38
Exercise: Producers and consumers
• Model a process with one producer and one consumer, both are either busy or free and alternate between these two states. After every production cycle the producer puts a product in a buffer. The consumer consumes one product from this buffer per cycle.
• Give the reachability graph and indicate the final states.
• How to model 4 producers and 3 consumers connected through a single buffer?
• How to limit the size of the buffer to 4?
/faculteit technologie management
PN-39
Exercise: Two switches
• Consider a room with two switches and one light. The light is on or off. The switches are in state up or down. At any time any of the switches can be used to turn the light on or off.
• Model this as a Petri net.
• Give the reachability graph.
/faculteit technologie management
PN-40
Modeling
• Place: passive element
• Transition: active element
• Arc: causal relation
• Token: elements subject to change
The state (space) of a process/system is modeled by places and tokens and state transitions are modeled by transitions (cf. transition systems).
/faculteit technologie management
PN-41
Role of a token
Tokens can play the following roles:
• a physical object, for example a product, a part, a drug, a person;
• an information object, for example a message, a signal, a report;
• a collection of objects, for example a truck with products, a warehouse with parts, or an address file;
• an indicator of a state, for example the indicator of the state in which a process is, or the state of an object;
• an indicator of a condition: the presence of a token indicates whether a certain condition is fulfilled.
/faculteit technologie management
PN-42
Role of a place
• a type of communication medium, like a telephone line, a middleman, or a communication network;
• a buffer: for example, a depot, a queue or a post bin;
• a geographical location, like a place in a warehouse, office or hospital;
• a possible state or state condition: for example, the floor where an elevator is, or the condition that a specialist is available.
/faculteit technologie management
PN-43
Role of a transition
• an event: for example, starting an operation, the death of a patient, a change seasons or the switching of a traffic light from red to green;
• a transformation of an object, like adapting a product, updating a database, or updating a document;
• a transport of an object: for example, transporting goods, or sending a file.
/faculteit technologie management
PN-44
Typical network structures
• Causality
• Parallelism (AND-split - AND-join)
• Choice (XOR-split – XOR-join)
• Iteration (XOR-join - XOR-split)
• Capacity constraints– Feedback loop
– Mutual exclusion
– Alternating
/faculteit technologie management
PN-45
Causality
/faculteit technologie management
PN-46
Parallelism
/faculteit technologie management
PN-47
Parallelism: AND-split
/faculteit technologie management
PN-48
Parallelism: AND-join
/faculteit technologie management
PN-49
Choice: XOR-split
/faculteit technologie management
PN-50
Choice: XOR-join
/faculteit technologie management
PN-51
Iteration: 1 or more times
XOR-join before XOR-split
/faculteit technologie management
PN-52
Iteration: 0 or more times
XOR-join before XOR-split
/faculteit technologie management
PN-53
Capacity constraints: feedback loop
AND-join before AND-split
/faculteit technologie management
PN-54
Capacity constraints: mutual exclusion
AND-join before AND-split
/faculteit technologie management
PN-55
Capacity constraints: alternating
AND-join before AND-split
/faculteit technologie management
PN-56
We have seen most patterns, e.g.:
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
How to make them alternate?
Example of mutual exclusion
/faculteit technologie management
PN-57
Exercise: Manufacturing a car (2)
• Model the production process shown in the Bill-Of-Materials with resources.
• Each assembly step requires a dedicated machine and an operator.
• There are two operators and one machine of each type.
• Hint: model both the start and completion of an assembly step.
car
engine
subassembly1
subassembly2
wheelchassis
chair2
4
/faculteit technologie management
PN-58
Modeling problem (1): Zero testing
• Transition t should fire if place p is empty.
t ?
p
/faculteit technologie management
PN-59
Solution
• Only works if place is N-bounded
tN input and output arcs
Initially there are N tokens
p
p’
/faculteit technologie management
PN-60
Modeling problem (2): Priority
• Transition t1 has priority over t2
t1
t2
?
Hint: similar to Zero testing!
/faculteit technologie management
PN-61
A bit of theory
• Extensions have been proposed to tackle these problems, e.g., inhibitor arcs.
• These extensions extend the modeling power (Turing completeness*).
• Without such an extension not Turing complete.• Still certain questions are difficult/expensive to
answer or even undecidable (e.g., equivalence of two nets).
* Turing completeness corresponds to the ability to execute any computation.
/faculteit technologie management
PN-62
Exercise: Witness statements
• As part of the process of handling insurance claims there is the handling of witness statements.
• There may be 0-10 witnesses per claim. After an initialization step (one per claim), each of the witnesses is registered, contacted, and informed (i.e., 0-10 per claim in parallel). Only after all witness statements have been processed a report is made (one per claim).
• Model this in terms of a Petri net.
/faculteit technologie management
PN-63
Exercise: Dining philosophers
• 5 philosophers sharing 5 chopsticks: chopsticks are located in-between philosophers
• A philosopher is either in state eating or thinking and needs two chopsticks to eat.
• Model as a Petri net.
/faculteit technologie management
PN-64
High level Petri netsExtending classical Petri nets with color, time and hierarchy (informal introduction)
Prof.dr.ir. Wil van der AalstEindhoven University of Technology, Faculty of Technology Management,
Department of Information and Technology, P.O.Box 513, NL-5600 MB,
Eindhoven, The Netherlands.
/faculteit technologie management
PN-65
Limitations of classical Petri nets
• Inability to test for zero tokens in a place.
• Models tend to become large.
• Models cannot reflect temporal aspects
• No support for structuring large models, cf. top-down and bottom-up design
/faculteit technologie management
PN-66
Inability to test for zero tokens in a place
t ?
p
“Tricks” only work if p is bounded
/faculteit technologie management
PN-67
Models tend to become (too) larger1
incr1
bike
decr1
l1
r2
incr2
wheel
decr2
l2
r3
incr3
bell
decr3
l3
r4
incr4
steeringwheel
decr4
l4
r5
incr5
frame
decr5
l5
Size linear in the number of products.
/faculteit technologie management
PN-68
Models tend to become (too) large (2)
Size linear in the number of tracks.
transfer
c1
b1
f1
c 2
b 2
f 2
transfer transfer
c 3
b 3
f 3
c 4
b 4
f 4
transfer transfer
c1
b1
f1
claim_track
c 2
b 2
f 2
transfer transfer
c 3
b 3
f 3
c 4
b 4
f 4
transfer
claim_track claim_track claim_track
/faculteit technologie management
PN-69
Models cannot reflect temporal aspects
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
Duration of each phase is highly
relevant.
/faculteit technologie management
PN-70
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
No support for structuring large models
/faculteit technologie management
PN-71
High-level Petri nets
• To tackle the problems identified.• Petri nets extended with:
– Color (i.e., data)– Time– Hierarchy
• For the time being be do not choose a concrete language but focus on the main concepts.
• Later we focus on a concrete language: CPN.• These concepts are supported by many variants
of CPN including ExSpect, CPN AMI, etc.
/faculteit technologie management
PN-72
Running example: Making punch cards
start
donewait
stop
busy
free
waiting patients
served patients
free desk employees
patient/ employees
/faculteit technologie management
PN-73
Extension with color (1)
• Tokens have a color (i.e., a data value)
{Brand="BMW", RegistrationNo="GD-XW-11", Year=1993, Colour="blue", Owner= "Inge"}
{Brand="Lada", RegistrationNo="PH-14-PX", Year=1986, Color="grey", Owner="Inge"}
/faculteit technologie management
PN-74
Extension with color (2)
• Places are typed (also referred to as color set).
{Brand="BMW", RegistrationNo="GD-XW-11", Year=1993, Colour="blue", Owner= "Inge"}
{Brand="Lada", RegistrationNo="PH-14-PX", Year=1986, Color="grey", Owner="Inge"}
record Brand:string * RegistrationNo:string * Year:int * Color:string * Owner:string
/faculteit technologie management
PN-75
Extension with color (3)
• The relation between production and consumption needs to be specified, i.e., the value of a produced token needs to be related to the values of consumed tokens.
add
in sum
0
3
23
1 The value of the token produced for place sum is the sum of the values of
the consumed tokens.
/faculteit technologie management
PN-76
Running example: Tokens are colored
start
donewait
stop
busy
free
{Name="Klaas", Address="Plein 10", DateOfBirth="13-Dec-1962", Gender="M"}
{EmpNo=641112, Experience=7}
/faculteit technologie management
PN-77
Running example: Places are typed
start
donewait
stop
busy
free
record EmpNo:int * Experience:int
record Name:string *Address:string *DateOfBirth:str *Gender:string
record Name:string *Address:string *DateOfBirth:str *
Gender:stringrecord Name:string *Address:string *DateOfBirth:str *Gender:string *EmpNo:int *Experience:int
/faculteit technologie management
PN-78
Running example: Initial state
start
donewait
stop
busy
free
{Name="Klaas", Address="Plein 10", DateOfBirth="13-Dec-1962", Gender="M"}
{EmpNo=641112, Experience=7}
start is enabled
/faculteit technologie management
PN-79
Running example: Transition start fired
stop is enabled
start
donewait
stop
busy
free
{Name="Klaas", Address="Plein 10", DateOfBirth="13-Dec-1962", Gender="M", EmpNo=641112, Experience=7}
New value is created by simply merging the two records.
/faculteit technologie management
PN-80
Running example: Transition stop fired
New values are created by simply spliting the record into two parts.
start
donewait
stop
busy
free
{Name="Klaas", Address="Plein 10", DateOfBirth="13-Dec-1962", Gender="M"}
{EmpNo=641112, Experience=7}
/faculteit technologie management
PN-81
The number of tokens produced is no longer fixed (1)
test
samplenegative
positive
{sample_number=931101011, measurement_outcomes="XYV"}
{sample_number=931101023, measurement_outcomes="VXY"}
Note that the network structure is no longer a complete specification!
/faculteit technologie management
PN-82
The number of tokens produced is no longer fixed (2)
test
samplenegative
positive
{sample_number=931101011, measurement_outcomes="XYV"}
The number of tokens produced for each output place is between 0 and 3 and the sum should be 3.
/faculteit technologie management
PN-83
Example
Model as a colored Petri net.
r1
incr1
bike
decr1
l1
r2
incr2
wheel
decr2
l2
r3
incr3
bell
decr3
l3
r4
incr4
steeringwheel
decr4
l4
r5
incr5
frame
decr5
l5
/faculteit technologie management
PN-84
in
increase
[{prod="bike", num=4},{prod="wheel", num=2},{prod="bell", number=3},{prod="steering wheel", num=3},{prod="frame", num=2}]
decrease
out
stock
{prod="bell", num=2}
The entire stock is
represented by the value of a single token, i.e., a list of
records.
Product and quantity are in the value of the
token
/faculteit technologie management
PN-85
Types
in
increase
[{prod="bike", num=4},{prod="wheel", num=2},{prod="bell", number=3},{prod="steering wheel", num=3},{prod="frame", num=2}]
decrease
out
stock
{prod="bell", num=2}
color Product = string;
color Number = int;
color StockItem = record prod:Product * num:Number;
color Stock = list StockItem;
StockItem
StockItem
Stock
/faculteit technologie management
PN-86
Extension with time (1)
• Each token has a timestamp.
• The timestamp specifies the earliest time when it can be consumed.
2 5
/faculteit technologie management
PN-87
Extension with time (2)
• The enabling time of a transition is the maximum of the tokens to be consumed.
• If there are multiple tokens in a place, the earliest ones are consumed first.
• A transition with the smallest firing time will fire first.• Transitions are eager, i.e., they fire as soon as they
can.• Produced token may have a delay.• The timestamp of a produced token is the firing
time plus its delay.
/faculteit technologie management
PN-88
Running example: Enabling time
• Transition start is enabled at time 2 = max{0,min{2,4,4}}.
start
donewait
stop
busy
free
4
2
4
0
/faculteit technologie management
PN-89
Running example: Delays
• Tokens for place busy get a delay of 3
• @+3 = firing time plus 3 time units
start
donewait
stop
busy
free
4
2
4
0
@+3
@+0
@+0
/faculteit technologie management
PN-90
Running example: Transition start fired
• Transition start fired a time 2.
start
donewait
stop
busy
free
4 5
4
@+0
@+0
@+3
Continue to play (timed) token game…
/faculteit technologie management
PN-91
Exercise: Final state?
x
y
d
e
b
a
c
4
3
5
1
@+1
@+2
/faculteit technologie management
PN-92
Exercise: Final state?
red
rr
rb
bb
black
3
1
2
4
2
@+1@+1
@+2
/faculteit technologie management
PN-93
Extension with hierarchy
• Timed and colored Petri nets result in more compact models.
• However, for complex systems/processes the model does not fit on a single page.
• Moreover, putting things at the same level does not reflect the structure of the process/system.
• Many hierarchy concepts are possible. In this course we restrict ourselves to transition refinement.
/faculteit technologie management
PN-94
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
Instead of
/faculteit technologie management
PN-95
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
tl1 tl2
x
x
We can use hierarchy
/faculteit technologie management
PN-96
rg
go
or
r
g
tl1 tl2
x
x
o
Reuse
• Reuse saves design efforts.
• Hierarchy can have any number of levels
• Transition refinement can be used for top-down and bottom-up design
/faculteit technologie management
PN-97
Exercise: model three (parallel) punch card desks in a hierarchical manner
start
donewait
stop
busy
free
/faculteit technologie management
PN-98
Analysis of Process Models:Reachability graphs, invariants, and simulation
Prof.dr.ir. Wil van der AalstEindhoven University of Technology, Faculty of Technology Management,
Department of Information and Technology, P.O.Box 513, NL-5600 MB,
Eindhoven, The Netherlands.
/faculteit technologie management
PN-99
Questions raised when considering the handling of customer orders
• How many orders arrive on average?
• How many orders can be handled?
• Do orders get lost?
• Do back orders always have priority?
• What is the utilization of office workers?
• If the desired product is no longer available, does the order get stuck?
• Etc.
/faculteit technologie management
PN-100
Questions raised when considering the handling of customers in the canteen
• What is the average waiting time from 12.30-13.00?
• What is the variance of waiting times?
• What is the effect of an additional cashier on the queue length?
• Etc.
/faculteit technologie management
PN-101
Questions raised when considering the an intersection with multiple traffic lights
• How much traffic can be handled per hour?
• Give some volume of traffic, what is the probability to get a red light?
• Is the intersection safe, i.e., crossing flows have never a green light at the same time?
• Can a light go from yellow to green?
• Is the intersection fair (i.e., a trafficlight cannot turn green twice whilecars are waiting on the other side)?
/faculteit technologie management
PN-102
Questions raised when considering a printer shared by multiple users
• Can two print jobs get mixed?
• Do small jobs always get priority?
• Can the settings of one job influence the next job?
• Do out-of-paper events cause jobsto get lost?
• How many jobs can be handled per day?
• What is the probability of a paper jam?
/faculteit technologie management
PN-103
Questions raised when considering a teller machine
• What is the average response time?
• Is there a balance, i.e., the amount of money leaving the machine matches the amount taken from bank accounts?
• How often should the machine be filledto guarantee 90% availability?
• Is fraud possible?
• Etc.
/faculteit technologie management
PN-104
Analysis
Operational process I nf ormation
System
Model
• Analysis is typically model-driven to allow e.g. what-if questions.
• Models of both operational processes and/or the information systems can be analyzed.
• Types of analysis:
– validation– verification– performance analysis
/faculteit technologie management
PN-105
Three analysis techniques (Chapter 8)
• Reachability graph• Place & transition invariants• Simulation
• Each can be applied to both classical and high-level Petri nets. Nevertheless, for the first two we restrict ourselves to the classical Petri nets.
• Use:– reachability graph (validation, verification)– invariants (validation, verification)– simulation (validation, performance analysis)
/faculteit technologie management
PN-106
Reachability graph
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
(1,0,0,1,0,0,1)
(0,1,0,1,0,0,0) (1,0,0,0,1,0,0)
(1,0,0,0,0,1,0)(0,0,1,1,0,0,0)
Five reachable states.Traffic lights are safe!
/faculteit technologie management
PN-107
Alternative notation
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
r1+r2+x
g1+r2 r1+g2
r1+o2o1+r2
/faculteit technologie management
PN-108
Reachability graph (2)
• Graph containing a node for each reachable state.
• Constructed by starting in the initial state, calculate all directly reachable states, etc.
• Expensive technique.
• Only feasible if finitely many states (otherwise use coverability graph).
• Difficult to generate diagnostic information.
/faculteit technologie management
PN-109
Infinite reachability graphrg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
/faculteit technologie management
PN-110
Exercise: Construct reachability graph
wait enter before make_picture after leave gone
free
occupied
/faculteit technologie management
PN-111
Exercise: Dining philosophers (1)
• 5 philosophers sharing 5 chopsticks: chopsticks are located in-between philosophers
• A philosopher is either in state eating or thinking and needs two chopsticks to eat.
• Model as a Petri net.
/faculteit technologie management
PN-112
Exercise: Dining philosophers (2)
• Assume that philosophers take the chopsticks one by one such that first the right-hand one is taken and then the left-hand one.
• Model as a Petri net.• Is there a deadlock?
/faculteit technologie management
PN-113
Exercise: Dining philosophers (3)
• Assume that philosopher take the chopsticks one by one in any order and with the ability to return a chopstick.
• Model as a Petri net.• Is there a deadlock?
/faculteit technologie management
PN-114
Structural analysis techniques
• To avoid state-explosion problem and bad diagnostics.
• Properties independent of initial state.
• We only consider place and transition invariants.
• Invariants can be computed using linear algebraic techniques.
/faculteit technologie management
PN-115
Place invariant
• Assigns a weight to each place.
• The weight of a token depends on the weight of the place.
• The weighted token sum is invariant, i.e., no transition can change it
couple
man
woman
marriage divorce
1 man + 1 woman + 2 couple
/faculteit technologie management
PN-116
Other invariants
• 1 man + 0 woman + 1 couple
(Also denoted as: man + couple)
• 2 man + 3 woman + 5 couple
• -2 man + 3 woman + couple
• man – woman
• woman – man
(Any linear combination of invariants is an invariant.)
couple
man
woman
marriage divorce
/faculteit technologie management
PN-117
Example: traffic light
• r1 + g1 + o1
• r2 + g2 + o2
• r1 + r2 + g1 + g2 + o1 + o2
• x + g1 + o1 + g2 + o2
• r1 + r2 - x
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
/faculteit technologie management
PN-118
Exercise: Give place invariants
free producer
start_production
end_production
wait consumer
start_consumption
end_consumption
product
/faculteit technologie management
PN-119
Transition invariant• Assigns a weight to
each transition.• If each transition
fires the number of times indicated, the system is back in the initial state.
• I.e. transition invariants indicate potential firing sets without any net effect.
couple
man
woman
marriage divorce
2 marriage + 2 divorce
/faculteit technologie management
PN-120
Other invariants
• 1 marriage + 1 divorce
(Also denoted as: marriage + divorce)
• 20 marriage + 20 divorce
Any linear combination of invariants is an invariant, but transition invariants with negative weights have no obvious meaning.
Invariants may be not be realizable.
couple
man
woman
marriage divorce
/faculteit technologie management
PN-121
Example: traffic light
• rg1 + go1 + or1
• rg2 + go2 + or2
• rg1 + rg2 + go1 + go2 + or1 + or2
• 4 rg1 + 3 rg2 + 4 go1 +3 go2 + 4 or1 + 3 or2
rg1
go1
or1
r1
g1
o1
rg2
go2
or2
r2
g2
o2
x
/faculteit technologie management
PN-122
Exercise: Give transition invariants
free producer
start_production
end_production
wait consumer
start_consumption
end_consumption
product
/faculteit technologie management
PN-123
Exercise: four philosophers
• Give place invariants.
• Give transition invariants
t1
t2
t3
t4
e1
e2
e3
e4
c4 c1
c2c3
st1
se1
st2
st3
st4 se4
se3
se2
/faculteit technologie management
PN-124
Two ways of calculating invariants
• "Intuitive way": Formulate the property that you think holds and verify it.
• "Linear-algebraic way": Solve a system of linear equations.
Humans tend to do it the intuitive way and computers do it the linear-algebraic way.
/faculteit technologie management
PN-125
Incidence matrix of a Petri net
• Each row corresponds to a place.
• Each column corresponds to a transition.
• Recall that a Petri net is described by (P,T,I,O).
• N(p,t)=O(t,p)-I(p,t) where p is a place and t a transition.
couple
man
woman
marriage divorce
11
11
11
N
/faculteit technologie management
PN-126
Example
couple
man
woman
marriage divorce
11
11
11
N
manwoman
couple
marriage
divorce
/faculteit technologie management
PN-127
Place invariant
• Let N be the incidence matrix of a net with n places and m transitions
• Any solution of the equation X.N = 0 is a place invariant – X is a row vector (i.e., 1 x n matrix)
– O is a row vector (i.e., 1 x m matrix)
• Note that (0,0,... 0) is always a place invariant.
• Basis can be calculated in polynomial time.
/faculteit technologie management
PN-128
Example
Solutions:
• (0,0,0)
• (1,0,1)
• (0,1,1)
• (1,1,2)
• (1,-1,0)
couple
man
woman
marriage divorce
)0,0(
11
11
11
X
)0,0(
11
11
11
),,(
couplewomanman
/faculteit technologie management
PN-129
Transition invariant
• Let N be the incidence matrix of a net with n places and m transitions
• Any solution of the equation N.X = 0 is a transition invariant – X is a column vector (i.e., m x 1 matrix)
– 0 is a column vector (i.e., n x 1 matrix)
• Note that (0,0,... 0)T is always a transition invariant.
• Basis can be calculated in polynomial time.
/faculteit technologie management
PN-130
Example
Solutions:• (0,0)T
• (1,1)T
• (32,32)T
couple
man
woman
marriage divorce
0
0
0
11
11
11
X
0
0
0
11
11
11
divorce
marriage
/faculteit technologie management
PN-131
Exercise
• Give incidence matrix.• Calculate/check place invariants.• Calculate/check transition invariants.
free producer
start_production
end_production
wait consumer
start_consumption
end_consumption
product
/faculteit technologie management
PN-132
Simulation
• Most widely used analysis technique.• From a technical point of view just a "walk" in
the reachability graph.• By making many "walks" (in case of transient
behavior) or a very "long walk" (in case of steady-state) behavior, it is possible to make reliable statements about properties/ performance indicators.
• Used for validation and performance analysis.• Cannot be used to prove correctness!
/faculteit technologie management
PN-133
Stochastic process
• Simulation of a deterministic system is not very interesting.
• Simulation of an untimed system is not interesting.• In a timed and non-deterministic system, durations
and probabilities are described by some probability distribution.
• In other words, we simulate a stochastic process!
• CPN allows for the use of distributions using some internal random generator.
/faculteit technologie management
PN-134
Uniform distribution
pdf cumulative
/faculteit technologie management
PN-135
Negative exponential distribution
/faculteit technologie management
PN-136
Normal distribution
/faculteit technologie management
PN-137
Distributions in CPN Tools
Assume some library with functions:
• uniform(x,y)
• nexp(x)
• erlang(n,x)
• Etc.
A nice function is also C.ran() which returns a randomly selected element of finite color set C, e.g.,color C = int with 1..5;fun select1to5() = C.ran()returns a number between 1 and 5
/faculteit technologie management
PN-138
Example
throw_dice()trigger
color BT = unit;color Dice = int with 1..6;
Dice.ran()()
BT Diceoutcome
()
/faculteit technologie management
PN-139
Example(2)
throw_dice
(x+1)@+(Delay.ran())
trigger
color INT = int;color TINT = int timed;color Dice = int with 1..6;color Delay = int with 0..99;
Dice.ran()0
TINT Diceoutcome
x
/faculteit technologie management
PN-140
Subruns and confidence intervals
• A single run does not provide information about reliability of results.
• Therefore, multiple runs or one run cut into parts: subruns.
• If the subruns are assumed to be mutually independent, one can calculate a confidence interval, e.g., the flow time is with 95% confidence within the interval 5.5+/-0.5 (i.e. [5,6]).
/faculteit technologie management
PN-141
Example of a simulation model
• Gas station with one pump and space for 4 cars (3 waiting and 1 being served).
• Service time: uniform distribution between 2 and 5 minutes.
• Poisson arrival process with mean time between arrivals of 4 minutes.
• If there are more than 3 cars waiting, the "sale" is lost.
• Questions: flow time, waiting time, utilization, lost sales, etc.
/faculteit technologie management
PN-142
Top-level page: main
environment
HS HS
gas_station
arrive Car
Cardrive_on
depart Car
color Car = string
/faculteit technologie management
PN-143
Subpage gas_station
color Car = string;color Pump = unit;color TCar = Car timed;color Queue = list Car;var c:Car;var q:Queue;fun len(q:Queue) = if q=[] then 0 else 1+len(tl(q));
arrive Car
depart Car
In
[len(q)<3] [len(q)>=3]
put_in_queue drive_on
queue Queue
[]
fill_up
pump_free
TCar Pump
()
Cardrive_on
Out Out
()
()
c c
c@+uniform(2,5)
c
c
c
qq^^[c]
c::qq
start
end
q
q
/faculteit technologie management
PN-144
Assuming pages for the environment and measurements the last two pages allow for ...
• Calculation of flow time (average, variance, maximum, minimum, service level, etc.).
• Calculation of waiting times (average, variance, maximum, minimum, service level, etc.).
• Calculation of lost sales (average).• Probability of no space left.• Probability of no cars waiting.For each of these metrics, it is possible to formulate
a confidence interval given sufficient observations.
/faculteit technologie management
PN-145
Alternatives
Model the following alternatives:
• 5 waiting spaces• 2 pumps• 1 faster pump
color Car = string;color Pump = unit;color TCar = Car timed;color Queue = list Car;var c:Car;var q:Queue;fun len(q:Queue) = if q=[] then 0 else 1+len(tl(q));
arrive Car
depart Car
In
[len(q)<3] [len(q)>=3]
put_in_queue drive_on
queue Queue
[]
fill_up
pump_free
TCar Pump
()
Cardrive_on
Out Out
()
()
c c
c@+uniform(2,5)
c
c
c
qq^^[c]
c::qq
start
end
q
q
/faculteit technologie management
PN-146
Simulation of a Production system
X Y Z CSABC
/faculteit technologie management
PN-147
Data X Y Z
A 2 5 8
B 3 6 9
C 4 7 1
Processing times
X 2
Y 3
Z 4
Resources per work center
A 2
B 1
C 2
Replenishment lead times
A 2
B 1
C 1
Kanbans in-between work
centers
A 7
B 9
C 8
Time in-between
subsequent orders
Use distributions
/faculteit technologie management
PN-148
Top level page: maincolor INT = int;color Prod = string;color PT = product Prod * INT;color PTimed = Prod timed;color PTTimed = PT timed;var p:Prod;var t:INT;var i:INT;
kanban1
supplier
product1
HS
work_center_
X
kanban2
product2
work_center_
YHS HS
kanban3
product3
work_center_
ZHS
kanban4
product4
HS
customer
Prod Prod Prod Prod
ProdProdProdProd
2`"A"++1`"B"++1`"C"
io_lead_time PT
1`("A",2)++1`("B",1)++
1`("C",2)
processing_time_X
PT
1`("A",2)++1`("B",3)++
1`("C",4)
PT
1`("A",5)++1`("B",6)++
1`("C",7)
PT
1`("A",8)++1`("B",9)++1`("C",1)
c_ia_time PTTimed
1`("A",7)++1`("B",9)++
1`("C",8)
processing_time_Y
processing_time_Z
2`"A"++1`"B"++
1`"C"
2`"A"++1`"B"++1`"C"
resources_X INT
4
resources_Y INT
5
resources_Z INT
6
supplierio_lead_time = io_lead_timekanban_in = kanban1product_out = product1
work_centerprocessing_time = processing_time_Xresources = resources_Xkanban_in = kanban2product_in = product1kanban_out = kanban1product_out = product2
work_centerprocessing_time = processing_time_Yresources = resources_Ykanban_in = kanban3product_in = product2kanban_out = kanban2product_out = product3
work_centerprocessing_time = processing_time_Zresources = resources_Zkanban_in = kanban4product_in = product3kanban_out = kanban3product_out = product4
customerc_ia_time = c_ia_timekanban_out = kanban4product_in = product4
/faculteit technologie management
PN-149
Sub page: supplier
kanban_in
p
product_out
In
Out
Prod
Prod
PTimedio_lead_time PT
(p,t)
(p,t)In/Out
oip
accept_order
deliver_order
p@+t
p
p
/faculteit technologie management
PN-150
Sub page: customer
kanban_out
p
product_in
In
Out
Prod
Prod
PTTimedc_ia_time
(p,t)
In/Out
place_order
consume
p
(p,t)@+t
/faculteit technologie management
PN-151
Sub page: work_center
product_out
p
kanban_in
In
Out
Prod
Prod
INTresources
In/Out
end_proc
start_proc
p
wip PTimed
i+1
i
i-1
i
p@+t
p
[i>=1]
kanban_out
Out
Prod p
product_in
In
Prod
p
PTprocessing_time
In/Out(p,t)
(p,t)
/faculteit technologie management
PN-152
Overview
color INT = int;color Prod = string;color PT = product Prod * INT;color PTimed = Prod timed;color PTTimed = PT timed;var p:Prod;var t:INT;var i:INT;
kanban1
supplier
product1
HS
work_center_
X
kanban2
product2
work_center_
YHS HS
kanban3
product3
work_center_
ZHS
kanban4
product4
HS
customer
Prod Prod Prod Prod
ProdProdProdProd
2`"A"++1`"B"++1`"C"
io_lead_time PT
1`("A",2)++1`("B",1)++
1`("C",2)
processing_time_X
PT
1`("A",2)++1`("B",3)++
1`("C",4)
PT
1`("A",5)++1`("B",6)++
1`("C",7)
PT
1`("A",8)++1`("B",9)++1`("C",1)
c_ia_time PTTimed
1`("A",7)++1`("B",9)++
1`("C",8)
processing_time_Y
processing_time_Z
2`"A"++1`"B"++
1`"C"
2`"A"++1`"B"++1`"C"
resources_X INT
4
resources_Y INT
5
resources_Z INT
6
supplierio_lead_time = io_lead_timekanban_in = kanban1product_out = product1
work_centerprocessing_time = processing_time_Xresources = resources_Xkanban_in = kanban2product_in = product1kanban_out = kanban1product_out = product2
work_centerprocessing_time = processing_time_Yresources = resources_Ykanban_in = kanban3product_in = product2kanban_out = kanban2product_out = product3
work_centerprocessing_time = processing_time_Zresources = resources_Zkanban_in = kanban4product_in = product3kanban_out = kanban3product_out = product4
customerc_ia_time = c_ia_timekanban_out = kanban4product_in = product4
kanban_in
p
product_out
In
Out
Prod
Prod
PTimedio_lead_time PT
(p,t)
(p,t)In/Out
oip
accept_order
deliver_order
p@+t
p
p
kanban_out
p
product_in
In
Out
Prod
Prod
PTTimedc_ia_time
(p,t)
In/Out
place_order
consume
p
(p,t)@+tproduct_out
p
kanban_in
In
Out
Prod
Prod
INTresources
In/Out
end_proc
start_proc
p
wip PTimed
i+1
i
i-1
i
p@+t
p
[i>=1]
kanban_out
Out
Prod p
product_in
In
Prod
p
PTprocessing_time
In/Out(p,t)
(p,t)
Results:• response time• utilization• % backorders• average stock• etc.
/faculteit technologie management
PN-153
Classical versus high-level Petri nets
• Simulation clearly works for all types of nets.
• Hierarchy is never a problem.
• Time allows for new types of analysis.
• Reachability graphs and invariants can also be extended to high-level nets.– More complex (both technique and computation)
• Sometimes abstraction from color is possible to derive invariants (consider previous example).
/faculteit technologie management
PN-154
Exercise: Five Chinese philosophers• Recall hierarchical CPN model of five
Chinese philosophers alternating between states thinking and eating. – Give place invariants– Give transition invariants
• Change the model such that philosophers can take one chopstick at a time but avoid deadlocks and a fixed ordering of philosophers.– Give place invariants– Give transition invariants
/faculteit technologie management
PN-155
Top-level pagecolor BlackToken = unit;var b:BackToken
BlackTokenPH1
CS1CS2
BlackToken
PH2PH5
PH3PH4
CS3
BlackTokenBlackToken
CS5
CS4
BlackToken
() ()
()
()
()
philosopherleft = CS5right = CS4
HS
philosopherleft = CS4right = CS3
HS
HS
philosopherleft = CS3right = CS2
HS
philosopherleft = CS2right = CS1
HS
philosopherleft = CS1right = CS5
/faculteit technologie management
PN-156
Page philosopher
take_chopsticks
b
think
put_down_chopsticks
eat
BlackToken
b
()
bb
BlackToken
left right
BlackToken BlackTokenIn/Out In/Out
bb
b
b
/faculteit technologie management
PN-157
Flat model is obtained by replacing substitution transitions by subpagescolor BlackToken = unit;var b:BackToken
BlackTokenPH1
CS1CS2
BlackToken
PH2PH5
PH3PH4
CS3
BlackTokenBlackToken
CS5
CS4
BlackToken
() ()
()
()
()
philosopherleft = CS5right = CS4
HS
philosopherleft = CS4right = CS3
HS
HS
philosopherleft = CS3right = CS2
HS
philosopherleft = CS2right = CS1
HS
philosopherleft = CS1right = CS5
take_chopsticks
b
think
put_down_chopsticks
eat
BlackToken
b
()
bb
BlackToken
left right
BlackToken BlackTokenIn/Out In/Out
bb
b
b
Repeat 5 times...
Naming:•PH3.think•PH3.eat•PH3.take_chopsticks•PH3.put_down_chopsticks
/faculteit technologie management
PN-158
Alternative page
start_eating
b
think
start_thinking
eat
BlackToken
b
()
bb
BlackToken
hold_left hold_ right
BlackToken BlackToken
bb
b
b
take_left
b
take_right
b
left right
BlackToken BlackTokenIn/Out In/Out
bb
return_left return_right
b
b
b
b
/faculteit technologie management
PN-159
You should be able to ...• Construct a reachability graph for a classical Petri
net.• Give meaningful place and transition invariants for
a classical Petri net.• Construct a reachability graph and give
meaningful place and transition invariants for a hierarchical CPN after abstracting from data and time and removing hierarchy.
• Build a simple simulation model using CPN.• Motivate the use of each of the analysis
techniques.
top related