Chapter 6: Flow shops Sections 6.1 and 6.2 (skip section 6.3) IOE/MFG 543 Chapter 6: Flow shops Sections 6.1 and 6.2 (skip section 6.3)
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
Section 6.1. Unlimited storage - 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
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 l=1 k C1,jk= S p1,jl k=1,…,n Ci,jk= max(Ci-1,jk, Ci,jk-1)+pi,jk i=2,…,m; k=2,…,n
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 1 2 3 4 5 p1j 6 p2j p3j p4j
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 (non-decreasing) order of p1j => SPT(1) Jobs in Set II go last and in a decreasing (non-increasing) order of p2j => LPT(2) Theorem 6.1.4 Any SPT(1)-LPT(2) schedule is optimal for F2||Cmax
Fm|prmu|Cmax Theorem 6.1.7 F3|prmu|Cmax is strongly NP-hard 3-Partition reduces to F3|prmu|Cmax
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
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
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
Slope heuristic for Fm|prmu|Cmax Slope index of job j 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 m Aj= - S (m-(2i-1))pij j=1,…,n i=1
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
Computing the makespan of a sequence 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 Dm,jk= Dm-1,jk+pm,jk k=2,…,n The makespan of a given sequence can also be computed by a critical path method The problem F3|block|Cmax is strongly NP-hard
Profile fitting (PF) heuristic for Fm|block|Cmax A job j1 is selected to go first Try all the other jobs as the next job 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.
Example 6.2.5 job j 1 2 3 4 5 p1j 6 p2j p3j p4j