SLIDE 1
A Lasserre-based (1 + ) -approximation for Makespan Scheduling - - PowerPoint PPT Presentation
A Lasserre-based (1 + ) -approximation for Makespan Scheduling - - PowerPoint PPT Presentation
A Lasserre-based (1 + ) -approximation for Makespan Scheduling with Precedence Constraints Elaine Levey and Thomas Rothvoss Makespan Scheduling w. Precedence Constraints Input: Unit-size jobs J with precedence constraints Number m
SLIDE 2
SLIDE 3
Makespan Scheduling w. Precedence Constraints
Input:
◮ Unit-size jobs J with precedence constraints ◮ Number m of identical machines
Goal: Schedule jobs as to minimize makespan 1 2 3 4 5 6 7 8 9 10 11 12 13 machine 1 machine 2 machine m 1 2 3 4 5 6 7 8 9 10 11 12 13 makespan
SLIDE 4
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m
SLIDE 5
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1
SLIDE 6
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 9
SLIDE 7
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 9
SLIDE 8
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 9
SLIDE 9
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 9
SLIDE 10
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 9
SLIDE 11
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 9
SLIDE 12
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 9
SLIDE 13
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9
SLIDE 14
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10
SLIDE 15
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10 11
SLIDE 16
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10 11 12
SLIDE 17
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10 11 12 13
SLIDE 18
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10 11 12 13 Analysis:
◮ There is a chain active at all non-busy times!
SLIDE 19
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10 11 12 13 ≤ OPT Analysis:
◮ There is a chain active at all non-busy times! ◮ Length of chain ≤ OPT
SLIDE 20
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10 11 12 13 ≤ OPT ≤ OPT Analysis:
◮ There is a chain active at all non-busy times! ◮ Length of chain ≤ OPT ◮ Length of busy times ≤ OPT
SLIDE 21
List Scheduling (Graham ’66)
Algorithm: (1) FOR slots at time t = 1 TO ∞ DO: (2) Select any job that has all predecessors completed 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 m 1 2 3 4 5 6 7 8 9 10 11 12 13 ≤ OPT ≤ OPT Analysis:
◮ There is a chain active at all non-busy times! ◮ Length of chain ≤ OPT ◮ Length of busy times ≤ OPT
⇒ 2-apx ((2 − 2
m) for pj = 1; 2 − 1 m for arbitrary pj)
SLIDE 22
A linear programming formulation
T
- t=1
xjt = 1 ∀j ∈ J
- j∈J
xjt ≤ m ∀t ∈ [T]
- t′≤t
xit′ ≤
- t′≤t+1
xjt′ ∀i ≺ j ∀t ∈ [T] 0 ≤ xjt ≤ 1 ∀j ∈ J ∀t ∈ [T] Interpretation: xjt =
- 1
if run j at time t
- therwise
SLIDE 23
A linear programming formulation
T
- t=1
xjt = 1 ∀j ∈ J
- j∈J
xjt ≤ m ∀t ∈ [T]
- t′≤t
xit′ ≤
- t′≤t+1
xjt′ ∀i ≺ j ∀t ∈ [T] 0 ≤ xjt ≤ 1 ∀j ∈ J ∀t ∈ [T] Interpretation: xjt =
- 1
if run j at time t
- therwise
1 2 3 4 5 6 time 1 2 3 4 5 6 1 2 3 4 5 6 M1 M2
◮ Integrality gap: 2 − Θ( 1 m)
SLIDE 24
Main Theorem
Unit size job makespan minimization:
◮ (2 − Θ( 1 m))-apx in poly-time [Graham ’66]
SLIDE 25
Main Theorem
Unit size job makespan minimization:
◮ (2 − Θ( 1 m))-apx in poly-time [Graham ’66] ◮ No (2 − ε)-apx under variant of UGC [Svensson ’10]
SLIDE 26
Main Theorem
Unit size job makespan minimization:
◮ (2 − Θ( 1 m))-apx in poly-time [Graham ’66] ◮ No (2 − ε)-apx under variant of UGC [Svensson ’10]
Open problems:
◮ Is P3 | pj = 1, prec | Cmax NP-hard? [Garey Johnson ’79]
SLIDE 27
Main Theorem
Unit size job makespan minimization:
◮ (2 − Θ( 1 m))-apx in poly-time [Graham ’66] ◮ No (2 − ε)-apx under variant of UGC [Svensson ’10]
Open problems:
◮ Is P3 | pj = 1, prec | Cmax NP-hard? [Garey Johnson ’79] ◮ Is there a PTAS for P3 | pj = 1, prec | Cmax?
[Part of # 1 of “Open problems in Scheduling”; Schuurman, Woeginger ’99]
SLIDE 28
Main Theorem
Unit size job makespan minimization:
◮ (2 − Θ( 1 m))-apx in poly-time [Graham ’66] ◮ No (2 − ε)-apx under variant of UGC [Svensson ’10]
Open problems:
◮ Is P3 | pj = 1, prec | Cmax NP-hard? [Garey Johnson ’79] ◮ Is there a PTAS for P3 | pj = 1, prec | Cmax?
[Part of # 1 of “Open problems in Scheduling”; Schuurman, Woeginger ’99]
Theorem (Levey, R. 15)
The integrality gap of LP is 1 + ε after (log n)O(log log n)-Lasserre rounds (for constants m and ε > 0).
◮ Running time n(log n)O(log log n) ◮ Sherali-Adams suffices
SLIDE 29
Lift-and-project methods K
- int. hull
- f K
b b b
SLIDE 30
Lift-and-project methods K
- int. hull
- f K
b b b b
Las1(K)
b b b
SLIDE 31
Lift-and-project methods K
- int. hull
- f K
b b b b
Las2(K)
b b b
SLIDE 32
Lift-and-project methods K
- int. hull
- f K
b b b b Las3(K)
b b b
SLIDE 33
Lift-and-project methods K
- int. hull
- f K
b b b b
Lasn(K)
b b b
SLIDE 34
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}.
SLIDE 35
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}. ◮ Introduce variables for I ⊆ [n], |I| ≤ t
yI ≡
- i∈I
(xi = 1)
SLIDE 36
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}. ◮ Introduce variables for I ⊆ [n], |I| ≤ t
yI ≡
- i∈I
(xi = 1)
◮ y{i} = xi
SLIDE 37
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}. ◮ Introduce variables for I ⊆ [n], |I| ≤ t
yI ≡
- i∈I
(xi = 1)
◮ y{i} = xi ◮ y∅ = 1
SLIDE 38
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}. ◮ Introduce variables for I ⊆ [n], |I| ≤ t
yI ≡
- i∈I
(xi = 1)
◮ y{i} = xi ◮ y∅ = 1
Round-t Lasserre relaxation
(yI∪J)|I|,|J|≤t
- i∈[n] AℓiyI∪J∪{i} − bℓyI∪J
- |I|,|J|≤t
- ∀ℓ ∈ [m]
y∅ = 1
SLIDE 39
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}. ◮ Introduce variables for I ⊆ [n], |I| ≤ t
yI ≡
- i∈I
(xi = 1)
◮ y{i} = xi ◮ y∅ = 1
Round-t Lasserre relaxation
(yI∪J)|I|,|J|≤t
- i∈[n] AℓiyI∪J∪{i} − bℓyI∪J
- |I|,|J|≤t
- ∀ℓ ∈ [m]
y∅ = 1 moment matrix
SLIDE 40
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}. ◮ Introduce variables for I ⊆ [n], |I| ≤ t
yI ≡
- i∈I
(xi = 1)
◮ y{i} = xi ◮ y∅ = 1
Round-t Lasserre relaxation
(yI∪J)|I|,|J|≤t
- i∈[n] AℓiyI∪J∪{i} − bℓyI∪J
- |I|,|J|≤t
- ∀ℓ ∈ [m]
y∅ = 1 moment matrix slack moment matrix
SLIDE 41
Round-t Lasserre relaxation
◮ Given: K = {x ∈ Rn | Ax ≥ b}. ◮ Introduce variables for I ⊆ [n], |I| ≤ t
yI ≡
- i∈I
(xi = 1)
◮ y{i} = xi ◮ y∅ = 1
Round-t Lasserre relaxation
(yI∪J)|I|,|J|≤t
- i∈[n] AℓiyI∪J∪{i} − bℓyI∪J
- |I|,|J|≤t
- ∀ℓ ∈ [m]
y∅ = 1 moment matrix slack moment matrix
◮ Solvable in time nO(t)mO(1)
SLIDE 42
Inducing on one variable
Lemma
For y ∈ Last(K), t ≥ 1, i ∈ [n], y ∈ conv{z ∈ Last−1(K) | zi ∈ {0, 1}}. y Last 1 y{i} R2n−1
SLIDE 43
Inducing on one variable
Lemma
For y ∈ Last(K), t ≥ 1, i ∈ [n], y ∈ conv{z ∈ Last−1(K) | zi ∈ {0, 1}}. y Last
b b
z(0) z(0)
{i} = 0
z(1) z(1)
{i} = 1
Last−1 1 y{i} R2n−1
SLIDE 44
Inducing on one variable
Lemma
For y ∈ Last(K), t ≥ 1, i ∈ [n], y ∈ conv{z ∈ Last−1(K) | zi ∈ {0, 1}}. y Last
b b
z(0) z(0)
{i} = 0
z(1) z(1)
{i} = 1
Last−1 1 y{i} R2n−1 Operation: “Induce on xi = 1” y Last
b z
zi = 1 Last−1 1 y{i} R2n−1
SLIDE 45
Inducing on one variable
Lemma
For y ∈ Last(K), t ≥ 1, i ∈ [n], y ∈ conv{z ∈ Last−1(K) | zi ∈ {0, 1}}. y Last
b b
z(0) z(0)
{i} = 0
z(1) z(1)
{i} = 1
Last−1 1 y{i} R2n−1 Operation: “Induce on xi = 1” y Last
b z
zi = 1 Last−1 1 y{i} R2n−1
◮ Observation: Conditioning only shrinks support!
SLIDE 46
Partition
T
SLIDE 47
Partition
T
◮ Partition time horizon into binary family
SLIDE 48
Partition
T
◮ Partition time horizon into binary family
SLIDE 49
Partition
T
◮ Partition time horizon into binary family
SLIDE 50
Partition
T . . . log(T)
◮ Partition time horizon into binary family
SLIDE 51
Partition
T . . . log(T) supp(j) supp(j′) supp(j′′)
◮ Partition time horizon into binary family
SLIDE 52
Partition
T . . . log(T)
◮ Partition time horizon into binary family ◮ Assign jobs to min interval containing support
SLIDE 53
The algorithm
. . . . . . time
SLIDE 54
The algorithm
. . . . . . O(log log n)2 time (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T
SLIDE 55
The algorithm
. . . . . . O(log log n)2 time (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T
SLIDE 56
The algorithm
. . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs
SLIDE 57
The algorithm
I . . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs
SLIDE 58
The algorithm
I . . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs
SLIDE 59
The algorithm
I . . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs
SLIDE 60
The algorithm
I . . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs
SLIDE 61
The algorithm
I . . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs
SLIDE 62
The algorithm
I . . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs
SLIDE 63
The algorithm
. . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs (4) Schedule top jobs
SLIDE 64
The algorithm
. . . . . . O(log log n) time bottom middle top (1) Apply conditioning until max chain length of jobs in first O(log log n)2 levels down to ε′T (2) Among first O(log log n)2 levels pick O(log log n) of consecutive middle levels and discard jobs (3) For each interval I directly below middle levels: Recursively call algorithm I with {j | supp(j) ⊆ I} → valid schedule for bottoms jobs (4) Schedule top jobs
SLIDE 65
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T.
SLIDE 66
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T.
I I1 I2
◮ Pick an interval I
SLIDE 67
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T.
I I1 I2
◮ Pick an interval I and consider jobs assigned to it.
SLIDE 68
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T. j ≥ δ|I|
I I1 I2
◮ Pick an interval I and consider jobs assigned to it. ◮ Consider j with δ|I| successors
SLIDE 69
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T. j ≥ δ|I|
I I1 I2
◮ Pick an interval I and consider jobs assigned to it. ◮ Consider j with δ|I| successors ⇒ condition on xj,I2 = 1
SLIDE 70
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T. j ≥ δ|I|
I I1 I2
◮ Pick an interval I and consider jobs assigned to it. ◮ Consider j with δ|I| successors ⇒ condition on xj,I2 = 1 ◮ Needed ≤ 1 δ times per interval
SLIDE 71
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T. j ≥ δ|I|
I I1 I2
◮ Pick an interval I and consider jobs assigned to it. ◮ Consider j with δ|I| successors ⇒ condition on xj,I2 = 1 ◮ Needed ≤ 1 δ times per interval; 2O(log log n)2 intervals
SLIDE 72
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T. j ≥ δ|I|
I I1 I2
◮ Pick an interval I and consider jobs assigned to it. ◮ Consider j with δ|I| successors ⇒ condition on xj,I2 = 1 ◮ Needed ≤ 1 δ times per interval; 2O(log log n)2 intervals ◮ Loose ≤ 1 δ · 2O(log log n)2 Lasserre-rounds
SLIDE 73
Reducing chain length
Lemma
After conditioning 2O(log log n)2 · 1
ε′ times, maximum length chain
among top jobs is ≤ ε′ · T. j ≥ δ|I|
I I1 I2
◮ Pick an interval I and consider jobs assigned to it. ◮ Consider j with δ|I| successors ⇒ condition on xj,I2 = 1 ◮ Needed ≤ 1 δ times per interval; 2O(log log n)2 intervals ◮ Loose ≤ 1 δ · 2O(log log n)2 Lasserre-rounds ◮ Longest chain in top jobs: δT · O(log log n)2
SLIDE 74
Scheduling top jobs (I) . . .
j top: bottom:
SLIDE 75
Scheduling top jobs (I) . . .
j top: bottom:
SLIDE 76
Scheduling top jobs (I)
◮ For top job j set
[release time(j), deadline(j)] := fully contained bottom intervals
. . .
j top: bottom: release time(j) deadline(j)
SLIDE 77
Scheduling top jobs (I)
◮ For top job j set
[release time(j), deadline(j)] := fully contained bottom intervals
◮ Set Q := polylog(n) as top/bottom gap
. . .
j top: bottom: release time(j) deadline(j) Q
SLIDE 78
Scheduling top jobs (I)
Lemma
Can assign top jobs respecting release times/deadlines, ignoring
- prec. constraints & discarding 2Tm
Q
jobs.
◮ For top job j set
[release time(j), deadline(j)] := fully contained bottom intervals
◮ Set Q := polylog(n) as top/bottom gap
. . .
j top: bottom: release time(j) deadline(j) Q
SLIDE 79
Scheduling top jobs (I)
Lemma
Can assign top jobs respecting release times/deadlines, ignoring
- prec. constraints & discarding 2Tm
Q
jobs.
◮ For top job j set
[release time(j), deadline(j)] := fully contained bottom intervals
◮ Set Q := polylog(n) as top/bottom gap ◮ Hall’s Theorem: Loss for jobs J′ is 2 Q-fraction of slots
. . .
top: bottom: Q
SLIDE 80
EDF (1)
Setting: time
SLIDE 81
EDF (1)
Setting:
◮ Jobs with precedence constraints
time
SLIDE 82
EDF (1)
Setting:
◮ Jobs with precedence constraints ◮ Maximum chain length C
length C time
SLIDE 83
EDF (1)
Setting:
◮ Jobs with precedence constraints ◮ Maximum chain length C ◮ Release times, deadlines only at beginning/end of p blocks
length C time 1 2 p
SLIDE 84
EDF (1)
Setting:
◮ Jobs with precedence constraints ◮ Maximum chain length C ◮ Release times, deadlines only at beginning/end of p blocks ◮ Capacity cap(t) ∈ {0, . . . , m}
length C time 1 2 p
SLIDE 85
EDF (1)
Setting:
◮ Jobs with precedence constraints ◮ Maximum chain length C ◮ Release times, deadlines only at beginning/end of p blocks ◮ Capacity cap(t) ∈ {0, . . . , m} ◮ There exists a schedule ignoring precedence constraints
length C time 1 2 p
SLIDE 86
EDF (1)
Setting:
◮ Jobs with precedence constraints ◮ Maximum chain length C ◮ Release times, deadlines only at beginning/end of p blocks ◮ Capacity cap(t) ∈ {0, . . . , m} ◮ There exists a schedule ignoring precedence constraints
length C time 1 2 p Earliest Deadline First: (1) FOR t = 1 TO T DO
(2) Process available job with minimum deadline (3) If any job not done by deadline discard it
SLIDE 87
EDF (2)
Analysis: 1 2 p possible release times / deadlines time
SLIDE 88
EDF (2)
Analysis:
◮ Suppose in some interval I we discard K jobs
> K discarded
SLIDE 89
EDF (2)
Analysis:
◮ Suppose in some interval I we discard K jobs ◮ Assume w.l.o.g. last discarded job had highest deadline
> K discarded
SLIDE 90
EDF (2)
Analysis:
◮ Suppose in some interval I we discard K jobs ◮ Assume w.l.o.g. last discarded job had highest deadline ◮ Take maximum interval [t1, t2] ⊇ I so that in each block, there
are ≤ C idle times > K discarded ≤ C idle times each > C idle times t1 t2
SLIDE 91
EDF (2)
Analysis:
◮ Suppose in some interval I we discard K jobs ◮ Assume w.l.o.g. last discarded job had highest deadline ◮ Take maximum interval [t1, t2] ⊇ I so that in each block, there
are ≤ C idle times
◮ All jobs scheduled or discarded in [t1, t2] have both release +
deadline in [t1, t2]. > K discarded ≤ C idle times each > C idle times t1 t2
SLIDE 92
EDF (2)
Analysis:
◮ Suppose in some interval I we discard K jobs ◮ Assume w.l.o.g. last discarded job had highest deadline ◮ Take maximum interval [t1, t2] ⊇ I so that in each block, there
are ≤ C idle times
◮ All jobs scheduled or discarded in [t1, t2] have both release +
deadline in [t1, t2].
◮ K ≤ idle slots in [t1, t2] ≤ pmC (feasibility w/o prec.-constr.)
> K discarded ≤ C idle times each > C idle times t1 t2
SLIDE 93
The end
Open problems:
◮ Are c(ε, m)-Lasserre rounds enough? ◮ .. or at least (log(n))c(ε,m) ◮ What about Pm | prec | Cmax (i.e. arbitrary running times)?
SLIDE 94