180 likes | 212 Views
IOE/MFG 543. Chapter 3: Single machine models (Sections 3.1 and 3.2). Sec. 3.1: The total weighted completion time 1|| S w j C j. Criteria for scheduling Shorter jobs processed first => more jobs finish early The higher the weight the earlier a job should finish
E N D
IOE/MFG 543 Chapter 3: Single machine models (Sections 3.1 and 3.2)
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
Precedence constraints • Chains 12 ... k • r -factor (largest ratio of weight and processing times)
Algorithm 3.1.4 for chains • Whenever a machine is freed, schedule among the remaining chains the one with the highest r –factor • Process this chain without interruption up to and including the job l* that determines the r –factor Do example on slide 7
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
Example 3.1.5 • There are 2 chains 12 34 and 567 • The weights and processing times are • Determine the schedule that minimizes the total weighted completion time
Section 3.2The 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)
Backward algorithm for1|prec|hmax • hmax=max(h1(C1),…,hn(Cn)) • The functions hi are nondecreasing • Jis the set of jobs already scheduled • Jobs in J are processed in the interval • Jcis the set of jobs still to be scheduled • J'is the set of jobs that can be scheduled (schedulable jobs)
Algorithm 3.2.1 for 1|prec|hmax • Set J=, Jc={1,…,n} and let J'be all jobs that have no successors • Determine Add j* to J Delete j* from Jc Modify J'to represent the new set of schedulable jobs (have no successors) • If Jc= STOP, otherwise go to 2
Example 3.2.3 • Use Algorithm 3.2.1 to determine the schedule that minimizes hmax and compute the optimal value
Theorem 3.2.2. • Algorithm 3.2.1. yields an optimal schedule for 1 | prec | hmax • Proof:
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 NP-hard • Reduces from 3-PARTITION
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
Branch and bound for1 | 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
Branch and bound for1 | 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)
Branch and bound for1 | 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 non-preemptive schedule then it is feasible
Example 3.2.5 • Use branch and bound to determine the schedule for 1 | rj | Lmax and compute the optimal value for