Download Presentation
## Completion Time Scheduling

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Completion Time Scheduling**Notes from Hall, Schulz, Shmoys and Wein, Mathematics of Operations Research, Vol 22, 513-544, 1997**Other ways to bound Cj**Smith’s rule: Scheduling jobs by wj/pj is guaranteed to be optimal wj pj**Think of all jobs as having wj = pj**Smith’s rule: Any order is then equivalent since wj/pj = 1 for all jobs pj pj**1|prec| ΣwjCj**• LP: minimize ΣwjCj • Subject to Ck ≥ Cj + pk (if job j precedes job k) Let C’i denote the LP optimal values Let C*i denote the true optimal values**Algorithm and Analysis**• Let C’i denote the LP optimal values • Let C*i denote the true optimal values • Greedy Algorithm: • Solve LP for C’i • Solvable in poly time despite exponential size • Prioritize the jobs by C’i values • Let Gi be the resulting completion times • Key result: Gi ≤ 2C’i ≤ 2C*i • From Lemma 2.1**1|rj, prec| ΣwjCj**• LP: minimize ΣwjCj • Subject to Cj ≥ rj + pj (all jobs) Ck ≥ Cj + pk (if job j precedes job k) Let C’i denote the LP optimal values Let C*i denote the true optimal values**Algorithm**• Let C’i denote the LP optimal values • Let C*i denote the true optimal values • Greedy Algorithm: • Solve LP for C’i • Solvable in poly time despite exponential size • Prioritize the jobs by C’i values • Let Gi be the resulting completion times**Analysis**• Key result: Gi ≤ 3C’i ≤ 3C*i • Fix j and define S = {1, …, j} • Gj ≤ rmax(S) + p(S) • C’j ≥ rmax(S) • Thus Gj ≤ C’j + p(S) ≤ 3C’j • From Lemma 2.1**P|rj| ΣwjCj**• LP: minimize ΣwjCj • Subject to Cj ≥ rj + pj Let C’i denote the LP optimal values Let C*i denote the true optimal values**Algorithm**• Let C’i denote the LP optimal values • Let C*i denote the true optimal values • Greedy Algorithm: • Solve LP for C’i • Solvable in poly time despite exponential size • Prioritize the jobs by C’i values • Let Gi be the resulting completion times**Analysis**• Key result: Gi ≤ (4-1/m)C’i ≤ 4C*i • Fix j and define S = {1, …, j} • Gj ≤ rmax(S) + 1/m p(S – {j}) + pj • = rmax(S) + 1/m p(S) + (1-1/m)pj**Preemption vs Nonpreemption**• Method for converting preemptive schedules into non-preemptive schedules • Effective for minimizing Cj objectives • Prioritize jobs by their preemptive completion times Cjp • Generalization: When α of the job is complete • List schedule these jobs nonpreemptively using this priority**1 machine conversion**• Let Cpi denote any preemptive values • Let Cni denote the nonpreemptive values • Cni ≤ 2 Cpi CPj …**1|rj| ΣCj**• With preemption, we have an optimal solution, SRPT • Nonpreemptive online: • Simulate SRPT and when a job is completed in SRPT, start it in the non-preemptive (or add it to the list to start)