Title: PN1
1Petri netsrefresher
- Prof.dr.ir. Wil van der Aalst
- Eindhoven University of Technology, Faculty of
Technology Management, - Department of Information and Technology, P.O.Box
513, NL-5600 MB, - Eindhoven, The Netherlands.
2Process 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
3Classical 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.
4Elements
5Rules
- 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.
6Enabled
- A transition is enabled if each of its input
places contains at least one token.
enabled
Not enabled
Not enabled
7Firing
- 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.
fired
8Play Token Game
- In the new state, make_picture is enabled. It
will fire, etc.
9Remarks
- 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).
10Non-determinism
Two transitions are enabled but only one can fire
11Example Single traffic light
12Two traffic lights
OR
13Problem
14Solution
How to make them alternate?
15Playing the Token Game on the Internet
- Applet to build your own Petri nets and execute
them http//is.tm.tue.nl/staff/wvdaalst/workflowc
ourse/pn_applet/pn_applet.htm - FLASH animations www.workflowcourse.com
16Exercise 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.
17Exercise 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.
18Exercise 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.)
19Exercise 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.
20WARNINGIt is not sufficient to understand the
(process) models. You have to be able to design
them yourself !
21Multiple 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.
22Example Ball game
23Exercise 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?
24Exercise Burning alcohol.
- Model C2H5OH 3 O2 gt 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.
25Exercise Manufacturing a car
- Model the production process shown in the
Bill-Of-Materials.
car
subassembly2
engine
2
chair
subassembly1
4
chassis
wheel
26Formal 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 -gt N is the input function, and
- O T x P -gt N is the output function.
- Any diagram can be mapped onto such a four tuple
and vice versa.
27Formal definition (2)
- The state (marking) of a Petri net (P,T,I,O) is
defined as follows - s P-gt N, i.e., a function mapping the set of
places onto 0,1,2, .
28Exercise Map onto (P,T,I,O) and s
29Exercise 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.
30Enabling formalized
- Transition t is enabled in state s1 if and only
if
31Firing formalized
- If transition t is enabled in state s1, it can
fire and the resulting state is s2
32Mapping Petri nets onto transition systems
- A Petri net (P,T,I,O) defines the following
transition system (S,TR)
33Reachability 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 - Let X be the set containing just the initial
state and let Y be the empty set. - 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. - If X is empty stop, otherwise goto 2.
34Example
(3,2)
(3,1)
(3,0)
(1,3)
(1,2)
(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).
35Exercise Give the reachability graph using both
notations
36Different 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?
37Exercise 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?
38Exercise 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.
39Modeling
- 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).
40Role 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.
41Role 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.
42Role 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.
43Typical 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
44Causality
45Parallelism
46Parallelism AND-split
47Parallelism AND-join
48Choice XOR-split
49Choice XOR-join
50Iteration 1 or more times
XOR-join before XOR-split
51Iteration 0 or more times
XOR-join before XOR-split
52Capacity constraints feedback loop
AND-join before AND-split
53Capacity constraints mutual exclusion
AND-join before AND-split
54Capacity constraints alternating
AND-join before AND-split
55We have seen most patterns, e.g.
Example of mutual exclusion
How to make them alternate?
56Exercise 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
subassembly2
engine
2
chair
subassembly1
4
chassis
wheel
57Modeling problem (1) Zero testing
- Transition t should fire if place p is empty.
?
t
p
58Solution
- Only works if place is N-bounded
t
Initially there are N tokens
N input and output arcs
p
p
59Modeling problem (2) Priority
- Transition t1 has priority over t2
t1
?
t2
Hint similar to Zero testing!
60A 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.
61Exercise 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.
62Exercise 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.
63Preview Analysis
- Various types of analysis techniques
- Simulation (repeatedly playing the token game)
- Reachability analysis (constructing the
reachability graph) - Markovian analysis (reachability graph with
transition probabilities) - Invariants place invariants and transition
invariants (conservation of tokens and sequences
without effect) - Role of models (1) insight, (2) analysis, and
(3) specification.
64Place invariant Example
waitbeforeaftergone freeoccupied
65Transition invariant Example
entermake_pictureleaveaccident
66High level Petri netsExtending classical Petri
nets with color, time and hierarchy (informal
introduction)
67Limitations 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
68Inability to test for zero tokens in a place
?
t
p
Tricks only work if p is bounded
69Models tend to become (too) large
Size linear in the number of products.
70Models tend to become (too) large (2)
Size linear in the number of tracks.
71Models cannot reflect temporal aspects
Duration of each phase is highly relevant.
72No support for structuring large models
73High-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.
74Running example Making punch cards
free desk employees
waiting patients
served patients
patient/ employees
75Extension with color (1)
- Tokens have a color (i.e., a data value)
76Extension with color (2)
- Places are typed (also referred to as color set).
record Brandstring RegistrationNostring
Yearint Colorstring Ownerstring
77Extension 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.
The value of the token produced for place sum is
the sum of the values of the consumed tokens.
78Running example Tokens are colored
79Running example Places are typed
80Running example Initial state
start is enabled
81Running example Transition start fired
New value is created by simply merging the two
records.
stop is enabled
82Running example Transition stop fired
New values are created by simply spliting the
record into two parts.
83The number of tokens produced is no longer fixed
(1)
Note that the network structure is no longer a
complete specification!
84The number of tokens produced is no longer fixed
(2)
The number of tokens produced for each output
place is between 0 and 3 and the sum should be 3.
85Example
- Model as a colored Petri net.
86Product and quantity are in the value of the token
The entire stock is represented by the value of a
single token, i.e., a list of records.
87Types
StockItem
Stock
color Product string color Number int color
StockItem record prodProduct
numNumber color Stock list StockItem
StockItem
88Extension with time (1)
- Each token has a timestamp.
- The timestamp specifies the earliest time when it
can be consumed.
89Extension 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.
90Running example Enabling time
- Transition start is enabled at time 2
max0,min2,4,4.
91Running example Delays
- Tokens for place busy get a delay of 3
- _at_3 firing time plus 3 time units
92Running example Transition start fired
- Transition start fired a time 2.
Continue to play (timed) token game
93Exercise Final state?
94Exercise Final state?
95Extension 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.
96Instead of
97We can use hierarchy
98Reuse
- Reuse saves design efforts.
- Hierarchy can have any number of levels
- Transition refinement can be used for top-down
and bottom-up design
99Exercise model three (parallel) punch card desks
in a hierarchical manner