1 / 44

Job Shop Scheduling

Job Shop Scheduling. 1 . Modelling Job Shop Problems 2 . Shifting Bottleneck Heuristic 3 . Branch & Bound. Topic 1. Job Shop Scheduling Problems. Job Shops . Have m machines and n jobs Each job visits some or all of the machines

isabel
Download Presentation

Job Shop Scheduling

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. Job Shop Scheduling 1. Modelling Job Shop Problems 2. Shifting Bottleneck Heuristic 3. Branch & Bound

  2. Topic 1 Job Shop Scheduling Problems

  3. Job Shops • Have m machines and n jobs • Each job visits some or all of the machines • Only once (or sometimes multiple times if recirculation is allowed) • Customer order of small batches • Wafer fabrication in semiconductor industry • Hospital • Very difficult to solve

  4. Job Shop Example • Constraints • Job follows a specified route of operations (Conjunctive constraints) • One job at a time on each machine (Disjunctive constraints) 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)

  5. Definitions • A schedule is non-delay if no machine is kept idle (or free resource is kept unused) when there is an operation available • A schedule is called active if -without delaying other operations- no operation can be completed earlier • For “regular” objectives:at least one optimal schedule is active (but not necessarily non-delay)

  6. (2,1) Non-active Schedule Machine 1 (1,1) Machine 2 (2,3) (2,2) (2,1) Machine 3 (3,2) 0 2 4 6 8

  7. Active Schedule, not Non-delay Machine 1 (1,1) Machine 2 (2,3) (2,2) (2,1) Machine 3 (3,2) 0 2 4 6 8

  8. Non-delay schedule Machine 1 (1,1) Machine 2 (2,3) (2,1) (2,2) Machine 3 (3,2) 0 2 4 6 8

  9. Graph Representation (J-on-N) • Each job follows a given route through the job shop • Picturing each job as a row of nodes: (i,j)=operation on machine i of job j (Conjunctive arcs A) (1,1) (2,1) (3,1) Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3)

  10. Graph Representation • To model the machine constraints, introduce the arc set B (...), giving ‘a clique’ of bidirected arc-pairs on each machine • Full Graph G(N, AB) (Disjunctive arc-pairs B) (1,1) (2,1) (3,1) Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3)

  11. Solving the Problem • Select one arc from each pair of disjunctive arcs: D out of B • Longest path in G(D)=G(N, A D) determines the makespan (1,1) (2,1) (3,1) Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3)

  12. Feasibility of the Schedule • Are all selections feasible? (1,1) (2,1) (3,1) Source (1,2) (2,2) (4,2) Sink (2,3) (1,3) (4,3) (3,3) Resulting graph G(D) should be acyclic

  13. Disjunctive Programming Minimize s.t.

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

  15. Topic 2 Shifting Bottleneck Heuristic for Job Shop Scheduling Problems

  16. 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

  17. Example • Three jobs on four machines • Processing job 1 (or 2) without delay requires 22

  18. 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 4 (1,3) (2,3) (4,3)

  19. Selecting a Machine • Set up a non-preemptive single machine maximum lateness (1||Lmax) problem for Machine 1: • Consider rj as earliest starting time and djas latest finish time Optimum sequence is 1, 2, 3 with Lmax(1) = 5

  20. Selecting a Machine • Set up a non-preemptive single machine maximum lateness (1||Lmax) problem for Machine 2: Optimum sequence is 2, 3, 1 with Lmax(2) = 5

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

  22. 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 4 (1,3) (2,3) (4,3)

  23. Selecting a Machine • Set up a non-preemptive single machine maximum lateness (1||Lmax) problem for Machine 2: Old: New: Optimum sequence is 2, 1, 3 with Lmax(2) = 1

  24. Selecting a Machine • Set up a non-preemptive single machine maximum lateness (1||Lmax) problem for Machine 3: Optimum sequence is 1, 2 with Lmax(3) = 1

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

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

  27. Shifting Bottleneck Heuristic 1. M0:=; G=(N, u, v, A); Cmax := longest path-length in G between u and v 2. iM-M0 do // solving a single machine problem a. for all operations o=(i,j) on machine i do - find longest paths u-o and o-v of lengths lu,o and lo,v, say, - define release time rij = lu,o, due date dij = Cmax - (lo,v -pij) b. for this single machine problem on i: determine L*max(i) with choices D*(i) 3. k := arg max iM0 L*max(i) ; // decide for bottleneck machine k Insert arcs D(k)=D*(k) in G and update Cmax// Cmax may increase 4. iM0-{k} do // Re-sequencing ‘decided’ machines a. remove D(i) from G and recompute Cmax b.   recompute D*(i) as in step 2 above c.    insert D(i)= D*(i) in G and update Cmax// Cmax may decrease 5. M0:= M0  {k}; if M0<M then (add delayed precedence and) return to step 2.

  28. Discussion • Procedure continues until all disjunctive arcs have been added • Watch out for cycles, because of other (scheduled) machines • delayed precedence constraints may be required, see example in book • Very effective • Relatively fast • Good solutions • More general Job Shop problems can be solved as well • ‘Just a heuristic’ • No guarantee of optimum • The subproblem Max. Lateness, 1 | rj , prec | Lmax,is NP-hard

  29. 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

  30. Topic 3 Branch & Bound for Job Shop Scheduling Problems

  31. Branch and Bound • Minimize makespan • Notation • operation (i,j)has duration pij • Let W denote operations whose predecessors have all been scheduled • Let rij be the earliest possible starting time of (i,j) in W. • FIRST SUBJECT: How to branch toactive schedules

  32. Branching • In the optimal schedule each machine has some order for its operations: let machine i has first (i, j1), then (i, j2) etc. • In partial schedules, B&B subproblems at level k, it is decided for [some] machines i, in ancestor B&B nodes, which operations are (i,j1), (i,j2),..., (i, jk(i) ) [possibly k(i)=0 –if i has no decisions yet] Ancestor choices New choices: for some machine i* decide on a next operation (i*, jk(i)+1)=(i*, j''') (i*, jk(i)+1)=(i*, j'') (i*, jk(i)+1)=(i*, j') !Avoid partial schedules that are not active!

  33. Which operations can be next in active schedule? If active, a schedule can have (i*, j)  ' as the next i*-operation, but not (i*,k) ' Machine i* (i*, j) (i*, j0) (i*, j0) (i*,k) 0 t  ri* j t() ri* k

  34. (i1, j) (i*, j0) ' is a subset of  , why? Suppose (i*, j) in ' is not part of : i.e., some other operation, say (i1, j) is first for job j. (i1, j) is by definition in  and to be scheduled before (i*, j) Gant-Chart of operations of j: and of j0: (i*, j) t() Then: ri* j0 + pi* j0 = t() <= ri1 j + pi1 j <= ri* j, showing that (i*,j) is cannot be part of

  35. Generating Active Schedules • Step 1. (Initialize) • Let  contain the first operations of each job; rij = 0 for all (i,j)   ; • Step 2. (Machine selection) • Compute of current partial schedule: time • i* =associated machine • Step 3. (Branching) // extends current schedule in all active ways • Let ’ consistof operations (i*, j) on machine i*with • For each (i*, j) in ’ extend current partial schedule with (i*, j) next on i* • For eachthus generated, extended partial schedule: • a.delete (i*, j) from , insert immediate follower (k, j) in , • b. return with this schedule, as current, to step 2.

  36. ancestor choices Some machine i* decides on next operation (i*, jk(i)+1)=(i*, j''') (i*, jk(i)+1)=(i*, j'') (i*, jk(i)+1)=(i*, j') Generating active schedules, that is not all choices, only operations (i*, j' ) of ' Branching Tree

  37. root 22 (1,1) (1,3) Branch at level 1 for possibilities W’ of (1, j1) at i* =1 On Example 10 8 (1,1) (2,1) (3,1) 4 0 6 8 3 5 0 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 7 4 (1,3) (2,3) (4,3) Level 1

  38. Level 1: when (1,1) is first on machine 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 4 (1,3) (2,3) (4,3) Cmax >= 24 Disjunctive Arcs

  39. Level 1: when (1,3) is first on machine 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 4 0 4 3 7 4 (1,3) (2,3) (4,3) Cmax >= 26 Disjunctive Arcs

  40. Branching Tree Start, no disjunctive arcs LB=22 (1,1) scheduled first on machine 1 LB = 24 (1,3) scheduled first on machine 1 LB = 26

  41. Next branching: at subproblem (1,1) 10 8 (1,1) (2,1) (3,1) 4 0 10 8 6 3 5 10 0 Source (2,2) (1,2) (4,2) (3,2) Sink 0 3 7 4 (1,3) (2,3) (4,3) Level 2 root 22 (1,1) (1,3) (2,2)

  42. Level 2: Extending to (2,2) as first on machine 2 As yet no new disjunctive Arcs 10 8 (1,1) (2,1) (3,1) 4 10 0 8 0 8 3 5 6 Source (2,2) (1,2) (4,2) (3,2) Sink 8 0 3 7 4 (1,3) (2,3) (4,3) Still LB=24

  43. Branching Tree LB=22, 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 LB = 24

  44. Lower Bounds • Lower bounds • Length of critical path in G(D’). • Very quick but not very tight • Linear programming relaxation. • Less quick but tighter • Maximum Lmax over all machines • Likein Shifting-Bottleneck Heuristic • slowest (m NP-hard problems),but tightest !

More Related