Job Shop Scheduling with Setup Times,
Deadlines and Precedence Constraints


                Universite Paris-Dauphine


                   Alkis Vazacopoulos

      **Joint work with Egon Balas and Neil Simonetti
The Problem
•  Set of Jobs
•  Set of Machines
•  Each machine can handle at most one job at a time
•  Each Job is a set of operations
•  Each Operation requires
   uninterrupted processing
       on a given machine
       for a fixed amount of time di
* There are sequence dependent setup times cij
* Objective is to minimize makespan
Job Shop Scheduling
                 3   4
         2                     JOB 1

Oper
ation                          JOB 2
     1   5       6   7



             8                   JOB 3
                     10
                 9
Job Shop Scheduling Problem
                4         Disjunction
            3
    2
                                d2+c2,10


                             d10+c10,2
1    5      6   7          11



        8       10
            9

                     Machines
Job Shop Scheduling Problem
                       d5 + c53
            3   4
    2



1   5       6   7      11



        8       10
            9
Job Shop Scheduling
            3   4         Critical
    2
                          Path



1   5       6   7          11



        8       10   Acyclic
            9
                     Longest Path
Shifting Bottleneck Procedure
• Adams Balas and Zawack 1988
• Balas, Lenstra, Vazacopoulos (using delayed
  precedence Constraints)
• Balas, Vazacopoulos (Guided Local Search)
• Balas, Lancia, Serafini, Vazacopoulos (Job shop
  Scheduling with Deadlines, Release times and
  Downtimes)
• Balas, Simonetti, Vazacopoulos (Jobshop with
  Setup Times)
Shifting Bottleneck Procedure
• Let M0 be the set of machines already
  sequenced
• Step 1. Identify a bottleneck machine m
  among the machines k in M M0. Set
  M0= M0U{m} and go to 2

• Step 2. Reoptimize the current partial
  schedule. If M0= M, stop; otherwise goto
  step 1.
Shifting Bottleneck
                        Find Bottleneck
                    4   Machine
             3
    2



1   5        6      7            11



        8          10
             9
One Machine Problem

    2



1         6    7          11



               10
Shifting Bottleneck
                              Bottleneck

             3      4
    2



1   5        6      7         11



        8          10
             9
Shifting Bottleneck
             3      4         Bottleneck
    2



1   5        6      7            11



        8          10
             9
Shifting Bottleneck
                          Bottleneck
             3      4
    2



1   5        6      7         11



        8          10
             9
One-Machine Scheduling as a
    Traveling Salesman Problem
• Jobs to be scheduled are the nodes of the
  Traveling Salesman Problem.
• The cost cij of traveling from node i to node j is
  processing time of job i plus the setup time
  required for the transition from job i to job j.
• A dummy node is added (with costs of zero)
  which is used as the home city, where the
  traveling salesman tour will begin and end.
Dynamic Program for the Traveling
    Salesman Problem (TSP)
• Designate a home city (1).
• Subproblem:
      P(i, A) = length of the shortest path from
  the home city to city i, using the cities in set A.
• Relationship:
      P(1,{1}) = 0.
      P(i, A) = min jA{i} (P(j, A{i}) + cji)
• Exponential number of subproblems.
Strong Precedence Constraint
• Given an initial ordering of cities
  (1, 2, 3, …, n) and a constant k,
 if city i comes k or more places before
 city j in the initial ordering, then city i
 comes before city j in the final tour.
• This limits the number of subproblems to
                        k
                    O (2 n)
TSP with Time Windows
• Strong precedence constraints of this type
  appear in time window problems,
  including those generated from single-
  machine scheduling problems.
• Narrower time windows require smaller
  values of k.
Heuristic Application
• If the required value of k is too large to be
  practical (because of time or space), a
  smaller k can be used as a heuristic.
• The dynamic program will search an
  exponentially large neighborhood of
  solutions.
Constructing Time Windows
• Given release times, rj, due dates, qj, and
  processing times, pj, for each job j, and a target
  makespan M, the time window for job j is:
                 [rj, M – pj – qj]
• The dynamic program can be used as an oracle
  to answer the decision problem:
          Is there a feasible one-machine
            schedule with makespan M?
Finding the Best Makespan
• In theory, a binary search will find an
  optimal makespan M in log(M) steps.
• In practice, it takes fewer than log(M)
  steps to find M by stepping down the
  target makespan at each step.
• A smaller k can be used to solve the
  easier problems during the first few steps.
Delayed Precedence Constraints

• A delayed precedence constraint is a
  constraint of the form: Job i must start at
  least d time units after job j is completed.
• The states of the dynamic program cannot
  distinguish when previous cities have
  been visited, so this cannot be strictly
  enforced by the algorithm.
Another Heuristic
• Increasing cij to d will enforce the
  delayed precedence constraint when jobs
  i and j are consecutive, but the solution
  may not be optimal if i and j are not
  consecutive.
• In practice, the quality of solutions is still
  very good.
Test Problems
• Classical job-shop scheduling problems from
  Ovacik and Uzsoy. (960 problems)
• Semiconductor scheduling problems from
  Ovacik and Uzsoy. (1920 problems)
• Reentrant Flowshop scheduling problems from
  Ovacik and Uzsoy. (1800 problems)
• Job-shop scheduling problems from Brucker and
  Thiele, created by adding setup times to
  problems from Adams, Balas, and Zawack. (17
  problems)
Adding Guided Local Search
• After the reoptimization phase we apply
  Guided Local Search procedure (Balas
  and Vazacopoulos
• (modified for our problem)
Compare with and without Local
             search
• Js305 , k =15

•         Avg. of Maximum Lateness (avg. CPU time)
• Jobs - Mach. - With local search - Without Local seacrh
• 10      5         360.20 (1.86)       421.95 (0.31)
• 20      5          91.0 (61.43)       150.75 (14.39)
• 20      15        1531.45 (114.30) 1895.85 (27.26)
• 20      20        2070.50 (109.88) 2702.55 (26.63)
Classical Jobshop Problems
Semiconductor data sets
• Problems from Ovacik and Uzsoy
• Description
• Semiconductor testing facility
• A number of testing workcenter and a
  brand workcenter
• (post-burn portion of a large testing facility)
• Processing and setup times were derived
  from data in the actual facility
Semiconductor Problems
Reentrant Flowshop Scheduling
              Data Sets
• Problems from Ovacik and Uzsoy
• Description
• Semiconductor testing facility
• A number of testing workcenter and a brand
  workcenter
• (post-burn portion of a large testing facility)
• Processing and setup times were derived from
  data in the actual facility
• Reentrant (jobs reenter the facility)
Reentrant Flowshop Results
Results
• Type of problems   Better solution Found
• Classical Problems         958 / 960

• Semiconductor Problems   1311 / 1920

• Reentrant Flowshop Prob. 1785 / 1800
Brucker and Thiele Problems
• We compare with
  - Brucker and Thiele’s method: Branch
  and bound method
  - Focacci, Laborie Nuijten: A method
  based on Constrained programming
  - Buscaylet and Artigues: A tabu seacrh
  method
Brucker and Thiele Problems
• Problem    Size Best Known SB-GLS
  t2-ps01   10x5 798(opt) 815(1.9)
  t2-ps03   10x5 749(opt) 771(1.8)
  t2-ps05   10x5 691(opt) 693(1.2)
  t2-ps12   20x5    1448    1369(41)
  t2-ps13   20x5    1575    1439(68)
 t2-pss12   20x5    1359    1305(49)
 t2-pss13   20x5    1463    1409(55)
• 360Mhz processor.
Randomized Local Search
• Apply SB-RGLSh: Delete a number of
  machines (randomly) and reintroduce
  them using the shifting bottleneck
  procedure

• Apply this procedure after SB-GLS for h
  times (h = 10 In our case)
Randomized Shifting Bottleneck
• Original SBP:
• Step 1. Identify a bottleneck machine m
  among the machines k in M M0. Set
  M0= M0U{m} and go to 2

Randomized SBP
Select randomly machine k in M M0. Set
 M0= M0U{m} and go to 2
Brucker and Thiele Problems
• Randomized Local Search finds better
  solutions but is computationally expensive.
    Problem    Size Best Known    SB-GLS     SB-RGLS
     t2-ps01   10x5  798(opt)     815(1.9)    798(358)
     t2-ps03   10x5  749(opt)     771(1.8)    749(834)
     t2-ps05   10x5  691(opt)     693(1.2)    693(248)
     t2-ps12   20x5   1448       1369(41)    1305(2173)
     t2-ps13   20x5   1575       1439(68)    1439(2468)
    t2-pss12   20x5   1359       1305(49)    1290(2062)
    t2-pss13   20x5   1463       1409(55)    1398(1875)
•    360Mhz processor.
Brucker and Thiele Problems
Conclusions

• A new Shifting Bottleneck Procedure for
  the Jobshop Scheduling problem with
  Setup

• Tested in several large sets of problems
  and has provided new upper bounds for
  several problems

Job Shop Scheduling with Setup Times Release times and Deadlines

  • 1.
    Job Shop Schedulingwith Setup Times, Deadlines and Precedence Constraints Universite Paris-Dauphine Alkis Vazacopoulos **Joint work with Egon Balas and Neil Simonetti
  • 2.
    The Problem • Set of Jobs • Set of Machines • Each machine can handle at most one job at a time • Each Job is a set of operations • Each Operation requires uninterrupted processing on a given machine for a fixed amount of time di * There are sequence dependent setup times cij * Objective is to minimize makespan
  • 3.
    Job Shop Scheduling 3 4 2 JOB 1 Oper ation JOB 2 1 5 6 7 8 JOB 3 10 9
  • 4.
    Job Shop SchedulingProblem 4 Disjunction 3 2 d2+c2,10 d10+c10,2 1 5 6 7 11 8 10 9 Machines
  • 5.
    Job Shop SchedulingProblem d5 + c53 3 4 2 1 5 6 7 11 8 10 9
  • 6.
    Job Shop Scheduling 3 4 Critical 2 Path 1 5 6 7 11 8 10 Acyclic 9 Longest Path
  • 7.
    Shifting Bottleneck Procedure •Adams Balas and Zawack 1988 • Balas, Lenstra, Vazacopoulos (using delayed precedence Constraints) • Balas, Vazacopoulos (Guided Local Search) • Balas, Lancia, Serafini, Vazacopoulos (Job shop Scheduling with Deadlines, Release times and Downtimes) • Balas, Simonetti, Vazacopoulos (Jobshop with Setup Times)
  • 8.
    Shifting Bottleneck Procedure •Let M0 be the set of machines already sequenced • Step 1. Identify a bottleneck machine m among the machines k in M M0. Set M0= M0U{m} and go to 2 • Step 2. Reoptimize the current partial schedule. If M0= M, stop; otherwise goto step 1.
  • 9.
    Shifting Bottleneck Find Bottleneck 4 Machine 3 2 1 5 6 7 11 8 10 9
  • 10.
    One Machine Problem 2 1 6 7 11 10
  • 11.
    Shifting Bottleneck Bottleneck 3 4 2 1 5 6 7 11 8 10 9
  • 12.
    Shifting Bottleneck 3 4 Bottleneck 2 1 5 6 7 11 8 10 9
  • 13.
    Shifting Bottleneck Bottleneck 3 4 2 1 5 6 7 11 8 10 9
  • 14.
    One-Machine Scheduling asa Traveling Salesman Problem • Jobs to be scheduled are the nodes of the Traveling Salesman Problem. • The cost cij of traveling from node i to node j is processing time of job i plus the setup time required for the transition from job i to job j. • A dummy node is added (with costs of zero) which is used as the home city, where the traveling salesman tour will begin and end.
  • 15.
    Dynamic Program forthe Traveling Salesman Problem (TSP) • Designate a home city (1). • Subproblem: P(i, A) = length of the shortest path from the home city to city i, using the cities in set A. • Relationship: P(1,{1}) = 0. P(i, A) = min jA{i} (P(j, A{i}) + cji) • Exponential number of subproblems.
  • 16.
    Strong Precedence Constraint •Given an initial ordering of cities (1, 2, 3, …, n) and a constant k, if city i comes k or more places before city j in the initial ordering, then city i comes before city j in the final tour. • This limits the number of subproblems to k O (2 n)
  • 17.
    TSP with TimeWindows • Strong precedence constraints of this type appear in time window problems, including those generated from single- machine scheduling problems. • Narrower time windows require smaller values of k.
  • 18.
    Heuristic Application • Ifthe required value of k is too large to be practical (because of time or space), a smaller k can be used as a heuristic. • The dynamic program will search an exponentially large neighborhood of solutions.
  • 19.
    Constructing Time Windows •Given release times, rj, due dates, qj, and processing times, pj, for each job j, and a target makespan M, the time window for job j is: [rj, M – pj – qj] • The dynamic program can be used as an oracle to answer the decision problem: Is there a feasible one-machine schedule with makespan M?
  • 20.
    Finding the BestMakespan • In theory, a binary search will find an optimal makespan M in log(M) steps. • In practice, it takes fewer than log(M) steps to find M by stepping down the target makespan at each step. • A smaller k can be used to solve the easier problems during the first few steps.
  • 21.
    Delayed Precedence Constraints •A delayed precedence constraint is a constraint of the form: Job i must start at least d time units after job j is completed. • The states of the dynamic program cannot distinguish when previous cities have been visited, so this cannot be strictly enforced by the algorithm.
  • 22.
    Another Heuristic • Increasingcij to d will enforce the delayed precedence constraint when jobs i and j are consecutive, but the solution may not be optimal if i and j are not consecutive. • In practice, the quality of solutions is still very good.
  • 23.
    Test Problems • Classicaljob-shop scheduling problems from Ovacik and Uzsoy. (960 problems) • Semiconductor scheduling problems from Ovacik and Uzsoy. (1920 problems) • Reentrant Flowshop scheduling problems from Ovacik and Uzsoy. (1800 problems) • Job-shop scheduling problems from Brucker and Thiele, created by adding setup times to problems from Adams, Balas, and Zawack. (17 problems)
  • 24.
    Adding Guided LocalSearch • After the reoptimization phase we apply Guided Local Search procedure (Balas and Vazacopoulos • (modified for our problem)
  • 25.
    Compare with andwithout Local search • Js305 , k =15 • Avg. of Maximum Lateness (avg. CPU time) • Jobs - Mach. - With local search - Without Local seacrh • 10 5 360.20 (1.86) 421.95 (0.31) • 20 5 91.0 (61.43) 150.75 (14.39) • 20 15 1531.45 (114.30) 1895.85 (27.26) • 20 20 2070.50 (109.88) 2702.55 (26.63)
  • 26.
  • 27.
    Semiconductor data sets •Problems from Ovacik and Uzsoy • Description • Semiconductor testing facility • A number of testing workcenter and a brand workcenter • (post-burn portion of a large testing facility) • Processing and setup times were derived from data in the actual facility
  • 28.
  • 29.
    Reentrant Flowshop Scheduling Data Sets • Problems from Ovacik and Uzsoy • Description • Semiconductor testing facility • A number of testing workcenter and a brand workcenter • (post-burn portion of a large testing facility) • Processing and setup times were derived from data in the actual facility • Reentrant (jobs reenter the facility)
  • 30.
  • 31.
    Results • Type ofproblems Better solution Found • Classical Problems 958 / 960 • Semiconductor Problems 1311 / 1920 • Reentrant Flowshop Prob. 1785 / 1800
  • 32.
    Brucker and ThieleProblems • We compare with - Brucker and Thiele’s method: Branch and bound method - Focacci, Laborie Nuijten: A method based on Constrained programming - Buscaylet and Artigues: A tabu seacrh method
  • 33.
    Brucker and ThieleProblems • Problem Size Best Known SB-GLS t2-ps01 10x5 798(opt) 815(1.9) t2-ps03 10x5 749(opt) 771(1.8) t2-ps05 10x5 691(opt) 693(1.2) t2-ps12 20x5 1448 1369(41) t2-ps13 20x5 1575 1439(68) t2-pss12 20x5 1359 1305(49) t2-pss13 20x5 1463 1409(55) • 360Mhz processor.
  • 34.
    Randomized Local Search •Apply SB-RGLSh: Delete a number of machines (randomly) and reintroduce them using the shifting bottleneck procedure • Apply this procedure after SB-GLS for h times (h = 10 In our case)
  • 35.
    Randomized Shifting Bottleneck •Original SBP: • Step 1. Identify a bottleneck machine m among the machines k in M M0. Set M0= M0U{m} and go to 2 Randomized SBP Select randomly machine k in M M0. Set M0= M0U{m} and go to 2
  • 36.
    Brucker and ThieleProblems • Randomized Local Search finds better solutions but is computationally expensive. Problem Size Best Known SB-GLS SB-RGLS t2-ps01 10x5 798(opt) 815(1.9) 798(358) t2-ps03 10x5 749(opt) 771(1.8) 749(834) t2-ps05 10x5 691(opt) 693(1.2) 693(248) t2-ps12 20x5 1448 1369(41) 1305(2173) t2-ps13 20x5 1575 1439(68) 1439(2468) t2-pss12 20x5 1359 1305(49) 1290(2062) t2-pss13 20x5 1463 1409(55) 1398(1875) • 360Mhz processor.
  • 37.
  • 38.
    Conclusions • A newShifting Bottleneck Procedure for the Jobshop Scheduling problem with Setup • Tested in several large sets of problems and has provided new upper bounds for several problems