1 / 83

Topic 15

Topic 15. Job Shop Scheduling. Job Shop Scheduling. Have m machines and n jobs Each job visits some or all of the machines Customer order of small batches Wafer fabrication in semiconductor industry Hospital Very difficult to solve. Job Shop Example. Constraints

leda
Download Presentation

Topic 15

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Topic 15 Job Shop Scheduling

  2. Job Shop Scheduling • Have m machines and n jobs • Each job visits some or all of the machines • Customer order of small batches • Wafer fabrication in semiconductor industry • Hospital • Very difficult to solve

  3. Job Shop Example • Constraints • Job follows a specific route • One job at a time on each machine Machine 1 (1,1) (1,2) (1,3) Machine 2 (2,3) (2,1) (2,2) Machine 3 (3,1) (3,3) Machine 4 (4,3) (4,2)

  4. Graph Representation Each job follows a specific route through the job shop ... (1,1) (2,1) (3,1) Sink Source (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3) (Conjuctive arcs)

  5. (1,1) (2,1) (3,1) Sink Source (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3) Graph Representation Machine constraints must also be satisfied ... (Disjunctive arcs)

  6. Solving the Problem • Select one of each pair of disjunctive arcs • The longest path in this graph G(D) determines the makespan (1,1) (2,1) (3,1) Sink Source (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3)

  7. Feasibility of the Schedule • Are all selections feasible? (1,1) (2,1) (3,1) Sink Source (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3)

  8. Disjunctive Programming Minimize Subject to

  9. Solution Methods • Exact solution • Branch and Bound • 20 machines and 20 jobs • Dispatching rules (16+) • Shifting Bottleneck • Search heuristics • Tabu, SA, GA, etc.

  10. Topic 16 Types of Schedules

  11. Definitions • A schedule is nondelay if no machine is idled when there is an operation available • A schedule is called active if no operation can be completed earlier by altering the sequence on machines and not delaying other operations • For “regular” objectives the optimal schedule is always active but not necessarily nondelay

  12. Schedule Space Semiactive Optimum Nondelay Active All Schedules

  13. Nonactive Schedule Machine 1 (1,1) (2,1) Machine 2 (2,3) (2,2) (2,1) Machine 3 (3,2) 0 2 4 6 8

  14. Active Schedule, not Nondelay Machine 1 (1,1) Delay (Operation (2,1) does not fit) Machine 2 (2,3) (2,2) (2,1) Machine 3 (3,2) 0 2 4 6 8

  15. Nondelay schedule Machine 1 (1,1) Machine 2 (2,3) (2,1) (2,2) Machine 3 (3,2) 0 2 4 6 8

  16. Topic 17 Branch & Bound for Job Shops

  17. Branch and Bound • Operation (i,j) with duration pij • Minimize makespan • Branch by generating all active schedules • Notation • Let W denote operations whose predecessors have been scheduled • Let rij be the earliest possible starting time of (i,j) in W.

  18. Generating Active Schedules Step 1. (Initialize) Let W contain the first operation of each job Let rij = 0 for all (i,j)W. Step 2. (Machine selection) Compute the current partial schedule and let i* denote the machine where minimum achieved

  19. Generating Active Schedules Step 3. (Branching) Let W’ denote all operations on machine i such that For each operation in W’ consider a partial schedule with that operation next on i* For each partial schedule, delete operation from W and include immediate follower in W. Go back to Step 2.

  20. Branching Tree Selection of (i*,j) Selection of (i*,l)

  21. Example 10 8 (1,1) (2,1) (3,1) 4 0 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 7 (1,3) 4 (2,3) (4,3)

  22. Partitioning Tree • Level 1

  23. Level 1: select (1,1) 10 8 (1,1) (2,1) (3,1) 4 10 0 10 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 7 (1,3) 4 (2,3) (4,3) Disjunctive Arcs

  24. Level 1: Select (1,3) 10 8 (1,1) (2,1) (3,1) 4 0 4 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 0 4 3 7 (1,3) 4 (2,3) (4,3) Disjunctive Arcs

  25. Branching Tree No disjunctive arcs (1,1) scheduled first on machine 1 LB = 24 (1,3) scheduled first on machine 1 LB = 26

  26. Branching Tree • Level 2:

  27. Level 2: Select (2,2) 10 8 (1,1) (2,1) (3,1) 4 10 0 10 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 7 (1,3) 4 (2,3) (4,3) Disjunctive Arcs

  28. Branching Tree No disjunctive arcs (1,1) scheduled first on machine 1 LB = 24 (1,3) scheduled first on machine 1 LB = 26 (1,1) first on M1 and (2,2) first on M2

  29. Lower Bounds • Lower bounds • The length of the critical path in G(D’) • Quick but not very tight • Linear programming relaxation • A maximum lateness problem (see book)

  30. Topic 18 The Shifting Bottleneck Heuristic

  31. Shifting Bottleneck • Minimize makespan in a job shop • Let M denote the set of machines • Let M0  M be machines for which disjunctive arcs have been selected • Basic idea: • Select a machine in M - M0 to be included in M0 • Sequence the operations on this machine

  32. Example

  33. Iteration 1 10 8 (1,1) (2,1) (3,1) 4 0 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 7 (1,3) 4 (2,3) (4,3)

  34. Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 1: Optimum sequence is 1,2,3 with Lmax(1)=5

  35. Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 2: Optimum sequence is 2,3,1 with Lmax(2)=5

  36. Selecting a Machine • Similarly,  Either Machine 1 or Machine 2 is the bottleneck

  37. Iteration 2 10 8 (1,1) (2,1) (3,1) 4 0 10 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 3 7 (1,3) 4 (2,3) (4,3)

  38. Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 2: Optimum sequence is 2,1,3 with Lmax(2)=1

  39. Selecting a Machine Similarly,  Either Machine 2 or Machine 3 is the bottleneck

  40. Iteration 3 10 8 (1,1) (2,1) (3,1) 4 10 0 8 8 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 3 7 (1,3) 4 (2,3) (4,3)

  41. Discussion • Procedure continues until all the disjunctive arcs have been added • Extremely effective • Fast • Good solutions • ‘Just a heuristic’ • No guarantee of optimum

  42. Solving the Maximum Lateness Problem (•,•,•) (1,•,•) (2,•,•) (3,•,•) (1,2,3) (1,3,2) (3,1,2) (3,2,1)

  43. Discussion • The solution is actually a little bit more complicated than before • Precedence constraints because of other (already scheduled) machines • Delay precedence constraints (see example in book)

  44. Discussion • Shifting bottleneck can be applied generally • Basic idea • Solve problem “one variable at a time” • Determine the “most important” variable • Find the best value of that variable • Move on to the “second most important” …. • Here we treat each machine as a variable

  45. Topic 19 Shifted Bottleneck for Total Weighted Tardiness Objective

  46. Total Weighted Tardiness • We now apply a shifted bottleneck procedure to a job shop with total weighted tardiness objective • Need n sinks in disjunctive graph • Machines scheduled one at a time • Given current graph calculate completion time of each job • Some n due dates for each operation • Piecewise linear penalty function

  47. Cost Function for Operation (i,j)

  48. Machine Selection • Machine criticality • Solve a single machine problem • Piecewise linear cost function • May have delayed precedence constraints • Generalizes single-machine with n jobs, precedence constraints, and total weighted tardiness objective • ATC rule

  49. Generalized ATC Rule Earliest time machine can be used Ranks jobs  good schedule Scaling constant

  50. Criticality of Machines • Criticality = subproblem objective function • Simple • More effective ways, e.g. • Add disjunctive arcs for each machine • Calculate new completion times and

More Related