IOE/MFG 543 Chapter 6: Flow shops Sections 6.1 and 6.2 (skip section 6.3) 1 Flow shop (Fm) m machines, n jobs Jobs are processed on the machines in series – Processing time of job j on machine i is pi,j Buffers between machines – Unlimited – Limited => blocking 2 Section 6.1. Unlimited storage - Permutation rule Permutation rule – All jobs are processed in the same order on the machines – Equivalent to a FCFS rule For F2||Cmax and F3||Cmax there exists a permutation schedule that is optimal It is much harder to minimize the makespan when the sequencing is not restricted to the permutation rule 3 Computing the makespan for a given permutation Let j1,…,jn be a given permutation – i.e., job jk is the kth job on all the machines Ci,j=completion time of job j on machine i i Ci,j1= S pl,j1 i=1,…,m S p1,jl k=1,…,n l=1 k C1,jk= l=1 Ci,jk= max(Ci-1,jk, Ci,jk-1)+pi,jk i=2,…,m; k=2,…,n 4 Computing the makespan for a given permutation (2) Instead of solving the recursive equations on the previous slide the makespan can be computed by a critical path method Example 6.1.1 job j p1j p2j 1 5 4 2 5 4 3 3 2 4 6 4 5 3 4 p3j p4j 4 3 4 6 3 3 4 2 1 5 5 Johnson’s rule for F2||Cmax Set I: All jobs such that p1j<p2j Set II: All jobs such that p1j>p2j Jobs with p1j=p2j can be put in either set SPT(1) – LPT(2) schedule (Johnson’s rule): – Jobs in Set I go first and in an increasing (nondecreasing) order of p1j => SPT(1) – Jobs in Set II go last and in a decreasing (nonincreasing) order of p2j => LPT(2) Theorem 6.1.4 – Any SPT(1)-LPT(2) schedule is optimal for F2||Cmax 6 Fm|prmu|Cmax Theorem 6.1.7 – F3|prmu|Cmax is strongly NP-hard – 3-Partition reduces to F3|prmu|Cmax 7 Mixed integer programming formulation of Fm|prmu|Cmax Notation – xjk=1 if job j is the kth job in the sequence and 0 otherwise – Iik is the idle time on machine i between jobs in the kth and (k+1)th position – Wik is the waiting time after it has finished on the ith machine of the job in the kth position – Dik is the difference between the time when the job in the (k+1)th position starts on machine i+1 and the time the job in the kth position finishes on machine i – pi(k) is the processing time on machine i of the job in the kth position 8 Proportionate flow shops The processing time (work) for job j is pij=pj Theorem 6.1.8 – The makespan of Fm|prmu,pij=pj|Cmax is Cmax=Spj+(m-1)max(p1,…,pn) and is independent of the schedule 9 Single machine models and proportionate flow shops Rule/algorithm Single machine Proportionate flow shop SPT rule 1||SCj Fm|pij=pj|SCj Algorithm 3.3.1 1||SUj Fm|prmu,pij=pj|SUj Algorithm 3.2.1 1||hmax Fm|prmu,pij=pj|hmax Algorithm 3.4.4 1||STj Fm|prmu,pij=pj|STj Lemma 3.5.1 1||SwjTj Fm|prmu,pij=pj|SwjTj Note: WSPT is not always optimal for Fm|prmu,pij=pj|SwjCj 10 Slope heuristic for Fm|prmu|Cmax Slope index of job j m Aj= - S (m-(2i-1))pij j=1,…,n i=1 The slope index is large if the processing times on the downstream machines are large relative to the processing times on the upstream machines Heuristic rule – Sequence jobs in decreasing order of the slope index Example 6.1.10 11 Section 6.2 Limited storage flow shops Only need to consider the case where the storage between machines is zero New notation – Dij is the time when job j departs machine i – D0j is the time when job j starts processing on machine 1 – Note that Cij≤Dij 12 Computing the makespan of a sequence i Di,j1= S pl,j1 i=1,…,m l=1 Di,jk= max(Di-1,jk+pi,jk, Di+1,jk-1) i=1,…,m-1; k=2,…,n k=2,…,n Dm,jk= Dm-1,jk+pm,jk The makespan of a given sequence can also be computed by a critical path method The problem F3|block|Cmax is strongly NP-hard 13 Profile fitting (PF) heuristic for Fm|block|Cmax 1. 2. A job j1 is selected to go first Try all the other jobs as the next job – – – 3. Use the equations on the previous slide to compute the departure times Compute a penalty as the sum of idle times and blocked times on all machines Choose the job with the lowest penalty to go next If all jobs have been scheduled=> STOP Otherwise go to Step 2. 14 Example 6.2.5 job j 1 2 3 4 5 p1j 5 5 3 6 3 p2j 4 4 2 4 4 p3j 4 4 3 4 1 p4j 3 6 3 2 5 15