1/37
University of Waterloo CO 454
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
pj
Processing time for job j
dj
Due date for job j
Cj
Completion time for job j
Cmax
Makespan, i.e. completion time of last job
rj
release time (earliest starting time)
wj
Weight of job j
Preemption
the scheduler is allowed to interrupt the processing of a job (preempt) at any point in time and put a different job on the machine instead
Three field notation α∣β∣γ
α Machine environment (e.g. number of machines
β job characteristics and side constraints (e.g. precedence constraints, routing constraints, etc. Note: can be empty
γ objective criterion to be minimized
Routing constraint
In a job shop, each job $ is proccesed by a subset of the machines, in a specific sequence.
In a job shop, each machine has it's own routing constraint
Precedence constraint
Some job i must be completed before some job j can be processed. The precedence constraints of a valid set of jobs is represented by a DAG.
Non-delay/greedy schedule
no machine is kept idle while a task is waiting for processing (i.e. kept idle while a job is available to run on that idle machine)
Unforced idleness
A time interval when there exists an idle machine M as well as a job j that can run on M.
note: this is not referring to waiting for release dates
Non-delay property
No non-delay schedule has unforced idleness
What is the optimal approach for 1∣∣∑Cj? How is this proved?
SPT (shortest processing time first). Proven with an exchange argument, here it was Adjacent Pairwise Exchange.
Give the general format for exchange arguments in this course (largely for schedule optimality)
Establish an optimal adversary sequence that doesn’t follow your rule.
Establish a reference sequence that swaps 2 jobs in the adversary sequence
Often we just use adjacent jobs, using API (Adjacent Pairwise Exchange)
Do some calculations on the sequence (adjusting for the due date changes, lateness, whatever) and show that the reference sequence is at least as good as or strictly better (depending on the problem) than the adversary. Contradiction.
Regular objective function γ
Monotonically increasing (non-decreasing) with respect to completion times
Describe the optimal approach for 1∣∣∑wjcj, and how to prove it?
Weighted shortest processing time (WSPT, or Smith’s rule), order jobs by decreasing ratios pjwj . Proven with API to derive contradiction.
Define the “value” of a chain in 1∣chains∣∑wjCj
sum up the weights, divide by the sum of the processing times
What doe the notation [k] refer to
The set of numbers {1,2,…,k}
Define rho factor/ρ−factor in the context of job chains

Describe the simple algorithm used to solve 1∣chains∣∑wjCj
Whenever a machine is free
Pick the remaining chain with the highest ρ−factor
Process the jobs of that chain up to and including its determining job ℓ∗
the remaining tail becomes a new chain with its own newly computed ρ−factor
Define the “determining job” ℓ∗ in the context of parallel chains
The index of the chain achieving the maximum ρ−factor
What is the optimal approach for 1∣∣Lmax (max lateness), and how is it proven?
The EDD rule is optimal — order jobs by increasing due dates
Proven with exchange argument - apply API to "optimal" schedule S that violates EDD.
What is 1∣prec∣hmax? What is the optimal approach?
We have n jobs with no precedence constraints, and non-decreasing functions of completion timesh1,h2,…hn. hmax=max{h1(C1),h2(C2),…,hn(Cn)}. Note that this is for a single machine, so the completion time of the last job is always ∑pj
Optimal approach: Least Cost Last (LCL), where you go backwards from ∑pj to 0 and schedule the job that is cheapest to place last at current time t each time.
Explain the LCL approach for 1∣prec∣hmax
Least Cost Last (LCL) is a simply polytime DP algorithm, where you go backwards from ∑pj to 0 and schedule the job that is cheapest to place last at current time t each time.
Name the three main types of approx
α−approx algos
PTAs
FPTAs
Explain α−approx algorithms
Algorithm that gives solution S such that cost(S)≤α⋅OPT
Explain PTAs (polytime approximations)
For any \varepsilon > 0, we can find solution S:cost(S)≤(1+ε)⋅OPT with running time poly(n)
could be growing exponentially or worse with respect to 1/ε
Explain FPTAs (fully polytime approximations), and the 3 main things we need for it
For any \varepsilon > 0, we can find solution S:cost(S)≤(1+ε)⋅OPT with running time poly(n,ε1)
We need
Feasibility: S’ satisfies size(S’)≤b
Approximation: profit(S’)≥(1−ε)OPT for any \varepsilon > 0
Polynomial running time in poly(n,1/ε)
What method is used for developing FPTAS for knapsack, and some other NP complete problems?
See the value that you intend to scale, and scale each value by a parameter ρ=ε⋅max for that val(1/n)
(divide by parameter and truncate it so the error is 1. bounded and 2. close to original (rounding error per item is at most scaling parameter ρ)
Note that FPTAS for knapsack runs in O(n3/ε)
Weakly vs strongly NP hard
We can find FPTAS for weakly NP hard (where difficulty comes more from large numbers) but not strongly NP hard.
Describe Moore-Hodgson for 1∣∣∑Uj.
Want to minimize total number of late jobs. Will do so using DP.
Repeat
scan EDD sequence σ=(σ1,σ2…σℓ) left to right
find smallest k such that job σk is late (i.e. c_{\sigma_{k}} > d_{\sigma_{k}}, makesum up to that job is greater than due date of that job)
if no late job found: stop
else
among σ1,σ2…σk, find index m with pσm=maxi∈[k]pσi
so find job with max processing time
note: this has nothing to do with the late job, it's just in the sequence prefix k
intuition: removing longest processing time job frees the most time for the remaining jobs
reject σm (remove it from σ)
Output: σ,ζ, where ζ is any permutation off all rejected jobs.
Proven with the key lemma and induction.
What is the key lemma for Moore-Hodgson, and how do you prove it?
Let m be the job rejected in iteration #1.
Then there is an optimal schedule that rejects m.
Proven via an exchange argument.
What is the dominance lemma for total tardiness
Suppose jobs j and khave Pj≤Pk and dj≤dk
Then ∃ optimal sequence in which j precedes k.
Proved with standard exchange argument.
What does the notation [a]⊕
max(0,α)
What is the DP shifting lemma for the DP algorithm for
Assume pj's are distinct, and let k be the job with max processing time.
There is an integer δ with δ∈{0,1,…,n−k} such that there is an optimal sequence S∗ such that job k is preceded by all jobs j with j≤k+δ, and job k is followed by all jobs j with j > k+\delta.
Describe the DP algorithm for Total Tardiness 1∣∣∑Tj
S≡ length of sub-interval following job k
(DP tries all values of δ=0,1,2…,n−k)
Lawler showed that such a sub-interval exists.
J(s,f,k)= set of jobs from a sub-interval where
s= start index of sub-interval
f= last index of sub-interval
k is job such that pk≥pj∀j∈J(⋅)
k is excluded from J(⋅)
V(J(⋅),t)≡ optimal value (minimum tardiness) for subset J(⋅) with start time t
DP recurrence:
V(J(s,f,k),t)=minδ=0,1,…,n−kV(J(s,ℓ+δ,ℓ),t)+[Cℓ(δ)−dℓ]⊕+V(J(ℓ+δ+1,f,ℓ),Cℓ(δ))
key idea: we split the interval into two based on the job with the max processing time
Where
ℓ=job in J(s,f,k) with max processing time
Cℓ(δ)= completion time of ℓ for sub-interval of length =δ
[Cℓ(S)−dℓ]⊕= Tardiness of job ℓ
![<p>$$S \equiv$$ length of sub-interval following job $$k$$<br>(DP tries all values of $$\delta=0,1,2\dots ,n-k$$)</p><p>Lawler showed that such a sub-interval exists.</p><p>$$J(s,f,k)=$$ set of jobs from a sub-interval where</p><ul><li><p>$$s=$$ start index of sub-interval</p></li><li><p>$$f=$$ last index of sub-interval</p></li><li><p>$$k$$ is job such that $$p_{k} \geq p_{j} \; \forall j\in J(\cdot)$$</p></li><li><p>$$k$$ is excluded from $$J(\cdot)$$</p></li></ul><p>$$V(J(\cdot), t) \equiv$$ optimal value (minimum tardiness) for subset $$J(\cdot)$$ with start time $$t$$</p><p>DP recurrence:</p><p>$$V(J(s,f,k), t)=\text{min}_{\delta=0,1,\dots,n-k}\;V(J(s, \ell+\delta, \ell), t) + [C_{\ell}(\delta)-d_{\ell}]^{\oplus} + V(J(\ell+\delta+1, f, \ell), C_{\ell}(\delta))$$</p><p><mark>key idea: we split the interval into two based on the job with the max processing time</mark></p><p>Where</p><ul><li><p>$$\ell = \text{job in }J(s,f,k) \text{ with max processing time}$$</p></li><li><p>$$C_{\ell}(\delta)= \text{ completion time of }\ell$$ for sub-interval of length $$=\delta$$</p></li><li><p>$$[C_{\ell}(S)-d_{\ell}]^{\oplus}=$$ Tardiness of job $$\ell$$</p></li></ul><p></p>](https://assets.knowt.com/user-attachments/f7defc13-141e-43cc-988f-b352809390bf.png)
What is the FPTAS for Total Tardiness 1∣∣∑Tj
Scale processing times and due dates by scaling factor K, with K=n(n+1)2ε
the reasoning for this choice can be seen in the error bounding calculations