Post on 22-Dec-2015
Spring 2002 IE 514 2
Project Scheduling
Jobs subject to precedence constraintsJob on arc format (most common)
2 5
1 4
3
6
7 20
Spring 2002 IE 514 3
Overview
ProjectScheduling
No resourceConstraints
ResourceConstraints
Critical PathMethod (CPM)
Program Evaluationand Review Technique
(PERT)
Heuristic ResourceLeveling
Integer ProgrammingFormulations
Spring 2002 IE 514 4
Planning a Concert
Task Predecessors
A Plan concert -
B Advertise A
C Sell tickets A
D Hold concert B, C
Spring 2002 IE 514 5
Job on Arc Network
Not allowed: no two jobs can have the same starting and ending node!
Need to introduce a dummy job.
AB
D
C
AB
DC
Spring 2002 IE 514 6
Changing a Tire
Task Predecessors
A Remove flat tire from wheel -
B Repair puncture on flat tire A
C Remove spare from trunk -
D Put spare on wheel A, C
E Place repaired tire in trunk B, C
Spring 2002 IE 514 9
Job on Node Network
A B E
DC
No need for a dummy node
Less used traditionally
Recently more popular
Spring 2002 IE 514 10
Critical Path Method (CPM)
Think of unlimited machines in parallel… and n jobs with precedence
constraintsProcessing times pj as before
Objective to minimize makespan
Spring 2002 IE 514 11
Critical Path Method
Forward procedure: Starting at time zero, calculate the
earliest each job can be started The completion time of the last job is the
makespanBackward procedure Starting at time equal to the makespan,
calculate the latest each job can be started so that this makespan is realized
Spring 2002 IE 514 12
Forward ProcedureStep 1:
Set at time t = 0 for all jobs j with no predecessors,Sj
’=0 and set Cj’ = pj.
Step 2:Compute for each job j
Cj’ = Sj
’ + pj.
Step 3:The optimal makespan isSTOP
,max '
all
'k
jkj CS
''2
'1max ,...,,max nCCCC
Spring 2002 IE 514 13
Backward ProcedureStep 1:
Set at time t = Cmax for all jobs j with no successors,
Cj’’= Cmax and set Sj
’’ = Cmax - pj.
Step 2:Compute for each job j
Sj’’ = Cj
’’ - pj.
Step 3:Verify that STOP }.,...,min{0 ''''
1 nSS
,min ''
all
''k
jkj SC
Spring 2002 IE 514 14
Comments
The forward procedure gives the earliest possible starting time for each job
The backwards procedures gives the latest possible starting time for each job
If these are equal the job is a critical job. If these are different the job is a slack
job, and the difference is the float.A critical path is a chain of jobs starting
at time 0 and ending at Cmax.
Spring 2002 IE 514 15
Example
j 1 2 3 4 5 6 7 8 9 10 11 12 13 14
pj 5 6 9 12 7 12 10 6 10 9 7 8 7 5
1
2
3
6 9
5 8
4 7
11
10
12 14
13
Spring 2002 IE 514 16
Forward Procedure
1
2
3
6 9
5 8
4 7
11
10
12 14
13
5
5+6=11 11+12=23 23+10=33
5+9=14
14+12=26
14+7=21
26+10=36
26+6=32
36+7=4343+7=50
33+9=42
43+8=51 51+5=56
56max C
Spring 2002 IE 514 17
Backwards Procedure
1
2
3
6 9
5 8
4 7
11
10
12 14
13
14-9=5
24-12=12 34-10=24 43-9=34
26-12=14
36-10=26
35-10=26
43-7=36
43-7=36
51-8=4356-5=51
51-8=43
56-5=51 56
Spring 2002 IE 514 20
Time/Cost Trade-Offs
Assumed the processing times were fixed
More money shorter processing time
Start with linear costsProcessing timeMarginal cost
maxminjjj ppp
minmaxjj
bj
aj
j pp
ccc
Spring 2002 IE 514 22
Solution Methods
Objective: minimum cost of projectTime/Cost Trade-Off Heuristic Good schedules Works also for non-linear costs
Linear programming formulation Optimal schedules Non-linear version not easily solved
Spring 2002 IE 514 23
Sources, Sinks, and Cuts
Source (dummy) node
Sink node
Minimal cut set
Cut set
Spring 2002 IE 514 24
Time/Cost Trade-Off Heuristic
Step 1:
Set all processing times at their maximum
Determine all critical paths with these processing times
Construct the graph Gcp of critical paths
Continue to Step 2
maxjj pp
Spring 2002 IE 514 25
Time/Cost Trade-Off Heuristic
Step 2:
Determine all minimum cut sets in Gcp
Consider those sets where all processing times are larger
than their minimum
If no such set STOP; otherwise continue to Step 2
cpjj Gjpp ,min
Spring 2002 IE 514 26
Time/Cost Trade-Off Heuristic
Step 3:
For each minimum cut set:
Compute the cost of reducing all processing times by one
time unit.
Take the minimum cut set with the lowest cost
If this is less than the overhead per time unit go on to Step
4; otherwise STOP
Spring 2002 IE 514 27
Time/Cost Trade-Off Heuristic
Step 4:
Reduce all processing times in the minimum cut set by
one time units
Determine the new set of critical paths
Revise graph Gcp and go back to Step 2
Spring 2002 IE 514 28
Example
j 1 2 3 4 5 6 7 8 9 10 11 12 13 14
pj 5 6 9 12 7 12 10 6 10 9 7 8 7 5
pj 3 5 7 9 5 9 8 3 7 5 6 5 5 2
cja 20 25 20 15 30 40 35 25 30 20 25 35 20 10
cj 7 2 4 3 4 3 4 4 4 5 2 2 4 8
Spring 2002 IE 514 31
Critical Path Subgraph (Gcp)
1
3
6 9
11
12 14
C1=7
C3=4
C6=3 C9=4
C11=2
C12=2 C14=8
Minimum cutset with lowest cost
Cut sets: {1},{3},{6},{9}, {11},{12},{14}.
Spring 2002 IE 514 32
Critical Path Subgraph (Gcp)
1
3
6 9
11
12 14
C1=7
C3=4
C6=3 C9=4
C11=2
C12=2 C14=8
13
Cut sets: {1},{3},{6},{9}, {11},{12,13},{14}.
C13=4
Minimum cutset with lowest cost
Spring 2002 IE 514 33
Critical Path Subgraph (Gcp)
1
3
6 9
11
12 14
C1=7
C3=4
C6=3 C9=4
C11=2
C12=2 C14=8
13
Reduce processing timenext on job 6
C13=14
Reduce processingtime until = 4
Spring 2002 IE 514 34
Critical Path Subgraph (Gcp)
1
3
6 9
11
12 14
C1=7
C3=4
C6=3 C9=4
C11=2
C12=2 C14=8
13
C13=4
2 4 7
10
C2=2 C4=3 C7=4
C10=5
Spring 2002 IE 514 35
Linear Programming Formulation
The heuristic does not guaranteed optimum
Here total cost is linear
Want to minimize
n
jjjj
bj ppccCc
1
maxmax0
n
jjj pcCc
1max0 .
Spring 2002 IE 514 36
Linear Program
Minimize
subject to
jpxC
jx
jpp
jpp
Akjxpx
jj
j
jj
jj
jjk
,0
,0
,
,
,0
max
min
max
n
jjj pcCc
1max0 .
Spring 2002 IE 514 38
Program Evaluation and Review Technique (PERT)Assumed processing times deterministicProcessing time of j random with mean j
and variance j2.
Want to determine the expected makespan
Assume we havepj
a = most optimistic processing time
pjm = most likely processing time (mode)
pjb = most pessimistic processing time
Spring 2002 IE 514 39
Expected Makespan
Estimate expected processing time
Apply CPM with expected processing times
Let Jcp be a critical pathEstimate expected makespan
6
4 bma
jjjj
ppp
cpJj
jCE )(ˆmax
Spring 2002 IE 514 40
Distribution of Makespan
Estimate the variance of processing times
and the variance of the makespan
Assume it is normally distributed
62
ab
jjj
pp
cpJj
jCV 2max )(ˆ
Spring 2002 IE 514 41
Discussion
Potential problems with PERT: Always underestimates project duration
other paths may delay the project
Non-critical paths ignoredcritical path probabilitycritical activity probability
Activities are not always independentsame raw material, weather conditions, etc.
Estimates by be inaccurate
Spring 2002 IE 514 42
Discussion
No resource constraints: Critical Path Method (CPM) Simple deterministic Time/cost trade-offs
Linear cost (heuristic or exact)Non-linear cost (heuristic)
Accounting for randomness (PERT)
Spring 2002 IE 514 44
Resource Constraints
Renewable resourcesVery hard problemNo LPCan develop an IPLet job n+1 be dummy job (sink) and
otherwise.0
at time completed is job if1 tjx jt
Spring 2002 IE 514 45
Makespan
Let H bound the makespan, e.g.
Completion time of job j isand the makespan
n
jjpH
1
H
tjtxt
1
H
ttnxt
1,1
Spring 2002 IE 514 46
IP Formulation
MinimizeSubject to
H
ttnxt
1,1
1
0
1
1
1
11
H
tjt
j
n
j
pt
tujuij
H
tktk
H
tjt
x
RxR
txpxt
j
Spring 2002 IE 514 47
In Practice
The IP cannot be solved (Almost) always resource constraintsHeuristic:
Resource constraint Precedence constraint
Example: pouring foundation and sidewalk both require same cement mixer delaying foundation delays building precedence constraint: pour foundation first
not a logical constraint
Spring 2002 IE 514 48
Optimality of Heuristic
Say n jobs need the same resourceCould otherwise all be done
simultaneouslyAdd (artificial) precedence constraintsHave n! possibilities
Will we select the optimal sequence?
2 3 4 5 6
2 6 24 120 720
Spring 2002 IE 514 49
Decision Support
Resource leveling Solve with no resource constraints Plot the resource use as a function of
time If infeasible suggest precedence
constraintsLongest jobMinimum slack
User adds constraints Start over
Spring 2002 IE 514 50
Example: One Resource
Uses resource
3
6 11
66
2
9
Time
10 20 30
Resource ProfileCapacity
Spring 2002 IE 514 52
Job Shop Scheduling
Have m machines and n jobsEach job visits some or all of the
machines
Customer order of small batches Wafer fabrication in semiconductor industry Hospital
Very difficult to solve
Spring 2002 IE 514 53
Job Shop Example
Constraints Job follows a specific route
One job at a time on each machine
(1,1)
(2,3)
(3,1)
(4,3)
(1,2) (1,3)
(2,1) (2,2)
(4,2)
(3,3)
Machine 1
Machine 2
Machine 3
Machine 4
Spring 2002 IE 514 54
Graph Representation
Each job follows a specific route through the job shop ...
(1,1) (2,1) (3,1)
(1,2) (2,2) (4,2)
(2,3) (1,3) (4,3) (3,3)
Sink
Source
(Conjuctive arcs)
Spring 2002 IE 514 55
Graph Representation
Machine constraints must also be satisfied ...
(Disjunctive arcs)
(1,1) (2,1) (3,1)
(1,2) (2,2) (4,2)
(2,3) (1,3) (4,3) (3,3)
Sink
Source
Spring 2002 IE 514 56
Solving the Problem
Select one of each pair of disjunctive arcs
The longest path in this graph G(D) determines the makespan
(1,1) (2,1) (3,1)
(1,2) (2,2) (4,2)
(2,3) (1,3) (4,3) (3,3)
Sink
Source
Spring 2002 IE 514 57
Feasibility of the Schedule
Are all selections feasible?
(1,1) (2,1) (3,1)
(1,2) (2,2) (4,2)
(2,3) (1,3) (4,3) (3,3)
Sink
Source
Spring 2002 IE 514 58
Disjunctive Programming
),( allfor 0
),(),( allfor or
),( allfor
),(),( allfor
max
jiy
jkjipyy
pyy
jipyC
jkjipyy
ij
ijijil
ililij
ijij
ijijkj
Minimize
Subject to
maxC
Spring 2002 IE 514 59
Solution Methods
Exact solution Branch and Bound 20 machines and 20 jobs
Dispatching rules (16+) Shifting Bottleneck
Search heuristics Tabu, SA, GA, etc.
Spring 2002 IE 514 61
Definitions
A schedule is nondelay if no machine is idled when there is an operation available
A schedule is called active if no operation can be completed earlier by altering the sequence on machines and not delaying other operations
For “regular” objectives the optimal schedule is always active but not necessarily nondelay
Spring 2002 IE 514 63
Nonactive Schedule
(3,2)
Machine 2
Machine 1
Machine 3
(1,1)
(2,3) (2,2) (2,1)
0 2 4 6 8
(2,1)
Spring 2002 IE 514 64
Active Schedule, not Nondelay
(3,2)
Machine 2
Machine 1
Machine 3
(1,1)
(2,3) (2,2) (2,1)
0 2 4 6 8
Spring 2002 IE 514 65
Nondelay schedule
(3,2)
Machine 2
Machine 1
Machine 3
(1,1)
(2,3) (2,2)(2,1)
0 2 4 6 8
Spring 2002 IE 514 67
Branch and Bound
Operation (i,j) with duration pij
Minimize makespanBranch by generating all active schedulesNotation Let denote operations whose predecessors
have been scheduled Let rij be the earliest possible starting time of
(i,j) in .
Spring 2002 IE 514 68
Generating Active Schedules
Step 1. (Initialize)Let contain the first operation of each jobLet rij = 0 for all (i,j).
Step 2. (Machine selection)Compute the current partial schedule
and let i* denote the machine where minimum achieved
ijijji
prt ),(
min)(
Spring 2002 IE 514 69
Generating Active Schedules
Step 3. (Branching)Let ’ denote all operations on machine i such that
For each operation in ’ consider a partial schedule with that operation next on i* For each partial schedule, delete operation from and include immediate follower in . Go back to Step 2.
)(* trji
Spring 2002 IE 514 71
Example
(1,1) (2,1) (3,1)
(2,2) (1,2) (3,2)
(1,3) (2,3) (4,3)
SinkSource (4,2)
0
10 84
8 3 5 6
4 7 30
0
22max C
Spring 2002 IE 514 72
Partitioning Tree
Level 1
)}3,1(),1,1{(
1
4}40,80,100min{)(
)}3,1(),2,2(),1,1{(
'
*
i
t
Spring 2002 IE 514 73
Level 1: select (1,1)
(1,1) (2,1) (3,1)
(2,2) (1,2) (3,2)
(1,3) (2,3) (4,3)
SinkSource (4,2)
0
10 84
8 3 5 6
4 7 30
0
Disjunctive Arcs
1010
24max C
Spring 2002 IE 514 74
Level 1: select (1,3)
(1,1) (2,1) (3,1)
(2,2) (1,2) (3,2)
(1,3) (2,3) (4,3)
SinkSource (4,2)
0
10 84
8 3 5 6
4 7 30
0
Disjunctive Arcs
4
4
26max C
Spring 2002 IE 514 75
Branching Tree
(1,1) scheduled firston machine 1
LB = 24
(1,3) scheduled firston machine 1
LB = 26
No disjunctive arcs
Spring 2002 IE 514 76
Branching Tree
Level 2:
)}2,2{(
2
8}410,810,80min{)(
)}3,1(),1,2(),2,2{(
'
*
i
t
Spring 2002 IE 514 77
Level 2: Select (2,2)
(1,1) (2,1) (3,1)
(2,2) (1,2) (3,2)
(1,3) (2,3) (4,3)
SinkSource (4,2)
0
10 84
8 3 5 6
4 7 30
0
Disjunctive Arcs
1010
Spring 2002 IE 514 78
Branching Tree
(1,1) scheduled firston machine 1
LB = 24(1,3) scheduled firston machine 1
LB = 26
No disjunctive arcs
(1,1) first on M1 and(2,2) first on M2
Spring 2002 IE 514 79
Lower Bounds
Lower bounds The length of the critical path in G(D’)
Quick but not very tight
Linear programming relaxation A maximum lateness problem (see
book)
Spring 2002 IE 514 81
Shifting Bottleneck
Minimize makespan in a job shopLet M denote the set of machinesLet M0 M be machines for which
disjunctive arcs have been selectedBasic idea: Select a machine in M - M0 to be included in
M0
Sequence the operations on this machine
Spring 2002 IE 514 82
Example
Jobs Sequence Processing Times
1 1,2,3 P11=10, P21=8, P31=4
2 2,1,4,3 P22=8, P12=3, P42=5, P32=6
3 1,2,4 P13=4, P23=7, P43=3
Spring 2002 IE 514 83
Iteration 1
(1,1) (2,1) (3,1)
(2,2) (1,2) (3,2)
(1,3) (2,3) (4,3)
SinkSource (4,2)
0
10 84
8 3 5 6
4 7 30
0
0M
22)( 0max MC
Spring 2002 IE 514 84
Selecting a Machine
Jobs 1 2 3
p1j 10 3 4
r1j 0 8 0
d1j 10 11 12
Set up a nonpreemptive single machine maximum latenessproblem for Machine 1:
Optimum sequence is 1,2,3 with Lmax(1)=5
Spring 2002 IE 514 85
Selecting a Machine
Jobs 1 2 3
p1j 10 3 4
r1j 0 8 0
d1j 10 11 12
Set up a nonpreemptive single machine maximum latenessproblem for Machine 2:
Optimum sequence is 2,3,1 with Lmax(2)=5
Spring 2002 IE 514 86
Selecting a Machine
Similarly,
Either Machine 1 or Machine 2 is the bottleneck
0)4(
4)3(
max
max
L
L
Spring 2002 IE 514 87
Iteration 2
(1,1) (2,1) (3,1)
(2,2) (1,2) (3,2)
(1,3) (2,3) (4,3)
SinkSource (4,2)
0
10 84
8 3 5 6
4 7 30
0
}1{0 M
27522)1()(})1({ maxmaxmax LCC
10
3
Spring 2002 IE 514 88
Selecting a Machine
Jobs 1 2 3
p2j 8 8 7
r2j 10 0 17
d2j 23 10 24
Set up a nonpreemptive single machine maximum latenessproblem for Machine 2:
Optimum sequence is 2,1,3 with Lmax(2)=1
Spring 2002 IE 514 89
Selecting a Machine
Similarly,
Either Machine 2 or Machine 3 is the bottleneck
0)4(
1)3(
max
max
L
L
Spring 2002 IE 514 90
Iteration 3
(1,1) (2,1) (3,1)
(2,2) (1,2) (3,2)
(1,3) (2,3) (4,3)
SinkSource (4,2)
0
10 84
8 3 5 6
4 7 30
0
}2,1{0 M
28127)2(})1({})2,1({ maxmaxmax LCC
10
3
88
Spring 2002 IE 514 91
Discussion
Procedure continues until all the disjunctive arcs have been added
Extremely effective Fast Good solutions
‘Just a heuristic’ No guarantee of optimum
Spring 2002 IE 514 92
Solving the Maximum Lateness Problem
(•,•,•)
(1,•,•) (2,•,•) (3,•,•)
(1,2,3) (1,3,2) (3,1,2) (3,2,1)
5max L 6max L 6max L 7max L
Spring 2002 IE 514 93
Discussion
The solution is actually a little bit more complicated than before
Precedence constraints because of other (already scheduled) machines
Delay precedence constraints(see example in book)
Spring 2002 IE 514 94
Discussion
Shifting bottleneck can be applied generally
Basic idea Solve problem “one variable at a time” Determine the “most important” variable Find the best value of that variable Move on to the “second most important” …. Here we treat each machine as a variable
Spring 2002 IE 514 96
Total Weighted Tardiness
We now apply a shifted bottleneck procedure to a job shop with total weighted tardiness objective Need n sinks in disjunctive graph Machines scheduled one at a time Given current graph calculate
completion time of each job Some n due dates for each operation Piecewise linear penalty function
Spring 2002 IE 514 98
Machine Selection
Machine criticality Solve a single machine problem Piecewise linear cost function May have delayed precedence
constraints Generalizes single-machine with n jobs,
precedence constraints, and total weighted tardiness objective
ATC rule
Spring 2002 IE 514 99
Generalized ATC Rule
n
k
ijijkij
j
jj pK
trpd
p
wtI
1
)(exp)(
Earliest time machine can be used
Scaling constantRanks jobs good schedule
Spring 2002 IE 514 100
Criticality of Machines
Criticality = subproblem objective function Simple
More effective ways, e.g. Add disjunctive arcs for each machine Calculate new completion times
and
''ijC
K
CdCCw kk
n
kkkk
''
1
''' exp
Spring 2002 IE 514 101
Example
(1,1) (2,1) (3,1)
(3,2) (1,2)
(3,3) (2,3) (1,3)
Sink
Source (2,2)
55 10 4
4 5 6
5 3 70
0Sink
Sink
241 d
182 d
163 d
Spring 2002 IE 514 102
Subproblem: Machine 1
J o b s 1 2 3
p 1 j 5 5 7
r 1 j 5 4 8
31
21
11 ,, jjj ddd 1 0 , - , - - , 1 2 , - - , - , 1 6
Spring 2002 IE 514 103
Subproblem: Machine 2
J o b s 1 2 3
p 2 j 1 0 6 3
r 2 j 1 0 9 5
32
22
12 ,, jjj ddd 2 0 , - , - - , 1 8 , - - , - , 9
Spring 2002 IE 514 104
Subproblem: Machine 3
J o b s 1 2 3
p 3 j 4 4 5
r 3 j 2 0 0 0
33
23
13 ,, jjj ddd 2 4 , - , - - , 7 , - - , - , 6
Spring 2002 IE 514 105
Subproblem Solutions
Solve using dispatching rule Use K=0.1 Have t = 4,
For machine 1 this results in
1213
712
611
105.1)4(
103.3)4(
102.1)4(
I
I
I
5p
Schedulefirst
Spring 2002 IE 514 106
Solution to Subproblems
Machine Sequence Value
1 (1,1),(1,2),(1,3) 18
2 (2,3),(2,1),(2,2) 16
3 (3,3),(3,2),(3,1) 4
Schedulefirst
Spring 2002 IE 514 107
First Iteration
(1,1) (2,1) (3,1)
(3,2) (1,2)
(3,3) (2,3) (1,3)
Sink
Source (2,2)
55 10 4
4 5 6
5 3 70
0Sink
Sink
241 d
182 d
163 d
5
5
Spring 2002 IE 514 108
Subproblem: Machine 2
J o b s 1 2 3
p 2 j 1 0 6 3
r 2 j 1 0 1 5 5
32
22
12 ,, jjj ddd 2 0 , - , - - , 2 1 , - - , - , 1 5
Spring 2002 IE 514 109
Subproblem: Machine 3
J o b s 1 2 3
p 3 j 4 4 5
r 3 j 2 0 0 0
33
23
13 ,, jjj ddd 2 4 , - , - - , 1 0 , 1 0 - , - , 1 2
Spring 2002 IE 514 110
Solution to Subproblems
Machine Sequence Value
2 (2,3),(2,1),(2,2) 10
3 (3,2),(3,3),(3,1) 0
Schedulefirst
Spring 2002 IE 514 111
Second Iteration
(1,1) (2,1) (3,1)
(3,2) (1,2)
(3,3) (2,3) (1,3)
Sink
Source (2,2)
55 10 4
4 5 6
5 3 70
0Sink
Sink
241 d
182 d
163 d
5
53
10
Spring 2002 IE 514 112
Subproblem: Machine 3
J o b s 1 2 3
p 3 j 4 4 5
r 3 j 2 0 0 0
33
23
13 ,, jjj ddd 2 4 , - , - - , 1 5 , 1 0 7 , 7 , 1 2
Spring 2002 IE 514 113
Third Iteration
(1,1) (2,1) (3,1)
(3,2) (1,2)
(3,3) (2,3) (1,3)
Sink
Source (2,2)
55 10 4
4 5 6
5 3 70
0Sink
Sink
241 d
182 d
163 d
5
53
10
5
4
Spring 2002 IE 514 114
Final Schedule
0 5 10 15 20 25 30
3,3 3,2
2,3
1,1 1,2
2,1 2,2
3,1
1,3Machine 1
Machine 2
Machine 3
1d
2d3d
Spring 2002 IE 514 115
Performance
Objective function
Try finding a better schedule using LEKIN(optimal value = 18)
28)1622(2)1826(2)2424(13
1
jjjTw
Spring 2002 IE 514 117
Random Search Methods
Popular to use genetic algorithms, simulated annealing, tabu search, etc.
Do not work very well Problems defining the neighborhood Do not exploit special structure
Spring 2002 IE 514 118
Defining the Neighborhood
Approximately nm neighbors! Simply too inefficient
(1,1) (2,1) (3,1)
(3,2) (1,2)
(3,3) (2,3) (1,3)
Sink
Source (2,2)
55 10 4
4 5 6
5 3 70
0Sink
Sink
5
53
10
5
4
Spring 2002 IE 514 119
Job Shop with Makespan
Random search methods can be applied Use ‘critical path’ neighborhood Can eliminate many neighbors immediately
Specialized methods usually better Random search = ‘giving up’ ! Traveling Salesman Problem (TSP)
Very well studiedLin-Kernighan type heuristics (1970) Order of 1000 times faster than random search
Spring 2002 IE 514 120
Comparison of Methods
Method Average Maximum
SimulatedAnnealing
0.42 2.0
Tabu Search 0.18 0.8
GeneticAlgorithm
1.37 4.7
Percentage over known optimum:
Winner
Spring 2002 IE 514 121
The Nested Partitions Method
Partitioning by scheduling the bottleneck machine
firstRandom sampling using randomized dispatching rules
Calculating the promising index incorporating local improvement heuristic
Can incorporate any special structure!
Spring 2002 IE 514 124
Applications
Very common in applications: Paper mills Steel lines Bottling lines Food processing lines
Spring 2002 IE 514 125
Classical Literature
Exact solutions
Simple flow shop with makespan
criterion
Two machine case (Johnson’s rule)
Realistic problems require heuristic
approaches
Spring 2002 IE 514 126
Objectives
Multiple objectives usual Meet due dates
Maximize throughput
Minimize work-in-process (WIP)
jjTw
ijikiijk aahs ,
Setting for jobj on Machine i
Spring 2002 IE 514 127
Generating Schedules
Identify bottlenecksCompute time windows at bottleneck
stageCompute machine capacity at
bottleneckSchedule bottleneck stageSchedule non-bottlenecks
Spring 2002 IE 514 128
Identifying Bottlenecks
In practice usually knownSchedule downstream bottleneck firstDetermining the bottleneck loading number of shifts downtime due to setups
Bottleneck assumed fixed
Spring 2002 IE 514 129
Identifying Time Window
Due date Shipping day Multiply remaining processing times
with a safety factorRelease date Status j of job j
Release date if j = l)(lfrbj
Decreasingfunction -determinedempirically
Spring 2002 IE 514 130
Computing Capacity
Capacity of each machine at bottleneck Speed Number of shifts Setups
Two cases: Identical machines Non-identical machines
Spring 2002 IE 514 131
Scheduling Bottleneck
Jobs selected one at a time Setup time Due date Capacity
For example ATCS rule
Spring 2002 IE 514 132
Schedule Remaining Jobs
Determined by sequence at bottleneck stage
Minor adjustments Adjacent pairwise interchanges to
reduce setup