+ All Categories
Home > Documents > Petri nets refesher

Petri nets refesher

Date post: 06-Jan-2016
Category:
Upload: quincy
View: 27 times
Download: 4 times
Share this document with a friend
Description:
Petri nets refesher. 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. Petri nets Classical Petri nets: The basic model. - PowerPoint PPT Presentation
159
/faculteit technologie management PN-1 Petri nets refesher 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.
Transcript
Page 1: Petri nets refesher

/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.

Page 2: Petri nets refesher

/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.

Page 3: Petri nets refesher

/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

Page 4: Petri nets refesher

/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.

Page 5: Petri nets refesher

/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

Page 6: Petri nets refesher

/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

Page 7: Petri nets refesher

/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

Page 8: Petri nets refesher

/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

Page 9: Petri nets refesher

/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

Page 10: Petri nets refesher

/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).

Page 11: Petri nets refesher

/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

Page 12: Petri nets refesher

/faculteit technologie management

PN-12

Example: Single traffic light rg

go

or

red

green

orange

Page 13: Petri nets refesher

/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

Page 14: Petri nets refesher

/faculteit technologie management

PN-14

Problem

Page 15: Petri nets refesher

/faculteit technologie management

PN-15

Solution

rg1

go1

or1

r1

g1

o1

rg2

go2

or2

r2

g2

o2

x

How to make them alternate?

Page 16: Petri nets refesher

/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/

Page 17: Petri nets refesher

/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.

Page 18: Petri nets refesher

/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.

Page 19: Petri nets refesher

/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.)

Page 20: Petri nets refesher

/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.

Page 21: Petri nets refesher

/faculteit technologie management

PN-21

WARNINGIt is not sufficient to understand the (process) models. You have to be

able to design them yourself !

Page 22: Petri nets refesher

/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

Page 23: Petri nets refesher

/faculteit technologie management

PN-23

Example: Ball game

red

rr

rb

bb

black

Page 24: Petri nets refesher

/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?

Page 25: Petri nets refesher

/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.

Page 26: Petri nets refesher

/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

Page 27: Petri nets refesher

/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.

Page 28: Petri nets refesher

/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, … }.

Page 29: Petri nets refesher

/faculteit technologie management

PN-29

Exercise: Map onto (P,T,I,O) and S

red

rr

rb

bb

black

Page 30: Petri nets refesher

/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.

Page 31: Petri nets refesher

/faculteit technologie management

PN-31

Enabling formalized

Transition t is enabled in state s1 if and only if:

Page 32: Petri nets refesher

/faculteit technologie management

PN-32

Firing formalized

If transition t is enabled in state s1, it can fire and the resulting state is s2 :

Page 33: Petri nets refesher

/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):

Page 34: Petri nets refesher

/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.

Page 35: Petri nets refesher

/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).

Page 36: Petri nets refesher

/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

Page 37: Petri nets refesher

/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?

Page 38: Petri nets refesher

/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?

Page 39: Petri nets refesher

/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.

Page 40: Petri nets refesher

/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).

Page 41: Petri nets refesher

/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.

Page 42: Petri nets refesher

/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.

Page 43: Petri nets refesher

/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.

Page 44: Petri nets refesher

/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

Page 45: Petri nets refesher

/faculteit technologie management

PN-45

Causality

Page 46: Petri nets refesher

/faculteit technologie management

PN-46

Parallelism

Page 47: Petri nets refesher

/faculteit technologie management

PN-47

Parallelism: AND-split

Page 48: Petri nets refesher

/faculteit technologie management

PN-48

Parallelism: AND-join

Page 49: Petri nets refesher

/faculteit technologie management

PN-49

Choice: XOR-split

Page 50: Petri nets refesher

/faculteit technologie management

PN-50

Choice: XOR-join

Page 51: Petri nets refesher

/faculteit technologie management

PN-51

Iteration: 1 or more times

XOR-join before XOR-split

Page 52: Petri nets refesher

/faculteit technologie management

PN-52

Iteration: 0 or more times

XOR-join before XOR-split

Page 53: Petri nets refesher

/faculteit technologie management

PN-53

Capacity constraints: feedback loop

AND-join before AND-split

Page 54: Petri nets refesher

/faculteit technologie management

PN-54

Capacity constraints: mutual exclusion

AND-join before AND-split

Page 55: Petri nets refesher

/faculteit technologie management

PN-55

Capacity constraints: alternating

AND-join before AND-split

Page 56: Petri nets refesher

/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

Page 57: Petri nets refesher

/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

Page 58: Petri nets refesher

/faculteit technologie management

PN-58

Modeling problem (1): Zero testing

• Transition t should fire if place p is empty.

t ?

p

Page 59: Petri nets refesher

/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’

Page 60: Petri nets refesher

/faculteit technologie management

PN-60

Modeling problem (2): Priority

• Transition t1 has priority over t2

t1

t2

?

Hint: similar to Zero testing!

Page 61: Petri nets refesher

/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.

Page 62: Petri nets refesher

/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.

Page 63: Petri nets refesher

/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.

Page 64: Petri nets refesher

/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.

Page 65: Petri nets refesher

/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

Page 66: Petri nets refesher

/faculteit technologie management

PN-66

Inability to test for zero tokens in a place

t ?

p

“Tricks” only work if p is bounded

Page 67: Petri nets refesher

/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.

Page 68: Petri nets refesher

/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

Page 69: Petri nets refesher

/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.

Page 70: Petri nets refesher

/faculteit technologie management

PN-70

rg1

go1

or1

r1

g1

o1

rg2

go2

or2

r2

g2

o2

x

No support for structuring large models

Page 71: Petri nets refesher

/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.

Page 72: Petri nets refesher

/faculteit technologie management

PN-72

Running example: Making punch cards

start

donewait

stop

busy

free

waiting patients

served patients

free desk employees

patient/ employees

Page 73: Petri nets refesher

/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"}

Page 74: Petri nets refesher

/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

Page 75: Petri nets refesher

/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.

Page 76: Petri nets refesher

/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}

Page 77: Petri nets refesher

/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

Page 78: Petri nets refesher

/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

Page 79: Petri nets refesher

/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.

Page 80: Petri nets refesher

/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}

Page 81: Petri nets refesher

/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!

Page 82: Petri nets refesher

/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.

Page 83: Petri nets refesher

/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

Page 84: Petri nets refesher

/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

Page 85: Petri nets refesher

/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

Page 86: Petri nets refesher

/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

Page 87: Petri nets refesher

/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.

Page 88: Petri nets refesher

/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

Page 89: Petri nets refesher

/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

Page 90: Petri nets refesher

/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…

Page 91: Petri nets refesher

/faculteit technologie management

PN-91

Exercise: Final state?

x

y

d

e

b

a

c

4

3

5

1

@+1

@+2

Page 92: Petri nets refesher

/faculteit technologie management

PN-92

Exercise: Final state?

red

rr

rb

bb

black

3

1

2

4

2

@+1@+1

@+2

Page 93: Petri nets refesher

/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.

Page 94: Petri nets refesher

/faculteit technologie management

PN-94

rg1

go1

or1

r1

g1

o1

rg2

go2

or2

r2

g2

o2

x

Instead of

Page 95: Petri nets refesher

/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

Page 96: Petri nets refesher

/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

Page 97: Petri nets refesher

/faculteit technologie management

PN-97

Exercise: model three (parallel) punch card desks in a hierarchical manner

start

donewait

stop

busy

free

Page 98: Petri nets refesher

/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.

Page 99: Petri nets refesher

/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.

Page 100: Petri nets refesher

/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.

Page 101: Petri nets refesher

/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)?

Page 102: Petri nets refesher

/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?

Page 103: Petri nets refesher

/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.

Page 104: Petri nets refesher

/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

Page 105: Petri nets refesher

/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)

Page 106: Petri nets refesher

/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!

Page 107: Petri nets refesher

/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

Page 108: Petri nets refesher

/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.

Page 109: Petri nets refesher

/faculteit technologie management

PN-109

Infinite reachability graphrg1

go1

or1

r1

g1

o1

rg2

go2

or2

r2

g2

o2

x

Page 110: Petri nets refesher

/faculteit technologie management

PN-110

Exercise: Construct reachability graph

wait enter before make_picture after leave gone

free

occupied

Page 111: Petri nets refesher

/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.

Page 112: Petri nets refesher

/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?

Page 113: Petri nets refesher

/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?

Page 114: Petri nets refesher

/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.

Page 115: Petri nets refesher

/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

Page 116: Petri nets refesher

/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

Page 117: Petri nets refesher

/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

Page 118: Petri nets refesher

/faculteit technologie management

PN-118

Exercise: Give place invariants

free producer

start_production

end_production

wait consumer

start_consumption

end_consumption

product

Page 119: Petri nets refesher

/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

Page 120: Petri nets refesher

/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

Page 121: Petri nets refesher

/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

Page 122: Petri nets refesher

/faculteit technologie management

PN-122

Exercise: Give transition invariants

free producer

start_production

end_production

wait consumer

start_consumption

end_consumption

product

Page 123: Petri nets refesher

/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

Page 124: Petri nets refesher

/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.

Page 125: Petri nets refesher

/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

Page 126: Petri nets refesher

/faculteit technologie management

PN-126

Example

couple

man

woman

marriage divorce

11

11

11

N

manwoman

couple

marriage

divorce

Page 127: Petri nets refesher

/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.

Page 128: Petri nets refesher

/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

Page 129: Petri nets refesher

/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.

Page 130: Petri nets refesher

/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

Page 131: Petri nets refesher

/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

Page 132: Petri nets refesher

/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!

Page 133: Petri nets refesher

/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.

Page 134: Petri nets refesher

/faculteit technologie management

PN-134

Uniform distribution

pdf cumulative

Page 135: Petri nets refesher

/faculteit technologie management

PN-135

Negative exponential distribution

Page 136: Petri nets refesher

/faculteit technologie management

PN-136

Normal distribution

Page 137: Petri nets refesher

/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

Page 138: Petri nets refesher

/faculteit technologie management

PN-138

Example

throw_dice()trigger

color BT = unit;color Dice = int with 1..6;

Dice.ran()()

BT Diceoutcome

()

Page 139: Petri nets refesher

/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

Page 140: Petri nets refesher

/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]).

Page 141: Petri nets refesher

/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.

Page 142: Petri nets refesher

/faculteit technologie management

PN-142

Top-level page: main

environment

HS HS

gas_station

arrive Car

Cardrive_on

depart Car

color Car = string

Page 143: Petri nets refesher

/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

Page 144: Petri nets refesher

/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.

Page 145: Petri nets refesher

/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

Page 146: Petri nets refesher

/faculteit technologie management

PN-146

Simulation of a Production system

X Y Z CSABC

Page 147: Petri nets refesher

/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

Page 148: Petri nets refesher

/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

Page 149: Petri nets refesher

/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

Page 150: Petri nets refesher

/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

Page 151: Petri nets refesher

/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)

Page 152: Petri nets refesher

/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.

Page 153: Petri nets refesher

/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).

Page 154: Petri nets refesher

/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

Page 155: Petri nets refesher

/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

Page 156: Petri nets refesher

/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

Page 157: Petri nets refesher

/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

Page 158: Petri nets refesher

/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

Page 159: Petri nets refesher

/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.


Recommended