270 likes | 551 Views
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
E N D
Prof. Julius AtlasonUniv. 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 • 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
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
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
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
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)
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
Section 7.2: The shifting bottleneck heuristic • Example 7.2.2
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
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
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
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
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
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
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
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}
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
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
Ex. 7.2.2: Iteration 3. 1|rj|Lmax • Machine 3 • Lmax(3)=0 • Machine 4 • Lmax(4)=0w/sequence 2-3
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
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
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.
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)