CASE – August 21st 2012 – Seoul, Korea
Scheduling of Petri nets as a Multi-objective
Shortest Path Problem
Uno Wikborg* and Tae-Eog Lee
KAIST
Industrial and Systems Engineering Department
Problem definition
• Find a firing sequence with shortest makespan which brings a
Petri net with place delays from one given marking to another
given marking
• Does not consider maximum residency time of tokens
• Going from the marking [1,0,0,0,0] to [0,0,0,0,0] given delay
times for each place in the Petri net below
0
0
t1
p2
1
t3
0
p1
p3
t1
0
0
t4
p2
0
p1
p5
p3
p4
0
t4
p5
0
0
t2
t3
t2
t5
2
p4
t5
System Integration & Modeling Lab.
Related literature
• Dawande M, Geismar HN, Sethi SP, C S. Sequencing and scheduling in robotic
cells; recent developments. Journal of Scheduling. 2005; 8(5): p. 387-426.
• Jung C. An Efficient Mixed Integer Programming Model Based on Timed Petri
Nets for Diverse Complex Cluster Tool Scheduling Problems. 2010
• Daellenbach HG, De Kluyver CA. Note on Multiple Objective Dynamic Progra
mming. The Journal of the Operational Research Society. 1980 July; 31(7): p.
591-594.
• Wikborg U, Lee TE. Non-Cyclic Scheduling for Timed Discrete Event Systems
with Application to Single-Armed Cluster Tools using Pareto-Optimal Optimiz
ation. Accepted to be published. IEEE Transactions on Automation Science
and Engineering.
3
System Integration & Modeling Lab.
Motivation
• Petri nets are well suited for modelling
cluster tools for semiconductor
production
• Wafer recipes tend to change more
often
• Cyclic scheduling is not efficient when
the steady state is short
4
System Integration & Modeling Lab.
Example 1: A Single Objective Approach (1)
• Problem description: Which firing sequence uses the shortest time to change
the marking from [1,0,0,0,0] to [0,0,0,0,0]?
0
t1
p2
1
t3
0
p1
0
p3
t4
p5
0
t2
Place p1
Delay 0 s
p4
p2
2s
t5
p3
2s
5
p4
1s
p5
2s
System Integration & Modeling Lab.
Example 1: A Single Objective Approach (2)
• The two enabled transitions give us two possible next marking.
1
t1
p2
0
0
t1
p2
1
t3
0
p1
p3
t4
p4
1
p1
p3
0
t4
p5
0
0
t2
p4
t5
0
p5
t2
0
t2
t1
t3
t1
t5
p2
0
t3
0
p1
p3
0
t4
p5
1
t2
6
p4
t5
System Integration & Modeling Lab.
Example 1: A Single Objective Approach (3)
• The tokens have to wait at p2 and p3 for the delay period.
• The resulting state can therefore be defined by the marking, a time stamp
for each token and a time stamp for when the last transition was fired.
• For the case when t1 is fired: marking [0,1,1,0,0], tokens {2},{3}, fire time 0
1
t1
p2
0
t3
1
p1
p3
0
t4
p5
Place p1
Delay 0 s
p2
2s
p3
2s
p4
1s
p5
2s
0
t2
p4
t5
7
System Integration & Modeling Lab.
Example 1: A Single Objective Approach (4)
• This gives us a tree like transition graph
• The last fired transition is used as the
objective
• The optimal solution can be found by
traversing the graph
• Tree like structures tend to grow too fast
when the problem size increases
8
t1
[1,0,0,0,0]
{0}
0
t2
[0,1,1,0,0]
{2},{2}
0
[0,0,0,1,0]
{1}
0
t3
t5
[0,0,1,0,1]
{2},{4}
2
[0,0,1,0,1]
{3},{3}
1
t4
t4
[0,0,0,0,0]
∅
4
[0,0,0,0,0]
∅
3
System Integration & Modeling Lab.
A Multi-objective Approach
• Tree structure was caused by many state
variables
• The time stamps can instead be considered
objective functions
t1
• The marking then defines the state
[0,1,1,0,0]
{2},{2}
0
[0,0,0,1,0]
{1}
0
t3
t5
[0,0,1,0,1]
{2},{4}
2
[0,0,1,0,1]
{3},{3}
1
t4
t4
[0,0,0,0,0]
∅
4
[0,0,0,0,0]
∅
3
• A multi-objective shortest path problem in the
untimed transition graph
• Note that the number of objectives vary from
state to state and that the length of the edges
depend on the previous path
9
[1,0,0,0,0]
{0}
0
[1,0,0,0,0]
t2
t2
t1
[0,1,1,0,0]
[0,0,0,1,0]
t5
t3
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Label correction algorithm
• Based on bottom-up-dynamic programming
• Keep the best solutions for each state
• A set of non-dominated solutions is kept for each marking
• A hash map is used with the marking as the key and a set of all
non-dominated paths to the marking as the value
• Terminate when no better solution to the goal marking can be
found
10
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
∅
0
t1
Paths to explore
p2
1
0
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
11
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
∅
Paths to explore
t1
0
t1
p2
1
0
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
12
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
∅
Paths to explore
t1
t2
0
t1
p2
1
0
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
13
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t1
Paths to explore
t2
1
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
14
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t1
Paths to explore
t2
t1 → t3
1
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
15
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2
Paths to explore
t1 → t3
0
t1
p2
0
0
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
1
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
16
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2
Paths to explore
t1 → t3
t2 → t5
0
t1
p2
0
0
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
1
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
17
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2
Paths to explore
t1 → t3
t2 → t5
0
t1
p2
0
0
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
1
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
18
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t1 → t3
Paths to explore
t2 → t5
0
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
1
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
19
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t1 → t3
Paths to explore
t2 → t5
t1 → t3 → t4
0
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
1
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
20
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2 → t5
Paths to explore
t1 → t3 → t4
0
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
1
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
21
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2 → t5
Paths to explore
t1 → t3 → t4
t2 → t5 → t4
0
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
1
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
22
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2 → t5
Paths to explore
t1 → t3 → t4
t2 → t5 → t4
0
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
1
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t1 → t3 → t4 [0,0,0,0,0]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
4
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
[∅,∅,∅,∅,∅]
23
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2 → t5
Paths to explore
t2 → t5 → t4
0
t1
p2
0
1
p1
[1,0,0,0,0]
t3
p3
1
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
24
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Example 2: Multi-objective Solution
Currently exploring
t2 → t5 → t4
0
t1
Paths to explore
p2
0
0
p1
[1,0,0,0,0]
t3
p3
0
t4
t2
t1
p5
0
t2
p4
t5
[0,1,1,0,0]
t5
t3
Path
End State
∅
[1,0,0,0,0]
t1
[0,1,1,0,0]
t2
[0,0,0,1,0]
t1 → t3
[0,0,1,0,1]
t2 → t5
[0,0,1,0,1]
t2 → t5 → t4 [0,0,0,0,0]
Last Firing Time
0
0
0
2
1
3
Token Time Stamps
[∅,∅,∅,∅,∅]
[∅,{2},{2},∅,∅]
[∅,∅,∅,{1},∅]
[∅,∅,{2},∅,{4}]
[∅,∅,{3},∅,{3}]
[∅,∅,∅,∅,∅]
25
[0,0,0,1,0]
[0,0,1,0,1]
t4
[0,0,0,0,0]
System Integration & Modeling Lab.
Theoretical properties
Theorem 1. The sequencing problem of a timed Petri net can be transformed
into an equivalent multi-objective shortest path problem.
∗
Theorem 2. There exists an optimal path 𝑝𝐹𝑖𝑛𝑎𝑙
and 𝑖 such that for any 𝑎:
∗
∗
𝑎 ⊑ 𝑝𝐹𝑖𝑛𝑎𝑙
→ 𝑃𝑎𝑟𝑒𝑡𝑜(𝑝𝑎𝑖 ) ⊑ 𝑝𝐹𝑖𝑛𝑎𝑙
A solution can be found which only includes non-dominated sub-problems.
Theorem 3.
𝑗
𝑗
𝑗
𝑃𝑎𝑟𝑒𝑡𝑜 𝑝𝑎𝑖 ∧ 𝑃𝑎𝑟𝑒𝑡𝑜 𝑝𝑎 → (𝑣 o (𝑝𝑎 ) < 𝑣 n (𝑝𝑎 ) + 2 ∗ 𝑀𝑎𝑥𝐷𝑒𝑙𝑎𝑦
∀𝑎, 𝑖, 𝑗, 𝑜, 𝑛
The values of the objectives for all non-dominated solutions for a given problem
falls within a range of two times the largest place delay.
26
System Integration & Modeling Lab.
Non-cyclic scheduling of Cluster Tools
for Semiconductor Production
• Well suited for non-cyclic
scheduling
• Single armed cluster tool
with three processing
chambers and 500 wafers
t1
p1
p2
500
t2
0
p4
p7
p10
1
1
1
p3
t3
0
p5
t4
0
p6
t5
0
p8
t6
0
p9
t7
p11
0
t8
0
p12
1
• Dual armed cluster tool with
two double and one single
processing module and a
changing recipe
t1
p1
p2
25
t2
p3
t3
p5
t4
p6
t5
p8
t6
p9
0
0
0
0
0
0
p22
p4
p12
p7
p13
p10
0
2
2
2
1
1
0
0
0
0
0
0
t7
p11
t8
0
t17
25
25
0
p14
t9
p15
t10
27
p16
t11
p17
t12
p18
t13
p19
t14
P20
0
t15
p21
t16
System Integration & Modeling Lab.
Problem variations
• Single and dual armed cluster tools
• Multiple recipes – frequent changes
• Cleaning processes
• Changing between steady states
• Start up and close down of cluster tools
• Non-identical robot movement times
28
System Integration & Modeling Lab.
Future work
• Study how different parameters effect the efficiency
• Apply the method to more problems
• Improve the direction of the search
• Extend the method to handle additional requirements
29
System Integration & Modeling Lab.
Questions?
?
• For further inquires please contact [email protected]
30
System Integration & Modeling Lab.
© Copyright 2026 Paperzz