Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 7: Job shops Sections 7.1 and 7.2 (skip section 7.3)

Similar presentations


Presentation on theme: "Chapter 7: Job shops Sections 7.1 and 7.2 (skip section 7.3)"— Presentation transcript:

1 Chapter 7: Job shops Sections 7.1 and 7.2 (skip section 7.3)
IOE/MFG 543 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) minimize Cmax subject to ykj-yij≥pij  (i,j)(k,j) Cmax-yij≥ pij  (i,j) yij-yil≥pil or yil-yij≥pij  (i,l) and (i,j) , i=1,…,m yij≥0

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 job machine sequence processing times 1 1, 2, 3 p11=10, p21=8, p31=4 2 2, 1, 4, 3 8, 3, 5, 6 3 1, 2, 4 4, 7, 3

9 Example 7.2.2: Disjunctive graph
10 8 1,1 2,1 3,1 4 5 6 8 3 V U 2,2 1,2 4,2 3,2 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 5 6 8 3 V U 2,2 1,2 4,2 3,2 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 job j 1 2 3 p1j 10 4 r1j 8 d1j 11 12
8 d1j 11 12 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 job j 1 2 3 p2j 8 7 r2j 10 4 d2j 18 19

13 Ex. 7.2.2: Iter. 1. 1|rj|Lmax job j 1 2 3 p3j 4 6 - r3j 18 16 d3j 22
Machine 3: Only 2 schedules! Lmax(3)=4 Machine 4: Only 2 schedules… Lmax(4)=0 job j 1 2 3 p4j - 5 r4j 11 d4j 16 22

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 5 6 8 3 V U 2,2 1,2 4,2 3,2 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 5 6 8
5 6 8 3 V U 2,2 1,2 4,2 3,2 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)=1 w/sequences 1-2 and 2-1 Machine 4 Lmax(4)=0 w/sequence 2-3 Add machine 2 to M0 so M0={1,2} job j 1 2 3 p2j 8 7 r2j 10 17 d2j 23 24 job j 1 2 3 p4j - 5 r4j 13 24 d4j 21 27

17 Ex. 7.2.2: Iteration 2 Resequencing
10 8 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 1,1 2,1 3,1 4 8 5 6 8 3 V U 2,2 1,2 4,2 3,2 8 3 4 7 1,3 2,3 4,3 job j 1 2 3 p1j 10 4 r1j 8 d1j 17 18

18 Ex. 7.2.2: Iteration 3 Compute Cmax(M0)=28 10 8 1,1 2,1 3,1 4 10 8 8 5
10 8 8 5 6 8 3 V U 2,2 1,2 4,2 3,2 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)=0 w/sequence 2-3 job j 1 2 3 p3j 4 6 - r3j 18 d3j 28 job j 1 2 3 p4j - 5 r4j 13 25 d4j 22 28

20 Ex. 7.2.2: Iteration 3 Conclusion
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 4 10 8 8 5 6 8 3 V U 2,2 1,2 4,2 3,2 5 3 3 4 7 1,3 2,3 4,3

21 Ex : Gantt chart 17 8 10 13 18 22 25 28 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 maximum minimum maximum lateness 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
job machine sequence processing times 1 1, 2 p11=1, p21=1 2 2,1 1, 1 3 4


Download ppt "Chapter 7: Job shops Sections 7.1 and 7.2 (skip section 7.3)"

Similar presentations


Ads by Google