View
223
Download
0
Category
Preview:
Citation preview
8/13/2019 Uni Bonn (Germany) Sched10_5
1/102
Scheduling
Shop Scheduling
Tim Nieberg
8/13/2019 Uni Bonn (Germany) Sched10_5
2/102
Shop models: General Introduction
Remark: Consider non preemptive problems with regular objectives
Notation Shop Problems:m machines, n jobs 1, . . . , noperationsO = {(i , j )| j = 1 , . . . , n; i M j M := {1, . . . , m}} withprocessing times p ij M j is the set of machines where job j has to be processed on
PREC species the precedence constraints on the operations
8/13/2019 Uni Bonn (Germany) Sched10_5
3/102
Shop models: General Introduction
Notation Shop Problems:m machines, n jobs 1, . . . , noperationsO = {(i , j )| j = 1 , . . . , n; i M j M := {1, . . . , m}} withprocessing times p
ij M j is the set of machines where job j has to be processed onPREC species the precedence constraints on the operationsFlow shop: M j = M andPREC = {(i , j ) (i + 1 , j )|i = 1 , . . . , m 1; j = 1 , . . . , n}
8/13/2019 Uni Bonn (Germany) Sched10_5
4/102
Shop models: General Introduction
Notation Shop Problems:
m machines, n jobs 1, . . . , noperationsO = {(i , j )| j = 1 , . . . , n; i M j M := {1, . . . , m}} withprocessing times p ij
M j
is the set of machines where job j has to be processed onPREC species the precedence constraints on the operationsFlow shop: M j = M andPREC = {(i , j ) (i + 1 , j )|i = 1 , . . . , m 1; j = 1 , . . . , n}
Open shop: M j
= M and PREC = Job shop: PREC contain a chain (i 1 , j ) . . . , (i |M j | , j ) foreach j
8/13/2019 Uni Bonn (Germany) Sched10_5
5/102
Shop models: General Introduction
Disjunctive Formulation of the constraintsC ij denotes completion time of operation (i , j )PREC have to be respected:
8/13/2019 Uni Bonn (Germany) Sched10_5
6/102
Shop models: General Introduction
Disjunctive Formulation of the constraintsC ij denotes completion time of operation (i , j )PREC have to be respected:
C ij p ij C kl for all (k , l ) (i , j ) PREC
no two operations of the same job are processed at the sametime:
8/13/2019 Uni Bonn (Germany) Sched10_5
7/102
Shop models: General Introduction
Disjunctive Formulation of the constraintsC ij denotes completion time of operation (i , j )PREC have to be respected:
C ij p ij C kl for all (k , l ) (i , j ) PREC
no two operations of the same job are processed at the sametime:
C ij p ij C kj or C kj p kj C ij for all i , k M j ; i = k
no two operations are processed jointly on the same machine:
8/13/2019 Uni Bonn (Germany) Sched10_5
8/102
Shop models: General Introduction
Disjunctive Formulation of the constraintsPREC have to be respected:
C ij p ij C kl for all (k , l ) (i , j ) PREC
no two operations of the same job are processed at the sametime:
C ij p ij C kj or C kj p kj C ij for all i , k M j ; i = k
no two operations are processed jointly on the same machine:
C ij p ij C il or C il p il C ij for all (i , j ), (i , l ) O ; j = l
C ij p ij 0the or constraints are called disjunctive constraintssome of the disjunctive constraints are overruled by the
PREC constraints
8/13/2019 Uni Bonn (Germany) Sched10_5
9/102
Shop models: General Introduction
Disjunctive Formulation - makes pan objective
min C max s . t .
C max C ij (i , j ) O C ij p ij C kl (k , l ) (i , j ) PREC C ij p ij C kj or C kj p kj C ij i , k M j ; i = k C ij p ij C il or C il p il C ij (i , j ), (i , l ) O ; j = l C ij p ij 0 (i , j ) O
8/13/2019 Uni Bonn (Germany) Sched10_5
10/102
Shop models: General Introduction
Disjunctive Formulation - sum objective
min w j L j s . t .L j C ij d j (i , j ) O C ij p ij C kl (k , l ) (i , j ) PREC
C ij p ij C kj or C kj p kj C ij i ,k M
j
; i = k C ij p ij C il or C il p il C ij (i , j ), (i , l ) O ; j = l C ij p ij 0 (i , j ) O
Remark:
also other constraints, like e.g. release dates, can beincorporatedthe disjunctive constraints make the problem hard (lead to anILP formulation)
8/13/2019 Uni Bonn (Germany) Sched10_5
11/102
Shop models: General Introduction
Disjunctive Graph Formulationgraph representation used to represent instances and solutionsof shop problemscan be applied for regular objectives only
h d l l d
8/13/2019 Uni Bonn (Germany) Sched10_5
12/102
Shop models: General Introduction
Disjunctive Graph G = ( V , C , D )
V set of vertices representing the operations O a vertex is labeled by the corresponding processing time;Additionally, a source node 0 and a sink node belong to V ;their weights are 0C set of conjunctive arcs reecting the precedence constraints:for each (k , l ) (i , j ) PREC a directed arc belongs to C additionally 0 O and O are added to C D set of disjunctive arcs representing conicting operations:between each pair of operations belonging to the same job orto be processed on the same machine, for which no orderfollows from PREC , an undirected arc belongs to D
Sh d l G l I d i
8/13/2019 Uni Bonn (Germany) Sched10_5
13/102
Shop models: General Introduction
Disjunctive Graph - Example Job Shop
Data: 3 jobs, 3 machines;
M1 M2 M3
32 (1, 2) (3, 2)
(3, 1) (2, 1) (1, 1)
(2, 3) (1, 3) (3, 3)
p 31 = 4 , p 21 = 2 , p 11 = 1
p 12 = 3 , p 32 = 3p 23 = 2 , p 13 = 4 , p 33 = 1
Jobs: 1
Sh d l G l I t d ti
8/13/2019 Uni Bonn (Germany) Sched10_5
14/102
Shop models: General Introduction
Disjunctive Graph - Example Job Shop
3
2 (1, 2) (3, 2)
(3, 1) (2, 1) (1, 1)
(2, 3) (1, 3) (3, 3)
p 31 = 4 , p 21 = 2 , p 11 = 1
p 12 = 3 , p 32 = 3
p 23 = 2 , p 13 = 4 , p 33 = 1
Jobs: 1
Graph:
0
Conjunctive arcs3,1 2,1
1,2
1,1
3,2
2,3 1,3 3,3
Disjunctive arcs
Sh d l G l I t d ti
8/13/2019 Uni Bonn (Germany) Sched10_5
15/102
Shop models: General Introduction
Disjunctive Graph - Example Open Shop
Data: 3 jobs, 3 machines;
3
2Jobs: 1 (1, 1), (2, 1), (3, 1)
(1, 2), (2, 2), (3, 2)
(1, 3), (2, 3), (3, 3)
p 11 = 4 , p 21 = 2 , p 31 = 1p 12 = 3 , p 22 = 1 , p 32 = 3
p 13 = 2 , p 23 = 4 , p 33 = 1
Shop models: General Introd ction
8/13/2019 Uni Bonn (Germany) Sched10_5
16/102
Shop models: General Introduction
Disjunctive Graph - Example Open Shop
3
2
Jobs: 1 (1, 1), (2, 1), (3, 1)
(1, 2), (2, 2), (3, 2)
(1, 3), (2, 3), (3, 3)
p 11 = 4 , p 21 = 2 , p 31 = 1
p 12 = 3 , p 22 = 1 , p 32 = 3
p 13 = 2 , p 23 = 4 , p 33 = 1
Graph:
0
Conjunctive arcs2,1
1,2
3,3
Disjunctive arcs
1,1 3,1
2,2
1,3 2,3
3,2
Shop models: General Introduction
8/13/2019 Uni Bonn (Germany) Sched10_5
17/102
Shop models: General Introduction
Disjunctive Graph - Selection
basic scheduling decision for shop problems (see disj.formulation):dene an ordering for operations connected by a disjunctivearc
turn the undirected disjunctive arc into a directed arcselection S : a set of directed disjunctive arcs(i.e. S D together with a chosen direction for each a S )disjunctive arcs which have been directed are called xed
a selection is a complete selection if each disjunctive arc has been xedthe graph G (S ) = ( V , C S ) is acyclic
Shop models: General Introduction
8/13/2019 Uni Bonn (Germany) Sched10_5
18/102
Shop models: General Introduction
Selection - Remarks
a feasible schedule induces a complete selectiona complete selection leads to sequences in which operationshave to be processed on machinesa complete selection leads to sequences in which operations of a job have to be processedDoes each complete selection leads to a feasible schedule?
Shop models: General Introduction
8/13/2019 Uni Bonn (Germany) Sched10_5
19/102
Shop models: General Introduction
Calculate a Schedule for a Complete Selection S
calculated longest paths from 0 to all other vertices in G (S )Technical description:
length of a path i 1 , i 2 , . . . , i r = sum of the weights of thevertices i 1 , i 2 , . . . , i r calculate length l ij of the longest path from 0 to (i , j ) (usinge.g. Dijkstra)start operation ( i , j ) at time l ij p ij (i.e. C ij = l ij )the length of a longest path from 0 to (such paths are calledcritical paths ) is equal to the makespan of the schedule
resulting schedule is the semiactive schedule which respects allprecedence given by C and S
Shop models: General Introduction
8/13/2019 Uni Bonn (Germany) Sched10_5
20/102
Shop models: General Introduction
Reformulation Shop Problem
nd a complete selection for which the corresponding scheduleminimizes the given (regular) objective function
Flow Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
21/102
Flow Shop models
Makespan MinimizationLemma: For problem F || C max an optimal schedule exists with
the job sequence on the rst two machines is the samethe job sequence on the last two machines is the same
(Proof as Exercise)Consequence: For F 2|| C max and F 3|| C max an optimal solutionexists which is a permutation solutionFor Fm || C max , m 4, instances exist where no optimalsolution exists which is a permutation solution(Exercise)
Flow Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
22/102
Flow Shop models
Problem F 2|| C max
solution can be described by a sequence problem was solved by Johnson in 1954
Johnsons Algorithm:1 L = set of jobs with p 1 j < p 2 j ;2 R = set of remaining jobs;3 sort L by SPT w.r.t. the processing times on rst machine
(p 1 j )4 sort R by LPT w.r.t. the processing times on second machine
(p 2 j )5 sequence L before R (i.e. = ( L, R ) where L and R are
sorted)
Flow Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
23/102
Flow Shop models
Example solution problem F 2|| C max
n = 5; p = 4 3 3 1 88 3 4 4 7
Flow Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
24/102
Flow Shop models
Example solution problem F 2|| C max
n = 5; p = 4 3 3 1 88 3 4 4 7L
= {1,3
,4};
R = {2
,5}sorting leads to L = {4, 3, 1}; R = {5, 2}
Flow Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
25/102
ow S op ode s
Example solution problem F 2|| C max
n = 5; p = 4 3 3 1 88 3 4 4 7L = {1, 3, 4}; R = {2, 5}
sorting leads to L = {4, 3, 1}; R = {5, 2} = (4 , 3, 1, 5, 2)
M 2
3 1 525134
4M 1
5 10 15 20 25
2
Flow Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
26/102
p
Problem F 2|| C max
Lemma 1: If
min{p 1i , p 2 j } < min{p 2i , p 1 j }
then job i is sequenced before job j by Johnsons algorithm.
Lemma 2: If job j is scheduled immediately after job i and
min{p 1 j , p 2i } < min{p 2 j , p 1i }
then swapping job i and j does not increase C max .Theorem: Johnsons algorithm solves problem F 2|| C max optimal in O (n log(n)) time.
(Proofs on the board)
Flow Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
27/102
p
Problem F 3|| C max
F 3|| C max is NP-hard in the strong senseReduction using 3-PARTITIONProof on the board
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
28/102
p p
Algorithm Problem O 2|| C max 1 I = set of jobs with p 1 j p 2 j ; J = set of remaining jobs;2 IF p 1r = max{max j I p 1 j , max j J p 2 j } then
order on M 1: (I \ { r }, J , r ); order on M 2: (r , I \ { r }, J )r rst on M
2, than on M
1; all other jobs vice versa
M 2
M 1r
rI \ { r } JJI \ { r }
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
29/102
p p
Algorithm Problem O 2|| C max 1 I = set of jobs with p 1 j p 2 j ; J = set of remaining jobs;2 IF p 1r = max{max j I p 1 j , max j J p 2 j } then
order on M 1: (I \ { r }, J , r ); order on M 2: (r , I \ { r }, J )r rst on M 2, than on M 1; all other jobs vice versa
3 ELSE IF p 2r = max{max j I p 1 j , max j J p 2 j } thenorder on M 1: (r , J \ { r }, I ); order on M 2: (J \ { r }, I , r )r rst on M 1, than on M 2; all other jobs vice versa
M 2
M 1 J \ { r }J \ { r }
Ir
rI
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
30/102
Remarks Algorithm Problem O 2|| C max
complexity: O (n)algorithm solves problem O 2|| C max optimallyProof builds on fact that C max is either
n j =1 p 1 j orn j =1 p 2 j or
p 1r + p 2r
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
31/102
Remarks Algorithm Problem O 2|| C max
complexity: O (n)algorithm solves problem O 2|| C max optimallyProof builds on fact that C max is either
n j
=1 p 1 j or
n j =1 p 2 j or
p 1r + p 2r
Problem O 3|| C max Problem O 3|| C max is NP-hardProof as Exercise (Reduction using PARTITION)
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
32/102
Problem O |pmtn |C max
dene MLi := n j =1 p ij (load of machine i )dene JL j := mi =1 p ij (load of job j )
LB := max {maxmi =1 MLi , max
n j =1 JL j } is a lower bound onC max
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
33/102
Problem O |pmtn |C max
dene MLi := n j =1 p ij (load of machine i )dene JL j := mi =1 p ij (load of job j )LB := max {maxmi =1 MLi , max
n j =1 JL j } is a lower bound on
C max Theorem: For problem O |pmtn |C max a schedule withC max = LB exists.Proof of the theorem is constructive and leads to a polynomial
algorithm for problem O |pmtn |C max
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
34/102
Notations for Algorithm O |pmtn |C max job j (machine i ) is called tight if JL j = LB (MLi = LB ) job j (machine i ) has slack if JL j < LB (MLi < LB )a set D of operataions is called a decrementing set if it contain
for each tight job and machine exactly one operation and foreach job and machine with slack at most one operationTheorem: A decrementing set always exists and can becalculated in polynomial time(Proof based on maximal cardinality matchings; see e.g. P.Brucker: Scheduling Algorithms)
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
35/102
Algorithm O |pmtn |C max REPEAT
1 Calculate a decrementing set D ;2 Calculate maximum value with
min( i , j )D p ij LB MLi if machine i has slack and no operation in D
LB JL j if job j has slack and no operation in D ;3 schedule the operations in D for time units in parallel;4 Update values p , LB , JL, and ML
UNTIL all operations have been completely scheduled.
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
36/102
Correctness Algorithm O |pmtn |C max
after an iteration we have: LB new = LB old in each iteration a time slice of time units is scheduledthe algorithm terminates after at most nm + n + m iterationssince in each iteration either
an operation gets completely scheduled orone additional machine or job gets tight
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
37/102
Example Algorithm O |pmtn |C max p ML
2 4 3 2 11p 3 1 2 3 9
2 3 3 2 10JL 7 8 8 7 LB = 11
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
38/102
Example Algorithm O |pmtn |C max = 3 p ML
2 4 3 2 11p 3 1 2 3 9
2 3 3 2 10JL 7 8 8 7 LB = 11
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
39/102
Example Algorithm O |pmtn |C max = 3 p ML
2 4 3 2 11p 3 1 2 3 9
2 3 3 2 10JL 7 8 8 7 LB = 11
M 1M 2
M 3
31
2
3
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
40/102
Example Algorithm O |pmtn |C max = 3 p ML
2 4 3 2 11p 3 1 2 3 9
2 3 3 2 10
JL 7 8 8 7 LB = 11
M 1
M 2
M 3
312
3
p ML2 4 0 2 8
p 0 1 2 3 62 0 3 2 7
JL 4 5 5 7 LB = 8
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
41/102
Example Algorithm O |pmtn |C max = 3 p ML
2 4 3 2 11p 3 1 2 3 9
2 3 3 2 10
JL 7 8 8 7 LB = 11
M 1
M 2
M 3
312
3
= 1 p ML2 4 0 2 8
p 0 1 2 3 62 0 3 2 7
JL 4 5 5 7 LB = 8
M 1
M 2
M 3
312
3 42
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
42/102
Example Algorithm O |pmtn |C max = 1 p ML
2 4 0 2 8p 0 1 2 3 6
2 0 3 2 7
JL 4 5 5 7 LB = 8
M 1
M 2
M 3
312
3 42
= 3 p ML2 3 0 2 7
p 0 1 2 3 6
2 0 3 2 7JL 4 4 5 7 LB = 7
M 1
M 2
M 3
312
3 4 7243
2
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
43/102
Example Algorithm O |pmtn |C max = 3 p ML
2 3 0 2 7p 0 1 2 3 6
2 0 3 2 7
JL 4 4 5 7 LB = 7
M 1
M 2
M 3
312
3 4 7243
2
= 2 p ML2 0 0 2 4
p 0 1 2 0 3
2 0 0 2 4JL 4 1 2 4 LB = 4
M 1
M 2
M 3
312
3 4 7243
9431
2
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
44/102
Example Algorithm O |pmtn |C max = 2 p ML
2 0 0 2 4p 0 1 2 0 3
2 0 0 2 4JL
4 1 2 4 LB
= 4
M 1
M 2
M 3
312
3 4 7243
9431
2
= 1 p ML2 0 0 0 2
p 0 1 0 0 1
0 0 0 2 2JL 2 1 0 2 LB = 2
M 1
M 2
M 3
312
3 4 7243
9431
101
4
2
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
45/102
Example Algorithm O |pmtn |C max = 1 p ML
2 0 0 0 2p 0 1 0 0 1
0 0 0 2 2JL
2 1 0 2 LB
= 2
M 1
M 2
M 3
312
3 4 7243
9431
101
4
2
= 1 p ML1 0 0 0 1
p 0 1 0 0 1
0 0 0 1 1JL 1 1 0 1 LB = 1
M 1
M 2
M 3
312
3 4 7243
9431
101
4 42
1112
Open Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
46/102
Final Schedule Example Algorithm O |pmtn |C max p ML
2 4 3 2 11p 3 1 2 3 9
2 3 3 2 10JL 7 8 8 7 LB = 11
M 1
M 2
M 3
312
3 4 7243
9431
101
4 42
1112
6 iterationsC max = 11 = LB sequence of time slices may be changed arbitrary
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
47/102
Problem J 2|| C max
I 1: set of jobs only processed on M 1I 2: set of jobs only processed on M 2
I 12: set of jobs processed rst on M 1 and than on M 2I 21: set of jobs processed rst on M 2 and than on M 1 12: optimal ow shop sequence for jobs from I 12 21: optimal ow shop sequence for jobs from I 21
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
48/102
Algorithm Problem J 2|| C max 1 on M 1 rst schedule the jobs from I 12 in order 12, than the
jobs from I 1, and last the jobs from I 21 in order 212 on M 2 rst schedule the jobs from I 21 in order 21, than the
jobs from I 2, and last the jobs from I 12 in order 12
M 1
M 2I 12 I 1 I 21
I 2 I 12I 21
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
49/102
Algorithm Problem J 2|| C max 1 on M 1 rst schedule the jobs from I 12 in order 12, than the
jobs from I 1, and last the jobs from I 21 in order 212 on M 2 rst schedule the jobs from I 21 in order 21, than the
jobs from I 2, and last the jobs from I 12 in order 12
M 1
M 2I 12 I 1 I 21
I 2 I 12I 21
Theorem: The above algorithm solves problem J 2|| C max
optimallyin O (n log(n)) time.Proof: almost straightforward!
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
50/102
Problem J || C max
as a generalization of F || C max , this problem is NP-hardit is one of the most treated scheduling problems in literaturewe presented
a branch and bound approacha heuristic approach called the Shing Bottleneck Heuristic
for problem J || C max which both depend on the disjunctivegraph formulation
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
51/102
Base of Branch and BoundThe set of all active schedules contains an optimal scheduleSolution method: Generate all active schedules and take thebest
Improvement: Use the generation scheme in a branch andbound settingConsequence: We need a generation scheme to produce allactive schedules for a job shop
Approach: extend partial schedules
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
52/102
Generation of all active schedulesNotations: (assuming that already a partial schedule S isgiven)
: set of all operations which predecessors have already been
scheduled in S r ij :earliest possible starting time of operation (i , j ) w.r.t. S : subset of
Remark: r ij can be calculated via longest path calculations inthe disjunctive graph belonging to S
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
53/102
Generation of all active schedules (cont.)1
(Initial Conditions) := {rst operations of each job}; r ij := 0 for all (i , j ) ;2 (Machine selection)
Compute for current partial schedulet () := min (i , j ){r ij + p ij }; i := machine on whichminimum is achieved;
3 (Branching) := {(i , j )|r i j < t ()}FOR ALL (i , j ) DO
1 extend partial schedule by scheduling (i , j ) next on machinei ;
2 delete (i , j ) from ;3 add job-successor of (i , j ) to ;4 Return to Step 2
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
54/102
Generation of all active schedules - example
3
2 (1, 2) (3, 2)
(3, 1) (2, 1) (1, 1)
(2, 3) (1, 3) (3, 3)
p 31 = 4 , p 21 = 2 , p 11 = 1
p 12 = 3 , p 32 = 3
p 23 = 2 , p 13 = 4 , p 33 = 1
Jobs: 1
Partial Schedule:
M 3
M 2
M 1
4 6
Job Shop modelsGeneration of all active schedules example
8/13/2019 Uni Bonn (Germany) Sched10_5
55/102
Generation of all active schedules - example
32 (1, 2) (3, 2)
(3, 1) (2, 1) (1, 1)
(2, 3) (1, 3) (3, 3)
p 31 = 4 , p 21 = 2 , p 11 = 1
p 12 = 3 , p 32 = 3p 23 = 2 , p 13 = 4 , p 33 = 1
Jobs: 1
Partial Schedule:
M 3
M 2
M 1
4 6
= {(1, 1), (3, 2), (1, 3)};r 11 = 6 , r 32 = 4 , r 13 = 3;t () = min {6 + 1 , 4 + 3 , 3 + 4} = 7;i = M 1; = {(1, 1), (1, 3)}
Job Shop modelsGeneration of all active schedules - example (cont )
8/13/2019 Uni Bonn (Germany) Sched10_5
56/102
Generation of all active schedules example (cont.)Partial Schedule:
M 3
M 2
M 1
4 6= {(1, 1), (3, 2), (1, 3)};r 11 = 6 , r 32 = 4 , r 13 = 3;t () = min {6 + 1 , 4 + 3 , 3 + 4} = 7;i = M 1; = {(1, 1), (1, 3)}Extended partial schedules:
M 1
M 2
M 36 6
M 1
M 2
M 3
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
57/102
Remarks on the generation:the given algorithm is the base of the branchingnodes of the branching tree correspond to partial schedulesStep 3 branches from the node corresponding to the current
partial schedulethe number of branches is given by the cardinality of a branch corresponds to the choice of an operation (i , j ) tobe schedules next on machine i
a branch xes new disjunctions
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
58/102
Disjunctions xed by a branching
Node v
Node v with = {(i , j ) , (i , l )}
Node v
selection (i , j )Add disjunctions (i , j ) (i k ) for all unscheduled operations (i , k )
Consequence: Each node in the branch and bound tree ischaracterized by a set S of xed disjunctions
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
59/102
Lower bounds for nodes of the branch and bound tree
Consider node V with xed disjunctions S :Simple lower bound:
calculate critical path in G (S ) Lower bound LB (V )
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
60/102
Lower bounds for nodes of the branch and bound treeConsider node V with xed disjunctions S :Simple lower bound:
calculate critical path in G (S )
Lower bound LB (V )Better lower bound:
consider machine i allow parallel processing on all machines = i solve problem on machine i
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
61/102
1-machine problem resulting for better LB1 calculate earliest starting times r ij of all operations (i , j ) on
machine i (longest paths from source in G (S ))2 calculate minimum amount q ij of time between end of (i , j )
and end of schedule (longest path to sink in G
(S
))3 solve single machine problem on machine i :respect release datesno preemptionminimize maximum value of C ij + q ij
Result: head-body-tail problem (see Lecture 3)
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
62/102
Better lower bound
solve 1-machine problem for all machines
this results in values f 1 , . . . , f mLB new (V ) = max mi =1 f i
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
63/102
Better lower bound
solve 1-machine problem for all machinesthis results in values f 1 , . . . , f mLB new (V ) = max mi =1 f i
Remarks:1-machine problem is NP-hardcomputational experiments have shown that it pays of to solvethese m NP-hard problems per node of the search tree20 20 job-shop instances are already hard to solve by branchand bound
Job Shop models
Better lower bound - example
8/13/2019 Uni Bonn (Germany) Sched10_5
64/102
Better lower bound - examplePartial Schedule:
M 1
M 2
M 33 6
Corresponding graph G (S ):3,1 2,1 1,1
1,2 3,20 *
2,3 1,3 3,3
Conjunctive arcs xed disj.
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
65/102
Graph G (S ) with processing times:
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
3
3
2 4 1
0 *
LB (V )= l (0, (1, 2), (1, 3), (3, 3) ,)=8
Job Shop models
Graph G(S ) with processing times:
8/13/2019 Uni Bonn (Germany) Sched10_5
66/102
Graph G (S ) with processing times:
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
3
3
2 4 1
0 *
LB (V )= l (0, (1, 2), (1, 3), (3, 3) ,)=8
Data for jobs on Machine 1:green blue redr 12 = 0 r 13 = 3 r 11 = 6q 12 = 5 q 13 = 1 q 11 = 0
Opt. solution: Opt = 8, LB new (V ) = 8M 1
3 7 8
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
67/102
Change p 11 from 1 to 2!
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 2
3
3
2 4 1
0 *
LB (V ) = l (0, (1, 2), (1, 3), (3, 3), ) = l (0, (3, 1), (2, 1), (1, 1),) = 8
Job Shop models
Change p11 from 1 to 2!
8/13/2019 Uni Bonn (Germany) Sched10_5
68/102
Change p 11 from 1 to 2!
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 2
3
3
2 4 1
0 *
LB (V ) = l (0, (1, 2), (1, 3), (3, 3), ) = l (0, (3, 1), (2, 1), (1, 1),) = 8
Data for jobs on Machine 1:green blue redr 12 = 0 r 13 = 3 r 11 = 6q 12 = 5 q 13 = 1 q 11 = 0
Opt. solution: OPT = 9, LB new (V ) = 9
3 7 9
M 1
Job Shop models
8/13/2019 Uni Bonn (Germany) Sched10_5
69/102
The Shifting Bottleneck Heuristic
successful heuristic to solve makespan minimization for jobshopiterative heuristicdetermines in each iteration the schedule for one additional
machineuses reoptimization to change already scheduled machinescan be adapted to more general job shop problems
other objective functionsworkcenters instead of machinesset-up times on machines...
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
70/102
Basic Idea
Notation: M set of all machinesGiven: xed schedules for a subset M 0 M of machines (i.e.a selection of disjunctive arcs for cliques corresponding tothese machines)
Actions in one iteration:select a machine k which has not been xed (i.e. a machinefrom M \ M 0)determine a schedule (selection) for machine k on the base of the xed schedules for the machines in M 0
reschedule the machines from M 0
based on the other xedschedules
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
71/102
Selection of a machine
Idea: Chose unscheduled machine which causes the mostproblems (bottleneck machine)Realization:
Calculate for each operation on an unscheduled machine theearliest possible starting time and the minimal delay betweenthe end of the operation and the end of the complete schedulebased on the xed schedules on the machines in M 0 and the job orderscalculate for each unscheduled machine a schedule respectingthese earliest release times and delayschose a machine with maximal completion time and x theschedule on this machine
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
72/102
Technical realization
Dene graph G = ( N , A ):N same node set as for the disjunctive graph
A contains all conjunctive arcs and the disjunctive arcscorresponding to the selections on the machines in M 0
C max (M 0) is the length of a critical path in G
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
73/102
Technical realization
Dene graph G = ( N , A ):N same node set as for the disjunctive graphA contains all conjunctive arcs and the disjunctive arcscorresponding to the selections on the machines in M 0
C max (M 0) is the length of a critical path in G Comments:
with respect to G operations on machines from M \ M 0 maybe processed in parallel
C max (M 0) is the makespan of a corresponding schedule
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
74/102
Technical realization (cont.)for an operation (i , j ); i M \ M 0 let
r ij be the length of the longest path from 0 to ( i , j ) (withoutp ij ) in G q ij be the length of the longest path from ( i , j ) to (withoutp ij ) in G
Comments:r ij is the release time of (i , j ) w.r.t. G q ij is the tail (minimal time till end) of (i , j ) w.r.t. G
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
75/102
Technical realization (cont.)
For each machine from M \ M 0 solve the nonpreemptiveone-machine head-body-tail problem 1|r j , d j < 0|Lmax Result: values f (i ) for all i M \ M 0
Action:Chose machine k as the machine with the largest f (i ) valueschedule machine k according to the optimal schedule of theone-machine problemadd k to M 0 and the corresponding disjunctive arcs to G
C max (M 0
k ) f (k )
Shifting Bottleneck Heuristic for Job Shop
T h i l li i E l
8/13/2019 Uni Bonn (Germany) Sched10_5
76/102
Technical realization - Example
Given: M 0
= {M 3} and on M 3 sequence(3, 2) (3, 1) (3, 3)Graph G :
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
3 3
2 4 1
0 *
Conjunctive arcs Selection M
3
C max (M 0) = 13
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
77/102
Technical realization - Example (cont.)Machine M 1:
(i , j ) (1, 1) (1, 2) (1, 3)r ij 12 0 2q ij 0 10 1p ij 1 3 4
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
78/102
Technical realization - Example (cont.)Machine M 1:
(i , j ) (1, 1) (1, 2) (1, 3)r ij 12 0 2q ij 0 10 1p ij 1 3 4
5 10 13M 1
10
1
1,2 1,3 1,1
f (M 1) = 13
Shifting Bottleneck Heuristic for Job Shop
Technical realization - Example (cont.)
8/13/2019 Uni Bonn (Germany) Sched10_5
79/102
Technical realization Example (cont.)
Machine M 1:(i , j ) (1, 1) (1, 2) (1, 3)r ij 12 0 2q ij 0 10 1
p ij 1 3 4
5 10 13M 1
101
1,2 1,3 1,1
f (M 1) = 13
Machine M 2:
(i , j ) (2, 1) (2, 3)r ij 10 0
q ij 1 5p ij 2 2
Shifting Bottleneck Heuristic for Job Shop
T h i l li i E l ( )
8/13/2019 Uni Bonn (Germany) Sched10_5
80/102
Technical realization - Example (cont.)
Machine M 1:
(i , j ) (1, 1) (1, 2) (1, 3)r ij 12 0 2q ij 0 10 1p ij 1 3 4
5 10 13M 1
101
1,2 1,3 1,1
f (M 1) = 13Machine M 2:
(i , j ) (2, 1) (2, 3)r ij 10 0q ij 1 5p ij 2 2
M 25 10 13
5 1
2,12,3
f (M 2) = 13
Shifting Bottleneck Heuristic for Job Shop
T h i l li i E l ( )
8/13/2019 Uni Bonn (Germany) Sched10_5
81/102
Technical realization - Example (cont.)
Choose machine M 1 as the machine to x the schedule:add (1 , 2) (1 , 3) (1 , 1) to G M 0 = {M 1 , M 3}
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
3 3
2 4 1
0 *
Conjunctive arcs Selection M 1 , M 3
C max (M 0) = 13
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
82/102
Reschedule Machines
try to reduce the makespan of the schedule for the machinesin M 0
Realization:consider the machines from M 0 one by oneremove the schedule of the chosen machine and calculate anew schedule based on the earliest starting times and delaysresulting from the other machines of M 0 and the job orders
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
83/102
Technical realization reschedulingFor a chosen machine l M 0 \ { k } do:
remove the arcs corresponding to the selection on machine l from G
call new graph G calculate values r ij , q ij in graph G reschedule machine l according to the optimal schedule of thesingle machine head-body-tail problem
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
84/102
Technical realization rescheduling - Example
M 0 \ { k } = {M 3}, thus l = M 3removing arcs corresponding to M 3 leads to graph G :
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
3 3
2 4 1
0 *
Conjunctive arcs Selection M 1
C max (G ) = 8;
Shifting Bottleneck Heuristic for Job ShopTechnical realization rescheduling - Example
M 0 \ { k } = {M 3}, thus l = M 3
8/13/2019 Uni Bonn (Germany) Sched10_5
85/102
removing arcs corresponding to M 3 leads to graph G :
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
33
2 4 1
0 *
Conjunctive arcs Selection M 1
C max (G ) = 8;(i , j ) (3, 1) (3, 2) (3, 3)r ij 0 3 7q ij 3 0 0p ij 4 3 1
Shifting Bottleneck Heuristic for Job ShopTechnical realization rescheduling - Example
M 0 \ { k} = {M3} thus l = M3
8/13/2019 Uni Bonn (Germany) Sched10_5
86/102
M \ { k } = {M 3}, thus l = M 3
removing arcs corresponding to M 3 leads to graph G :3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
33
2 4 1
0 *
Conjunctive arcs Selection M 1
C max (G ) = 8;(i , j ) (3, 1) (3, 2) (3, 3)r ij 0 3 7q ij 3 0 0p ij 4 3 1
33
M 3
5 8
3,1 3,2 3,3
f (M 3) = 8
Shifting Bottleneck Heuristic for Job Shop
Technical realization rescheduling Example (cont )
8/13/2019 Uni Bonn (Germany) Sched10_5
87/102
Technical realization rescheduling - Example (cont.)
add (3 , 1) (3, 2) (3, 3) to G New graph:
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
3
3
2 4 1
0 *
Conjunctive arcs Selection M 1 , M 3
C new max (M 0) = 8
Shifting Bottleneck Heuristic for Job Shop
Heuristic: summary
8/13/2019 Uni Bonn (Germany) Sched10_5
88/102
Heuristic: summary1
Initialization:1 M 0 := ;2 G := graph with all conjunctive arcs;3 C max (M 0) := length longest path in G :
2 Analyze unscheduled machines:
FOR ALL i M \ M 0 DO
FOR ALL operation (i , j ) DO1 r ij := length longest path from 0 to ( i , j ) in G ;
2 q ij := length longest path from ( i , j ) to in G ;solve single machine head body tail problem f (i )
Shifting Bottleneck Heuristic for Job Shop
8/13/2019 Uni Bonn (Germany) Sched10_5
89/102
Heuristic: summary (cont.)3 Bottleneck selection:
1 determine k such that f (k ) = max i M \ M 0 f (i );2 schedule machine k according to the optimal solution in Step
2;3 add corresponding disjunctive arcs to G ;4 M 0 := M 0 {k };
Shifting Bottleneck Heuristic for Job Shop
Heuristic: summary (cont.)
8/13/2019 Uni Bonn (Germany) Sched10_5
90/102
4 Resequencing of machines:
FOR ALL i M 0 \ { k } DO
1 delete disjunctive arcs corresponding to machine k from G ;2 FOR ALL operation (i , j ) DO
1 r ij := length longest path from 0 to ( i , j ) in G ;2 q ij := length longest path from ( i , j ) to in G ;
3 solve single machine head body tail problem f (i )4
insert corresponding disjunctive arcs to G
;5 Stopping condition
IF M 0 = M THEN Stop ELSE go to Step 2;
Shifting Bottleneck Heuristic for Job Shop
SBH - Example (cont.)
8/13/2019 Uni Bonn (Germany) Sched10_5
91/102
p ( )M 0 = {M 1 , M 3}; thus M 2 is bottleneckgraph G :
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
33
2 4 1
0 *
Conjunctive arcs Selection M 1 , M 3
C max (G ) = 8;
Shifting Bottleneck Heuristic for Job ShopSBH - Example (cont.)
M 0 = {M 1 , M 3}; thus M 2 is bottleneck
8/13/2019 Uni Bonn (Germany) Sched10_5
92/102
graph G :
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
33
2 4 1
0 *
Conjunctive arcs Selection M 1 , M 3
C max (G ) = 8;(i , j ) (2, 1) (2, 3)r ij 4 0q ij 1 5p ij 2 2
Shifting Bottleneck Heuristic for Job ShopSBH - Example (cont.)
M 0 = {M 1 , M 3}; thus M 2 is bottleneck
8/13/2019 Uni Bonn (Germany) Sched10_5
93/102
graph G :
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
33
2 4 1
0 *
Conjunctive arcs Selection M 1 , M 3
C max (G ) = 8;
(i , j
) (2,1) (2
,3)r ij 4 0
q ij 1 5p ij 2 2
2,3 2,1
15
M 2
5 8
f (M 2) = 7
Shifting Bottleneck Heuristic for Job Shop
SBH Example (cont )
8/13/2019 Uni Bonn (Germany) Sched10_5
94/102
SBH - Example (cont.)
Situation after Step 3: M 0 = {M 1 , M 2 , M 3}, C max (M 0) = 8Graph G :
3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
33
2 4 1
0 *
Shifting Bottleneck Heuristic for Job Shop
SBH - Example (cont.)
Situation after Step 3: M0 = {M M M } C (M 0) = 8
8/13/2019 Uni Bonn (Germany) Sched10_5
95/102
Situation after Step 3: M 0 = {M 1 , M 2 , M 3}, C max (M 0) = 8
Graph G :3,1 2,1 1,1
1,2 3,2
2,3 1,3 3,3
4 2 1
33
2 4 1
0 *
Corresponding Schedule:
5 1080
M 1
M 2
M 3
Shifting Bottleneck Heuristic for Job Shop
An Important Subproblem
8/13/2019 Uni Bonn (Germany) Sched10_5
96/102
An Important Subproblem
within the SBH the one-machine head-body-tail problemoccurs frequently:this problem was also used within branch and bound tocalculate lower bounds
the problem is NP-hard (see Lecture 3)there are efficient branch and bound methods for smallerinstances (see also Lecture 3)the actual one-machine problem is a bit more complicated
than stated in Lecture 3 (see following example)
Shifting Bottleneck Heuristic for Job ShopExample Delayed Precedences
Jobs: (1, 1) (2, 1)
(2 2) (1 2)
8/13/2019 Uni Bonn (Germany) Sched10_5
97/102
(2, 2) (1, 2)
(3, 3)(3, 4)
Shifting Bottleneck Heuristic for Job Shop
Example Delayed Precedences (cont.)
8/13/2019 Uni Bonn (Germany) Sched10_5
98/102
after 2 iterations SBH we get:M 0 = {M 3 , M 1}; (3, 4) (3, 3) and (1 , 2) (1, 1)Resulting graph G : (C max (M 0) = 8)
1,1 2,1
2,2 1,2
3,3
3,4
1 1
1 1
4
4
0 *
Shifting Bottleneck Heuristic for Job Shop
Example Delayed Precedences (cont )
8/13/2019 Uni Bonn (Germany) Sched10_5
99/102
Example Delayed Precedences (cont.)
3. iteration: only M 2 unscheduled(i , j ) p ij r ij q ij (2, 1) 1 3 0(2, 2) 1 0 3
Possible schedules for M 2:
50 8M 2
50 8M 2
Shifting Bottleneck Heuristic for Job Shop
Example Delayed Precedences (cont.)
8/13/2019 Uni Bonn (Germany) Sched10_5
100/102
Both schedules are feasible and might be added to currentsolutionBut: second schedule leads to
1,1 2,1
2,2 1,2
3,3
3,4
1 1
1 1
4
4
0 *
which contains a cycle
Shifting Bottleneck Heuristic for Job Shop
Delayed Precedences
8/13/2019 Uni Bonn (Germany) Sched10_5
101/102
The example shows:not all solutions of the one-machine problem t to the givenselections for machines from M 0the given selections for machines from M 0 may induceprecedences for machines from M \ M 0
Example:scheduling operation (1 , 2) before (1, 1) on M 1 induces adelayed precedence constraint between (2 , 2) and (2 , 1) of length 3 operation (2 , 1) has to start at least 3 time units after (2 , 2)
this time is needed to process operations (2,
2),
(1,
2), and(1 , 1)
Shifting Bottleneck Heuristic for Job Shop
Rescheduling Machines
8/13/2019 Uni Bonn (Germany) Sched10_5
102/102
Rescheduling Machines
after adding a new machine to M 0, it may be worth to putmore effort in rescheduling the machines:
do the rescheduling in some specic order (e.g. based on theirhead-body-tail values)repeat the rescheduling process until no improvement is foundafter rescheduling one machine, make a choice which machineto reschedule next (allowing that certain machines arerescheduled more often)...
practical test have shown that these extra effort often pays off
Recommended