IOE/MFG 543 Chapter 3: Single machine models (Sections 3.1 and 3.2) 1 Sec. 3.1: The total weighted completion time 1||S wjCj Criteria for scheduling – Shorter jobs processed first => more jobs finish early – The higher the weight the earlier a job should finish Weighted shortest processing time first rule (WSPT) – order the jobs in decreasing order of wj /pj Theorem 3.1.1 – The WSPT is optimal for 1||S wjCj 2 Precedence constraints Chains 12 ... k r -factor (largest ratio of weight and processing times) r (1,2,..., k ) l* j 1 l* wj p j 1 j max l 1l k j 1 l j 1 wj pj 3 Algorithm 3.1.4 for chains 1. Whenever a machine is freed, schedule among the remaining chains the one with the highest r –factor 2. Process this chain without interruption up to and including the job l* that determines the r –factor Do example on slide 7 4 1|| Σwj(1-e-rCj) Weighted discounted shortest processing time first rule (WDSPT) – Order jobs in non-increasing order of wje-rpj 1-e-rpj – Gives the optimal schedule (Thm. 3.1.6) Algorithms for chains also exist 5 Summary of other completion time models 1 | prec | wjCj with strongly NP-hard arbitrary precedence relation 1 | rj, prmp | wjCj NP-hard 1 | rj, prmp | Cj SRPT rule 1 | rj | Cj NP-hard 6 Example 3.1.5 There are 2 chains 12 34 and 567 The weights and processing times are job j wj pj 1 6 3 2 18 6 3 12 6 4 8 5 5 8 4 6 17 8 7 18 10 Determine the schedule that minimizes the total weighted completion time 7 Section 3.2 The maximum lateness Due date related The problem 1 || Lmax is easy – For a single machine problem with regular objective functions Cmax=Spj – Lmax=maxi{1,…,n} Li (Li =Ci-di) – Select jobs in increasing order of their due dates => earliest due date first rule (EDD) 8 Backward algorithm for 1|prec|hmax hmax=max(h1(C1),…,hn(Cn)) – The functions hi are nondecreasing J is the set of jobs already scheduled – Jobs in J are processed in the interval [ Cmax- pj, Cmax S ] jJ Jc is the set of jobs still to be scheduled J' is the set of jobs that can be scheduled (schedulable jobs) 9 Algorithm 3.2.1 for 1|prec|hmax 1. Set J=, Jc={1,…,n} and let J' be all jobs that have no successors 2. Determine j* arg min h j pk jJ ' kJ c Add j* to J Delete j* from Jc Modify J' to represent the new set of schedulable jobs (have no successors) 3. If Jc= STOP, otherwise go to 2 10 Example 3.2.3 Use Algorithm 3.2.1 to determine the schedule that minimizes hmax and compute the optimal value job j 1 2 3 pj 2 3 5 1+ C1 1.2 C2 10 hj (Cj) 11 Theorem 3.2.2. Algorithm 3.2.1. yields an optimal schedule for 1 | prec | hmax Proof: 12 Release dates 1 | rj | Lmax Significantly harder than 1 | prec | Lmax It may be optimal to keep the machine idle to wait for the release of a new job (not a nondelay schedule) Theorem 3.2.4. – The problem 1 | rj | Lmax is strongly NPhard – Reduces from 3-PARTITION 13 Branch and bound A method of effective enumeration – Generate a node tree Compute the objective of a feasible schedule (feasible node) Compute lower bounds for a class of schedules (node) The node can be eliminated if the lower bound is higher than the cost of a schedule obtained earlier 14 Branch and bound for 1 | rj | Lmax Branching – Level 0: single node and no jobs have been scheduled – Level 1: n nodes such that job j is scheduled first at node j – Level k: jobs in the first k positions have been specified 15 Branch and bound for 1 | rj | Lmax (2) Branching – At a node let J be the set of jobs that have not been scheduled – Also let t be the time when a job can start processing at the node – Only create a node for job j at the node if rj<minlJ(max(t,rl)+pl) 16 Branch and bound for 1 | rj | Lmax (3) Bounding – At each node compute the optimal value using 1 | rj , prmp | Lmax for the remaining jobs – Preemptive EDD rule is optimal for 1 | rj , prmp | Lmax – If the preemptive solution gives a nonpreemptive schedule then it is feasible 17 Example 3.2.5 Use branch and bound to determine the schedule for 1 | rj | Lmax and compute the optimal value for job j 1 2 3 4 pj 4 2 6 5 rj 0 1 3 5 dj 8 12 11 10 18