IOE/MFG 543 Chapter 5: Parallel machine models (Sections 5.1-5.2) 1 Two-step process 1. 2. Determine which jobs have to be allocated to which machines Determine the sequence of the jobs allocated to each machine – In some cases use single machine models 2 Makespan Cmax Single machine models – Sum of processing times of all jobs – Exception: Release dates or sequence dependent setup times Parallel machine models – Minimizing the makespan ensures a good load balance on the machines 3 Section 5.1 Makespan without preemptions Pm||Cmax Pm||Cmax is NP-hard => Heuristics Easy to compute lower bound Cmax ≥ C*max= max{pmax, (Spj)/m} where pmax=max{pj} Longest Processing Time first (LPT) – Largest m jobs are put on the machines first – When a machine is freed, the longest job among the jobs not yet processed is put on the machine 4 Worst case bound for the LPT rule Let – Cmax(LPT) be the makespan under the LPT rule – Cmax(OPT) be the optimal makespan Theorem 5.1.1 Cmax(LPT) 4 1 ≤ Cmax(OPT) 3 3m 5 LPT Example 4 machines and 9 jobs job j 1 2 3 4 5 6 pj 7 7 6 6 5 5 Compute Cmax(LPT) Pair the jobs 1-5, 2-6, 4-5, 7-8-9 7 4 8 4 9 4 – What is Cmax? – Is this Cmax(OPT)? Why? What is Cmax(LPT)/Cmax(OPT) 6 Precedence constraints Pm|prec|Cmax At least as hard as Pm||Cmax – Strongly NP-hard in general Special case: P∞|prec|Cmax – unlimited resources (or m≥n, more resources than jobs) For P∞|prec|Cmax the Critical Path Method (CPM) minimizes the makespan 7 Algorithm 5.1.3 Critical path method Start a job as soon as all its preceding jobs have been completed Example 5.1.4 job j 1 2 3 4 5 6 7 8 9 pj 4 9 3 3 6 8 8 12 6 1 3 4 2 6 7 8 9 5 8 Precedence constraints Pm|prec|Cmax (2) A critical path rule is optimal for Pm|pj=1, tree|Cmax (Theorem 5.1.5) Largest Number of Successors rule often used for Pm|pj=1, prec|Cmax – Not optimal (see pg. 102) Largest total amount of processing rule for Pm|prec|Cmax – Not optimal 9 Pm|Mj|Cmax For interest: See pages 103-104 10 Section 5.2 Makespan with preemptions Pm|prmp|Cmax Preemptions are useful when there are multiple machines even if there are no release dates Assumption: A job cannot be processed on 2 machines at the same time 11 Linear program for Pm|prmp|Cmax minimize Cmax subject to Sxij=pj m j=1,…,n i=1 m Sxij≤Cmax j=1,…,n i=1 n Sxij ≤Cmax i=1,…,m xij≥0 i=1,…,m j=1,…,n j=1 12 Linear program for Pm|prmp|Cmax (2) xij is the amount of processing of job j on machine i Cmax is a decision variable The solution of the LP does not give a feasible schedule, although a feasible schedule can be constructed given the solution 13 Algorithm 5.2.3 for Pm|prmp|Cmax 1. 2. 3. Create a single machine schedule of the n jobs in any order without preemptions Compute C*max= max{pmax, (Spj)/m}. Cut the single machine schedule in m intervals: I1=[0, C*max], I2= [C*max, 2C*max], …, Im=[(m-1)C*max,mC*max] Take the schedule for machine i of the parallel machines to be the processing sequence in interval Ii 14 Pm|prmp|Cmax example Use Algorithm 5.2.3 to determine a schedule that minimizes the makespan of the following jobs on 3 machines job j 1 2 3 4 5 6 7 8 9 pj 4 9 3 3 6 8 8 12 6 15 Longest Remaining Processing Time rule Analogous to the LPT rule LRPT minimizes the makespan What happens while a job is processed? – RPT decreases => switch to a new job – Results in infinitely many switchovers! LRPT-FM (FM=fastest machine) is optimal for Qm|prmp|Cmax 16