1 / 24

Prof. Julius Atlason Univ. of Michigan, Ann Arbor

Prof. Julius Atlason Univ. of Michigan, Ann Arbor. Chapter 7: Job shops Sections 7.1 and 7.2 (skip section 7.3). Job shop (Jm). m machines, n jobs Each job has its own routing on the machines

terris
Télécharger la présentation

Prof. Julius Atlason Univ. of Michigan, Ann Arbor

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. Prof. Julius AtlasonUniv. of Michigan, Ann Arbor Chapter 7: Job shops Sections 7.1 and 7.2 (skip section 7.3)

  2. Job shop (Jm) • m machines, n jobs • Each job has its own routing on the machines • The flow shop is a special case where all the jobs follow the same route (recall F3||Cmax is NP-hard) • If a job is to be processed on the same machine more than once => recirculation

  3. Section 7.1. Disjunctive graph for Jm||Cmax • In Jm||Cmax there is no recirculation • All jobs start at a source node U and finish at the sink node V • Node (i,j) is the processing of job j on machine i • Let N denote the set of nodes • The arc from node (i,j) has weight pij • The arcs going out of the source node have zero weights • Let A denote the set of arcs

  4. Disjunctive graph (2) • For each machine i connect all nodes of the form (i,j) and (i,k) with two arcs (one going in each direction) • The arcs for each machine form a clique, i.e., a sub-graph in which any two nodes are connected to one another • The two arcs are disjunctive, i.e., only one of them is utilized • If the operation (i,j) precedes operation (i,k) then only the arc from (i,j) to (i,k) and not the arc from (i,k) to (i,j) is utilized • Let B denote the set of disjunctive arcs

  5. Using the graph to find a feasible schedule • Select one disjunctive arc from each pair of disjunctive arcs • If the selection results in an acyclic graph, i.e., contains no cycles, then the corresponding schedule is feasible • The makespan of the schedule is determined by the critical path method

  6. Minimizing the makespan • To minimize the makespan we need to select the arcs that results in a schedule that minimizes the makespan • Disjunctive program • yij is the starting time of operation (i,j)

  7. Minimizing the makespan (2) • Solving this problem can be achieved by a branch and bound algorithm • The algorithm is computationally expensive even for a problem with a modest number of jobs and machines • Use heuristic methods instead

  8. Section 7.2: The shifting bottleneck heuristic • Example 7.2.2

  9. Example 7.2.2: Disjunctive graph 10 8 1,1 2,1 3,1 4 0 6 5 0 3 V 8 U 2,2 1,2 4,2 3,2 0 3 4 7 1,3 2,3 4,3

  10. Example 7.2.2: Iteration 1 • M0=Set of machines already scheduled= • Only include the conjuctive arcs • Compute Cmax(M0)=22 10 8 1,1 2,1 3,1 4 0 6 5 0 3 V 8 U 2,2 1,2 4,2 3,2 0 3 4 7 1,3 2,3 4,3

  11. Ex. 7.2.2: Iter. 1 Which machine to sched. first? • Solve 1|rj|Lmax for each machine i • Release dates rij=longest path from U to node (i,j) • Due dates dij= Cmax(M0) - longest path from (i,j) to V + pij • The machine with the largest minimum Lmax is the bottleneck machine

  12. Ex. 7.2.2: Iter. 1. 1|rj|Lmax • Machine 1: • How do we solve this problem? • Branch and bound algorithm gives Lmax(1)=5 • Machine 2: • Branch and bound algorithm gives Lmax(2)=5

  13. Ex. 7.2.2: Iter. 1. 1|rj|Lmax • Machine 3: • Only 2 schedules! Lmax(3)=4 • Machine 4: • Only 2 schedules… Lmax(4)=0

  14. Ex. 7.2.2: Iter. 1 Which machine to sched. first? (2) • Machines 1 and 2 both have a minimum Lmax of 5 • We can choose either machine so let’s pick machine 1 => M0={1} 10 8 1,1 2,1 3,1 4 10 0 6 5 0 3 V 8 U 2,2 1,2 4,2 3,2 0 3 3 4 7 1,3 2,3 4,3

  15. Ex. 7.2.2: Iteration 2 • Compute Cmax(M0)=27 10 8 1,1 2,1 3,1 4 10 0 6 5 0 3 V 8 U 2,2 1,2 4,2 3,2 0 3 3 4 7 1,3 2,3 4,3

  16. Ex. 7.2.2: Iteration 2. 1|rj|Lmax • Machine 2 • B&b algorithm gives Lmax(2)=1 w/sequence 2-1-3 • Machine 3 • Lmax(3)=1w/sequences 1-2 and 2-1 • Machine 4 • Lmax(4)=0w/sequence 2-3 • Add machine 2 to M0 so M0={1,2}

  17. Ex. 7.2.2: Iteration 2Resequencing • Should we re-sequence machine 1 to decrease Cmax(M0)? • 1-2-3 gives Lmax(1)=0 • which is optimal since lateness of job 1 increases if it is delayed • Do not resequence machine 1 10 8 1,1 2,1 3,1 4 8 0 6 5 0 3 V 8 U 2,2 1,2 4,2 3,2 8 0 3 4 7 1,3 2,3 4,3

  18. Ex. 7.2.2: Iteration 3 • Compute Cmax(M0)=28 10 8 1,1 2,1 3,1 4 0 8 10 8 6 5 0 3 V 8 U 2,2 1,2 4,2 3,2 0 3 3 4 7 1,3 2,3 4,3

  19. Ex. 7.2.2: Iteration 3. 1|rj|Lmax • Machine 3 • Lmax(3)=0 • Machine 4 • Lmax(4)=0w/sequence 2-3

  20. Ex. 7.2.2: Iteration 3Conclusion • Sequencing machines 3 and 4 does not increase the makespan of Cmax(M0)=28 • No need to try to resequence 10 8 1,1 2,1 3,1 4 0 4 8 10 8 6 5 0 3 V 8 U 2,2 1,2 4,2 3,2 5 0 3 3 4 7 1,3 2,3 4,3

  21. Ex. 7.2.2: Gantt chart 17 8 10 13 18 22 25 28 0 1 2 3 2 1 3 1 2 2 3

  22. Algorithm 7.2.1: The shifting bottleneck heuristic • Initialization. Set M0=. Graph G contains only the conjunctive arcs • Solve a maximum lateness problem for each machine that has not been sequenced. • Sequence the machine that has the maximumlateness • Add it to M0 and add the disjunctive arcs to G for that machine • Resequence all machines in M0 one at a time, except the last added machine. Modify the disjunctive constraints accordingly • Stop if all machines have been sequenced, otherwise go to step 2.

  23. An implementation issue with the heuristic • Recall: The disjunctive constraints must be selected such that the resulting graph is acyclic • In the SBH heuristic a cycle can be created • This can be prevented by adding precedence constraints (arcs) having a delay (a positive weight)

  24. Example 7.2.3. Delayed precedence constraints

More Related