Uni Bonn (Germany) Sched10_5

download Uni Bonn (Germany) Sched10_5

of 102

Transcript of Uni Bonn (Germany) Sched10_5

  • 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