Upload
smartroy2
View
230
Download
1
Embed Size (px)
Citation preview
8/3/2019 7030 Job Shop Scheduling
1/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
Job Shop Scheduling
3/22/2004 Job Shop Scheduling 2
Scheduling Allocation of limited resources to jobs over time
Sequencing
Permutation of the job set (order)
Scheduling
Assigning start/end/preemption times to individual jobs on each
machine
8/3/2019 7030 Job Shop Scheduling
2/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 3
Pinedo, p. 5
3/22/2004 Job Shop Scheduling 4
Notation / Definitions General Notation
N number of jobs to be scheduled
M Number of machines
di due date of job i
pij processing time for job ion machinej(includes any sequence independent
setups)
ri ready time for job i
Performance Measures
Ci Completion time for job i
Fi length of time job iis in the shop
Li lateness of job i
Ti tardiness of job i
Common Objectives
min average flow time
min makespan
min average tardiness
min max tardiness
min number of tardy jobs
8/3/2019 7030 Job Shop Scheduling
3/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 5
Single-machine Scheduling
No sequence-dependentsetups:
Facts:
Cmax is independent ofsequence
Average flowtime is
minimized by an SPT
sequence
Lmax is minimized by an EDD
sequence
Book presents a simple
construction procedure to
minimize the average flowtime
subject to tardiness
constraints
Sequence-dependent setups
Cmax now depends on the
sequence, since the individual
process times depend on a
sequence.
3/22/2004 Sequence-dependent Setup Times 6
Sequence-dependent Setup Times Njobs on one machine
Total processing time is fixed
Processing time is independent of sequence
Total setup time depends on the sequence
Individual setup times depend on the current and next products
Part 1 2 N
1 c12 c1N2 c21 c2N
N cN1 cN2
cij is the setup time required
for productjgiven that product i
was just produced on the machine
8/3/2019 7030 Job Shop Scheduling
4/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 7
Sequence-dependent Setup Times
Traveling Salesperson Problem (TSP) Formulation Salesperson must visit each city in a territory and return to the
starting point
Tour is a complete cycle that visits each city
Tour length is the sum of the individual arc lengths
Want to find the shortest length tour
1
2 3
4 5
c13c21
c52 c34
c45
Tour length = c13 + c34 + c45 + c52 + c21
3/22/2004 Job Shop Scheduling 8
Task Sequencing
minimize
subject to:
no subtours
or
c x
x j
x i
x
ij ij
j
N
i
N
ij
i
N
ij
j
N
ij
==
=
=
=
=
=
11
1
1
1
1
0 1
TSP Formulation
xij = 1 if cityj is visited immediately after city i
8/3/2019 7030 Job Shop Scheduling
5/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 9
TSP Formulation
Subtour Return to a city prior to visiting all other cities
Can lead to unconnected subgraphs
Considerably complicates the formulation
Without the subtour constraint, problem reduces to LAP
LAP provides a lower bound, but it is relatively weak
1
2 3
4 5
3/22/2004 Job Shop Scheduling 10
Job Shop Scheduling Environment
nparts to be processed on mmachines
sequence of machines for each part is prescribed (operation or job)
each machine can process only one job at a time
each part visits each machine at most once (no recirculation)
p4
M1
M3
M2
M4
p1 p2
p3
p4
p1
p1
p1
p2
p2 p3
p3
p3
p3
p4
8/3/2019 7030 Job Shop Scheduling
6/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 11
Dispatching
Askinand Standridge, p.115
Work in next queueWINQSelect a job at randomRANDOM
Most work remainingMWKR
Most operations remainingMOPNR
Least work remainingLWKR
Least total workLTWK
Order jobs based on ration of slack-based priority to
processing time
Covert
Slack per remaining operation Select a job with the smallest
ratio of slack to operations remaining to be performed
S/RO
First in system, first servedFISFS
First come, first servedFCFS
Earliest due dateEDDShortest processing timeSPT
3/22/2004 Job Shop Scheduling 12
Job Shop Scheduling Shifting Bottleneck Procedure (Adams et al., 1988)
Basic approach is to iteratively solve a single machine
scheduling problem and propagate the constraints imposed on
other machines
Sequencing one machine will fix ready times and due dates for
other machines
Questions
Which machine to choose?
How do you sequence that machine?
How many iterations to perform?
8/3/2019 7030 Job Shop Scheduling
7/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 13
Job Shop Scheduling
Problem Representation N = {0, 1, 2, , n} is a set of operations
where 0 and nare dummy operations
M is the set of machines
A is the set of pairs of operations (i,j) where operation iprecedes operationj(precedence constraints)
Ek is the set of operations performed on machine k
di is the processing time for operation i
ti is the start time for operation i
3/22/2004 Job Shop Scheduling 14
Job Shop Scheduling Assume objective is to minimize makespan
Formulation
minimize
subject to:
t
t t d i j
t i
t t d t t d i j k
n
j i i
i
j i i i j j k
, ( , )
,
, ( , ) ,
A
N
E M
0
Disjunctive Graph Representation G = (N, A, E) N - nodes (one for each operation)
A - normal arcs (task precedence)
E -disjunctive arcs(precedence caused by machine capacity constraints)
8/3/2019 7030 Job Shop Scheduling
8/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 15
Job Shop Scheduling
Disjunctive Graph ExampleJob Sequence
machine (node no.)
1 1 (1) 2 (2)
2 1 (3) 3 (4) 2 (5)
3 1 (6) 2 (7) 4 (8)
4 1 (9) 4 (10) 3 (11)
5 4 (12) 3 (13)
0
4
6
5
7 8
9 10
1312
3
21
14
11
precedence constraints
3/22/2004 Job Shop Scheduling 16
Disjunctive Graph Representation The set E decomposes in to cliques, Ek, one for each machine k,
where the set of cliques covers E
Sk is a selectionin Ekand contains exactly one member of eachdisjunctive arc pair in Ek
6
9
3
1
seq. = 3, 1, 6, 9
Each acyclic selection Skcorrespondsto a unique sequence of the operationsperformed on machine k
Some arcs in the selection giveredundant information
Sequencing a machine corresponds to
choosing an acyclic selection in Ek
8/3/2019 7030 Job Shop Scheduling
9/33
NSY 7030 - Manufacturing Systems Design 3/22/20
Industrial and Systems Engineering
3/22/2004 Job Shop Scheduling 17
Disjunctive Graph Representation
A complete selection, S, is the union of selections Sk, one for eachEk
A partial selectionis taken over some subset M0 ofM
Every acyclic complete selectionS, defines a familyof schedules andevery schedule belongs to such a family
DS
= (N, A S) is an ordinary graph obtained by picking a complete selection S
replacing the disjunctive arc set E by an ordinary arc set S
The makespanof a schedule that is optimal forS is equal to thelength of a longest path in D
S
Thus, the objective is to find an acyclic complete selectionS thatminimizes the length of a longest path inD
S
3/22/2004 Job Shop Scheduling 18
Shifting Bottleneck Procedure Given a partial selection S = (Sk | kM0) and the corresponding
graph DS, machine kis criticalwith respect to the schedule
associated with S ifSkhas some arc on the longest path in DS This is a direct result of the fact that any schedule better than the one
associated with S uses a selection in which at least one arc of every
longest path in DS
is reversed (Balas, 1969)
Our basic strategy is to iteratively select and optimally schedule the
bottleneck machine
However, given our definition of criticality, there can be multiple critical
machines -- as a result, we need to quantifythe criticality
8/3/2019 7030 Job Shop Scheduling
10/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 19
Shifting Bottleneck Procedure
Define M0 as the set of machines alreadysequenced by choosing selections Sp, p M0 (M0 = initially)
For any k M\M0, we want to define a new singlemachine problem by
replacing each disjunctive arc set Ep, p M0, by thecorresponding selection Sp
deleting each disjunctive arc set Ep, p M\M0, p k This assumes that the associated machines can process jobs in
parallel (i.e., they have infinite capacity)
3/22/2004 Job Shop Scheduling 20
Single Machine Subproblem Example
Let k=2 and M0={1} with S1= {3, 1, 6, 9}
0
4
6
5
7 8
9 10
1312
3
21
14
11
8/3/2019 7030 Job Shop Scheduling
11/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 21
Single Machine Subproblem
Formulation P(k,M0)
minimize
subject to:
t
t t d i j
t i
t t d t t d i j
n
j i i p
p
i
j i i i j j k
, ( , )
,
, ( , )
S A
N
E
M 0
0
To generate this problem, all disjunctive arc pairs are
removed for all machines not scheduled except machine k
The makespanof this relaxed problem is equal to the lengthof a longest path through the associated graph
3/22/2004 Job Shop Scheduling 22
Single Machine Subproblem This problem can be viewed as a single machine
problem (for machine k) with ready times and due datesand an objective of minimizing maximum lateness
Ready time is the length of a longest path from node 0 to nodej
rj= L(0,j)
Due date is the latest completion time that will not increase the
maximum lateness
dj= L(0, n) - L(j, n) + pj
8/3/2019 7030 Job Shop Scheduling
12/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 23
Shifting Bottleneck Procedure
The bottleneck machineis defined as the machine withthe maximum solution to (P(k,M0)).
If v(k,M0) is an optimal solution to (P(k,M0)), then mis the
bottleneck among M\M0 ifv(m,M0)=max{v(k,M0) | k M\M0}
Procedure:
Step 1: Identify a bottleneck machine mamong machines kM\M0 and sequence it optimally. Set M0 M0 {m}.
Step 2: Reoptimize the sequence of each critical machine, lM0, in turn, while keeping the other sequences fixed; that is, set
M0=M0 - {k} and solve P(k,M0)
Step 3: ifM0 = M, stop; otherwise, goto Step 1
3/22/2004 Job Shop Scheduling 24
Shifting Bottleneck Example
Sequence (m/c, time) node
Job 1 2 3 4
1 (1, 10) 1 (2, 8) 2 (3, 4) 3
2 (2, 8) 4 (1, 3) 5 (4, 5) 6 (3, 6) 7
3 (1, 4) 8 (2, 7) 9 (4, 3) 10
0 4 65 7
8 9 10
321
11
10 84
8 3 5 6
4 73
0
0
0
8/3/2019 7030 Job Shop Scheduling
13/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 25
Shifting Bottleneck Example
Iteration 1. M0 =
0 4 65 7
8 9 10
321
11
10 84
8 3 5 6
4 73
0
0
0
Cmax = 22 (parts 1 & 2)
3/22/2004 Job Shop Scheduling 26
Shifting Bottleneck Example
Machine 1: {1, 5, 8}rj = L(0,j)
dj = L(0, n) - L(j, n) +pjOp rj pj dj1 0 10 22-22+10 = 10
5 8 3 22-14+3 = 11
8 0 4 22-14+4 = 12
8/3/2019 7030 Job Shop Scheduling
14/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 27
Shifting Bottleneck Example
0 4 65 7
8 9 10
321
11
10 84
8 3 5 6
4 73
0
0
0 10
3
M0 ={1}
Cmax{1} = Cmax{} +Lmax{1} = 22+5 = 27Path {1, 5, 8, 9, 10, 11}
3/22/2004 Job Shop Scheduling 28
Shifting Bottleneck Example
Machine 2: {2, 4, 9}rj = L(0,j)
dj = L(0, n) - L(j, n) +pjOp rj pj dj2 10 8 27-12+8 = 23
4 0 8 27-25+8 = 10
9 17 7 27-10+7 = 24
Seq max lateness
2, 4, 9 max{-5, 16, 1} = 16
2, 9, 4 max{-5, 1, 23} = 23
4, 2, 9 max{-2, -5, 1} = 1
4, 9, 2 max{-2, 0 , 9} = 9
9, 2, 4 max{0, 9 , 30} = 30
9, 4, 2 max{0, 22, 17} = 22
Lmax(2) = 1
Lmax(3) = 1
Lmax(4) = 0
machines 2&3
are bottlenecks
8/3/2019 7030 Job Shop Scheduling
15/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 29
Shifting Bottleneck Example
0 4 65 7
8 9 10
321
11
10 84
8 3 5 6
4 73
0
0
010
3
M0 ={1,2}
Cmax{M0} = Cmax{1} +Lmax{2} = 27+1 = 28
Path {1, 2, 9, 10, 11}
88
3/22/2004 Job Shop Scheduling 30
Shifting Bottleneck Example
Reoptimize Machine 1: {1, 5, 8}rj = L(0,j)
dj = L(0, n) - L(j, n) +pjOp rj pj dj1 0 10 28-28+10 = 10
5 8 3 28-14+3 = 17
8 0 4 28-14+4 = 18
Lmax(1) = 0
sequence {1, 5, 8}
no changego to iteration 3
8/3/2019 7030 Job Shop Scheduling
16/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 31
Shifting Bottleneck Example
Iteration 3
Neither machine 3 or machine 4 is a bottleneck
Final solution
M1: {1, 5, 8}
M2: {4, 2, 9}
M3: {7, 3}
M4: {6, 10}
0 4 65 7
8 9 10
321
11
10 84
8 3 5 6
4 73
0
0
010
3
88 6
5
3/22/2004 Job Shop Scheduling 32
Schedule Generation
*
Job Shop Scheduling Environment
Basic Idea
Create a list of schedulable operations
Based on operation precedence and machine capacity
While the list is not empty
Schedule an operation
Update the list
*This material adapted from Storer et al. 1992 and Leon and Balakrishnan 1995.
8/3/2019 7030 Job Shop Scheduling
17/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 33
Schedule Generation Example
Operation (m/c, time)
Part 1 2 3
1 (1, 5) (2, 2) (3, 3)
2 (1, 4) (3, 3) (2, 4)
3 (2, 8) (1, 3) (3, 4)
Number of possible schedules (3!)3 = 216
This number grows quickly, e.g., (10!)3 = 4.77x1019
3/22/2004 Job Shop Scheduling 34
Schedule Generation Example
Operation (m/c, time)
Part 1 2 3
1 (1, 5) (2, 2) (3, 3)
2 (1, 4) (3, 3) (2, 4)
3 (2, 8) (1, 3) (3, 4)
Idea is to create a Gantt chart that represents the schedule
1,1M1
M2
M35 8
2,1 3,2
3,1 1,2
2,2
2,3
1,3 3,39 10 12 13 15 16 19
8/3/2019 7030 Job Shop Scheduling
18/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 35
Schedule Generation Definitions
PSt is the partial schedule at time t
is defined as the delay parameter = 0 generates an active schedule
= 1 generates a non-delay schedule
Pj is the set of predecessors for operationj
dj is the duration of taskj
mj is the number of predecessors already scheduled (0 mj |Pj|)Cj is the completion time of operationj
Tj is the earliest time the machine required for operationjis available
j is the earliest start time for operationjj= max{max{Ck|k Pj}, Tj}
St is the set of schedulable operations
3/22/2004 Job Shop Scheduling 36
Schedule Generation Algorithm Step 1
t= 0
PSt= NULL (empty partial schedule)
Tj= 0; mj= 0 j St= {j| |Pj| = 0} as the set ofschedulable operations j= 0 j St and j= M j St
Step 2
X* is the cutoff start time for updating the potential operations list. It
ranges from the earliest start time to the earliest completion
( ){ }X dj S
j jt
* min= +
1
8/3/2019 7030 Job Shop Scheduling
19/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 1
3/22/2004 Job Shop Scheduling 37
Schedule Generation Algorithm
Step 3 Set st = {j|j St, j< X*}, if 0 < 1
if = 0, X* is the minimum completion time
Set st= {j|j St, j= X*}, if = 1 X* is the minimum start time
Step 4
Selectj* stusing a heuristic H (e.g., SPT or LPT) Addj* to PSt to form PSt+1
3/22/2004 Job Shop Scheduling 38
Schedule Generation Algorithm Step 5 -- Update data
Cj* = j* + dj* Tj* = Cj* mk= mk+1 kwherej* Pk t= t+ 1
St= {j| mj= |Pj|,j PSt}; if NULL, stop j= max{max{Ck | k Pj}, Tj} j PSt
Step 6
Go to Step 2
8/3/2019 7030 Job Shop Scheduling
20/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 39
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 0 - 0 (1)
2 {1} 2 M - 0 (2)
3 {2} 3 M - 0 (3)
4 - 4 0 - 0 (1)
5 {4} 3 M - 0 (3)
6 {5} 4 M - 0 (2)
7 - 8 0 - 0 (2)
8 {7} 3 M - 0(1)9 {8} 4 M - 0 (3)
Assume = 1
3/22/2004 Job Shop Scheduling 40
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 0 - 0 (1)
2 {1} 2 M - 0 (2)
3 {2} 3 M - 0 (3)
4 - 4 0 - 0 (1)
5 {4} 3 M - 0 (3)
6 {5} 4 M - 0 (2)
7 - 8 0 - 0 (2)
8 {7} 3 M - 0(1)
9 {8} 4 M - 0 (3)
S0 = {1, 4, 7}
X* = min{0, 0, 0} = 0
s0 = {1, 4, 7}
select operation 4 by SPTPS0 = {4}
8/3/2019 7030 Job Shop Scheduling
21/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 41
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 4 - 4 (1)
2 {1} 2 M - 0 (2)
3 {2} 3 M - 0 (3)
4 - 4 - 4 4 (1)
5 - 3 4 - 0 (3)
6 {5} 4 M - 0 (2)
7 - 8 0 - 0 (2)8 {7} 3 M - 4 (1)
9 {8} 4 M - 0 (3)
3/22/2004 Job Shop Scheduling 42
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
S1 = {1, 5, 7}
X* = min{4, 4, 0} = 0
s1 = {7}
PS1 = {4,7}
Op pred dj j Cj Tj1 - 5 4 - 4 (1)
2 {1} 2 M - 0 (2)
3 {2} 3 M - 0 (3)
4 - 4 - 4 4 (1)
5 - 3 4 - 0 (3)6 {5} 4 M - 0 (2)
7 - 8 0 - 0 (2)
8 {7} 3 M - 4 (1)
9 {8} 4 M - 0 (3)
8/3/2019 7030 Job Shop Scheduling
22/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 43
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 4 - 4 (1)
2 {1} 2 M - 8 (2)
3 {2} 3 M - 0 (3)
4 - 4 - 4 4 (1)
5 - 3 4 - 0 (3)
6 {5} 4 M - 8 (2)
7 - 8 - 8 8 (2)
8 - 3 8 - 4 (1)
9 {8} 4 M - 0 (3)
S2 = {1, 5, 8}
X* = min{4, 4, 8} = 4
s2 = {1, 5}
select operation 5 by SPT
PS2 = {4,7, 5}
3/22/2004 Job Shop Scheduling 44
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 4 - 4 (1)
2 {1} 2 M - 8 (2)
3 {2} 3 M - 7 (3)
4 - 4 - 4 4 (1)
5 - 3 - 7 7 (3)
6 - 4 8 - 8 (2)
7 - 8 - 8 8 (2)
8 - 3 8 - 4 (1)
9 {8} 4 M - 7 (3)
S3 = {1, 6, 8}
X* = min{4, 8, 8} = 4
s3 = {1}
PS3 = {4, 7, 5, 1}
8/3/2019 7030 Job Shop Scheduling
23/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 45
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 - 9 9 (1)
2 - 2 9 - 8 (2)
3 {2} 3 M - 7 (3)
4 - 4 - 4 4 (1)
5 - 3 - 7 7 (3)
6 - 4 8 - 8 (2)
7 - 8 - 8 8 (2)
8 - 3 9 - 9 (1)
9 {8} 4 M - 7 (3)
S4 = {2, 6, 8}
X* = min{9, 8, 9} = 8
s4 = {6}
PS4 = {4, 7, 5, 1, 6}
3/22/2004 Job Shop Scheduling 46
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 - 9 9 (1)
2 - 2 12 - 8 (2)
3 {2} 3 M - 7 (3)
4 - 4 - 4 4 (1)
5 - 3 - 7 7 (3)
6 - 4 - 12 12 (2)
7 - 8 - 8 8 (2)
8 - 3 9 - 9 (1)
9 {8} 4 M - 7 (3)
S5 = {2, 8}
X* = min{12, 9} = 9
s5 = {8}
PS5 = {4, 7, 5, 1, 6, 8}
8/3/2019 7030 Job Shop Scheduling
24/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 47
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 - 9 9 (1)
2 - 2 12 - 0 (2)
3 {2} 3 M - 0 (3)
4 - 4 - 4 4 (1)
5 - 3 - 7 7 (3)
6 - 4 - 12 12 (2)
7 - 8 - 8 8 (2)
8 - 3 - 12 12 (1)
9 - 4 12 - 0 (3)
S6 = {2, 9}
X* = min{12, 12} = 12
s6 = {2, 9}
select operation 2 by SPT
PS6 = {4, 7, 5, 1, 6, 8, 2}
3/22/2004 Job Shop Scheduling 48
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 - 9 9 (1)
2 - 2 - 14 14 (2)
3 - 3 14 - 0 (3)
4 - 4 - 4 4 (1)
5 - 3 - 7 7 (3)
6 - 4 - 12 12 (2)
7 - 8 - 8 8 (2)
8 - 3 - 12 12 (1)
9 - 4 12 - 0 (3)
S7 = {3, 9}
X* = min{14, 12} = 12
s7 = {9}
select operation 2 by SPTPS7 = {4, 7, 5, 1, 6, 8, 2, 9}
8/3/2019 7030 Job Shop Scheduling
25/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 49
Schedule Generation Example
Operation (m/c, time) node
Part 1 2 3
1 (1, 5) 1 (2, 2) 2 (3, 3) 3
2 (1, 4) 4 (3, 3) 5 (2, 4) 6
3 (2, 8) 7 (1, 3) 8 (3, 4) 9
Op pred dj j Cj Tj1 - 5 - 9 9 (1)
2 - 2 - 14 14 (2)
3 - 3 16 19 0 (3)
4 - 4 - 4 4 (1)
5 - 3 - 7 7 (3)
6 - 4 - 12 12 (2)
7 - 8 - 8 8 (2)
8 - 3 - 12 12 (1)
9 - 4 - 16 16 (3)
PS8 = {4, 7, 5, 1, 6, 8, 2, 9, 3}
3/22/2004 Job Shop Scheduling 50
Schedule Generation Example
Operation (m/c, time)
Part 1 2 3
1 (1, 5) (2, 2) (3, 3)
2 (1, 4) (3, 3) (2, 4)
3 (2, 8) (1, 3) (3, 4)
Final Solution
1,1M1
M2
M38
2,1 3,2
3,1 1,2
2,2
2,3
1,33,39 12 14 16 194 7
8/3/2019 7030 Job Shop Scheduling
26/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
Problem Space-based Search with
Schedule Generation
3/22/2004 Job Shop Scheduling 52
Reference Leon, V. J. and R. Balakrishnan, Strength and
Adaptability of Problem-Space Based Neighborhoods for
Resource-Constrained Scheduling, OR Spektrum, Issue2/3, Vol. 17, 1995.
Resource-Constrained Scheduling (RCS) Similar to thejob-shop scheduling problem except that each activity
may require multiple resources.
8/3/2019 7030 Job Shop Scheduling
27/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 53
RCS Formulation
Notation:
Ci - Completion time
for task i
di Duration of task i
bk Number of units
of resource k
Dt Set of activities in
process at time t
Zis a regular measureof performance
A regular measureis
non-decreasing incompletion time of the
activities
{ }
1 2minimize ( , , , )
subject to:
max ,
, ,
j
k
n
i i jj P
k ik
i D
Z C C C
C d C i
b B k t
max{ | 1,2, , }
1 max{0, }
i
i i
i
Z C i n
Z C d n
= =
=
Consider makespan and mean tardiness
3/22/2004 Job Shop Scheduling 54
RCS Solution with Local Search
If we assume that each activity requires exactly one resource and
that there is one unit of each resource available, we have our job
shop problem.
Local Search
Given an initial feasible solution and the corresponding value of the
objective function, local search consists of constructing similar
solutions, evaluating them, moving to more promising regionsof the
neighborhood, and repeating until no further improvement is found (or
until the procedure runs out of available time).
Two critical issues for local search
Where to search generation of the neighborhoods
How to search finding similarsolutions in the neighborhood.
8/3/2019 7030 Job Shop Scheduling
28/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 55
Local Search
Characteristics of neighborhoods Strength
A neighborhood is strongif solutions in it are close to optimal
Adaptability
A neighborhood is adaptableif the procedure used to generate it
can easily be modified to accommodate changes in the
performance measure.
Common local search procedures
Simulated annealing
Genetic algorithms
Tabu search
Problem space-based search focus of Leon and Balakrishnan
3/22/2004 Job Shop Scheduling 56
Local Search Characteristics of local search procedures:
Neighbors are generated by perturbing a feasible solution
A neighborhood of certain size has a certain strength,
depending on the quality of the solutions
One either moves to a new neighborhood as soon as a better
solution is found (first improvement) or after the complete
neighborhood has been evaluated (steepest descent).
The search of neighboring solutions either follows a
lexicographical ordering induced by indexing, or a random
ordering.
8/3/2019 7030 Job Shop Scheduling
29/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 2
3/22/2004 Job Shop Scheduling 57
Perturbing the Solution
Many local search procedures involve finding a feasible
solution (like the above Gantt chart) and perturbingthesolution to try to improve the objective function value.
Problem-Space Based search perturbs the problemrather than the solution.
1,1M1
M2
M35 8
2,1 3,2
3,1 1,2
2,2
2,3
1,3 3,39 10 12 13 15 16 19
3/22/2004 Job Shop Scheduling 58
Problem-Space Based Search Define (h, p) as a heuristic-problem pair where:
his a fast problem-specific heuristic (like schedule generation),and
pis a specific problem instance.
(h, p) is an encodingof a specific solution
(h, p) = (schedule generation with SPT, specific problem)
(h, p) solution (Gantt chart with the associated makespan)
We want to perturb the original problem data to define a
neighborhood of solutions (by applying hto a
neighborhood of problems).
8/3/2019 7030 Job Shop Scheduling
30/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 3
3/22/2004 Job Shop Scheduling 59
Problem-Space Based Search
Let p0 be a vector of the original processing times. (h, p0) gives the initial solution
Define a neighborof p0:
p= p0 + , where is a pertubation vector, and
p= {pj= pj0+j,j= 1, 2, , n}
Define:
Np= {p+ | |||| < } as a problem space neighborhood
Ns
= {h(q) | qNp
} as a neighborhood of solutions
3/22/2004 Job Shop Scheduling 60
Problem-Space Based Search Job shop scheduling:
Let hbe schedule generation with SPT
Define the pertubation operation as:
where is a constant0 0 0UNIFORM( , )i i i ip p p p = +
8/3/2019 7030 Job Shop Scheduling
31/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 3
3/22/2004 Job Shop Scheduling 61
Search Methods
Simple Neighborhood Search1. Sol = h(p0)
2. pI = p0
3. for (i = 0; i < NBRS; i++)
4. p = p0 +
5. if (h(p) < Sol)
6. Sol = h(p)
7. pI = p
8. endif
9. endfor
3/22/2004 Job Shop Scheduling 62
Search Methods Steepest Descent Search
1. for (i = 0; i < NHOODS; i++)
2. Sol = h(p0)
3. pI = p0
4. for (j = 0; j < NBRS; j++)
5. p = p0 +
6. if (h(p) < Sol)
7. Sol = h(p)
8. pI = p
9. endif
10. endfor
11. p0 = pI
12. endfor
8/3/2019 7030 Job Shop Scheduling
32/33
NSY 7030 - Manufacturing Systems Design 3/22/20
U Industrial and Systems Engineering 3
3/22/2004 Job Shop Scheduling 63
Search Methods
First Improvement Search1. Sol = h(p0)
2. pI = p0
3. for (i = 0; i < Iterations; i++)
4. p = pI +
5. if (h(p) < Sol)
6. Sol = h(p)
7. pI = p
8. endif
9. endfor
3/22/2004 Job Shop Scheduling 64
Problem-Space Based Search Wanted to investigate the use ofsimpleintuitive
heuristics to generate neighborhoods
Using the preceding search techniques, Leon and
Balakrishnan found the following keys to getting good
solutions:
1. Having a good starting point, and
2. Investigating a large number of neighbors of the starting
point.
In order to achieve these keys, hmust encode problem-
specific data and it must be fast
Also developed and tested a genetic algorithm
8/3/2019 7030 Job Shop Scheduling
33/33
NSY 7030 - Manufacturing Systems Design 3/22/20
3/22/2004 Job Shop Scheduling 65
Computational Testing
Objectives of the computational study: Evaluate the quality of the proposed problem-space based
neighborhoods
Evaluate the improvements achievable with a genetic algorithm
Evaluate the adaptability of the proposed neighborhoods to
different objective functions
Tested using 110 problems from the literature. Optimal
solutions were known for all test problems.
3/22/2004 Job Shop Scheduling 66
Conclusions Leon and Balakrishnan reported the following
conclusions to their study.
1. The quality of the search neighborhoods was found to be good
and the solutions obtained were close to optimal (strongneighborhoods)
2. Minimal improvements in the solution quality were achieved
using the genetic algorithm
3. The adaptability of the search procedures were established by
experimenting with makespanand mean tardinessas themeasures of performance