Minimum Energy Scheduling Marek Chrobak University of California, - - PowerPoint PPT Presentation

minimum energy scheduling
SMART_READER_LITE
LIVE PREVIEW

Minimum Energy Scheduling Marek Chrobak University of California, - - PowerPoint PPT Presentation

Minimum Energy Scheduling Marek Chrobak University of California, Riverside How to Keep Sheep Warm in a Snow Storm? How to Keep Sheep Warm in a Snow Storm? n sheep on a line huddle together to stay warm Each sheep is chained


slide-1
SLIDE 1

Marek Chrobak

University of California, Riverside

Minimum Energy Scheduling

slide-2
SLIDE 2

How to Keep Sheep Warm in a Snow Storm?

slide-3
SLIDE 3
  • n sheep on a line huddle together to stay warm
  • Each sheep is chained
  • Objective: group sheep to minimize # of gaps

A B C D F G H

How to Keep Sheep Warm in a Snow Storm?

A C B D F G H E

E

slide-4
SLIDE 4
  • n sheep on a line huddle together to stay warm
  • Each sheep is chained
  • Objective: group sheep to minimize # of gaps

A B C D F G H

How to Keep Sheep Warm in a Snow Storm?

A C B D F G H E

E

slide-5
SLIDE 5
  • n sheep on a line huddle together to stay warm
  • Each sheep is chained
  • Objective: group sheep to minimize # of gaps

A B C D F G H

How to Keep Sheep Warm in a Snow Storm?

A C B D F G H E

E

slide-6
SLIDE 6
  • n sheep on a line huddle together to stay warm
  • Each sheep is chained
  • Objective: group sheep to minimize # of gaps

A B C D F G H

How to Keep Sheep Warm in a Snow Storm?

A C B D F G H E

E

slide-7
SLIDE 7
  • n sheep on a line huddle together to stay warm
  • Each sheep is chained
  • Objective: group sheep to minimize # of gaps

A B C D F G H

How to Keep Sheep Warm in a Snow Storm?

A C B D F G H E

E

slide-8
SLIDE 8
  • n sheep on a line huddle together to stay warm
  • Each sheep is chained
  • Objective: group sheep to minimize # of gaps

A B C D F G H

How to Keep Sheep Warm in a Snow Storm?

A C B D F G H E

E

slide-9
SLIDE 9

partial grouping 1 partial grouping 2 3

Intuition -- why naive algorithms can’ t work ...

How to Keep Sheep Warm in a Snow Storm?

slide-10
SLIDE 10

partial grouping 1 partial grouping 2 3

Intuition -- why naive algorithms can’ t work ...

How to Keep Sheep Warm in a Snow Storm?

grouping 1 is better, so far ...

slide-11
SLIDE 11

partial grouping 1 partial grouping 2 3

Intuition -- why naive algorithms can’ t work ...

How to Keep Sheep Warm in a Snow Storm?

grouping 1 is better, so far ...

slide-12
SLIDE 12

partial grouping 1 partial grouping 2 3

Intuition -- why naive algorithms can’ t work ...

How to Keep Sheep Warm in a Snow Storm?

grouping 1 is better, so far ...

slide-13
SLIDE 13

partial grouping 1 partial grouping 2 3

Intuition -- why naive algorithms can’ t work ...

How to Keep Sheep Warm in a Snow Storm?

grouping 1 is better, so far ... but only grouping 2 could be extensible to global optimum tradeoff: # gaps vs gap sizes

slide-14
SLIDE 14
  • [aj,bj] = range of sheep j
  • assume b1 ≤ b2 ≤ ... ≤ bn
  • a gap with respect to interval [u,v]:
  • internal gap or
  • initial gap or
  • final gap

u v

3 gaps w.r.t. [u,v]

How to Keep Sheep Warm in a Snow Storm?

slide-15
SLIDE 15

GapsF(u,v) =

A B C D E F G

u v

How to Keep Sheep Warm in a Snow Storm?

Instk(u,v) = all sheep j ∊ {1,2,...,k} for which aj ∈ [u,v] Gapsk(u,v) = min. number of gaps of Instk(u,v) w.r.t [u,v]

A C B D E F G

?

slide-16
SLIDE 16

GapsF(u,v) =

A B C D E F G

u v

How to Keep Sheep Warm in a Snow Storm?

Instk(u,v) = all sheep j ∊ {1,2,...,k} for which aj ∈ [u,v] Gapsk(u,v) = min. number of gaps of Instk(u,v) w.r.t [u,v]

A C B D E F

?

slide-17
SLIDE 17

GapsF(u,v) =

A B C D E F G

u v

How to Keep Sheep Warm in a Snow Storm?

Instk(u,v) = all sheep j ∊ {1,2,...,k} for which aj ∈ [u,v] Gapsk(u,v) = min. number of gaps of Instk(u,v) w.r.t [u,v]

C B D E F

?

slide-18
SLIDE 18

GapsF(u,v) =

A B C D E F G

u v

How to Keep Sheep Warm in a Snow Storm?

Instk(u,v) = all sheep j ∊ {1,2,...,k} for which aj ∈ [u,v] Gapsk(u,v) = min. number of gaps of Instk(u,v) w.r.t [u,v]

B D E F

?

slide-19
SLIDE 19

GapsF(u,v) =

A B C D E F G

u v

How to Keep Sheep Warm in a Snow Storm?

Instk(u,v) = all sheep j ∊ {1,2,...,k} for which aj ∈ [u,v] Gapsk(u,v) = min. number of gaps of Instk(u,v) w.r.t [u,v]

B D E F

?

slide-20
SLIDE 20

GapsF(u,v) =

A B C D E F G

u v

How to Keep Sheep Warm in a Snow Storm?

Instk(u,v) = all sheep j ∊ {1,2,...,k} for which aj ∈ [u,v] Gapsk(u,v) = min. number of gaps of Instk(u,v) w.r.t [u,v]

B D E F

1

slide-21
SLIDE 21

Recurrence for Gapsk(u,v)

How to Keep Sheep Warm in a Snow Storm?

slide-22
SLIDE 22

Recurrence for Gapsk(u,v) Case 1: ak ∉ [u,v]. Then k ∉ Instk(u,v), so Gapsk(u,v) = Gapsk-1(u,v)

How to Keep Sheep Warm in a Snow Storm?

slide-23
SLIDE 23

Recurrence for Gapsk(u,v) Case 1: ak ∉ [u,v]. Then k ∉ Instk(u,v), so Gapsk(u,v) = Gapsk-1(u,v) Case 2: ak ∈ [u,v], so k ∈ Instk(u,v). If k is scheduled at time t then Instk(u,v) = {k} ∪ Instk-1(u,t) ∪ Instk-1(t+1,v)

How to Keep Sheep Warm in a Snow Storm?

slide-24
SLIDE 24

Recurrence for Gapsk(u,v) Case 1: ak ∉ [u,v]. Then k ∉ Instk(u,v), so Gapsk(u,v) = Gapsk-1(u,v) Case 2: ak ∈ [u,v], so k ∈ Instk(u,v). If k is scheduled at time t then Instk(u,v) = {k} ∪ Instk-1(u,t) ∪ Instk-1(t+1,v)

How to Keep Sheep Warm in a Snow Storm?

Philippe’ s Partition Principle: Wlog grouping looks like this:

k

u v t

Instk-1(u,t) = Instk-1(u,t-1) Instk-1(t+1,v) (in particular, no ri at t, i ≠ k)

slide-25
SLIDE 25

Case 2: ak ∈ [u,v], proof of PPP. Fix an optimal grouping with maximum t (position of k)

How to Keep Sheep Warm in a Snow Storm?

slide-26
SLIDE 26

Case 2: ak ∈ [u,v], proof of PPP.

j k

u v

k j

t

If j ∈ Instk-1(t+1,v): Fix an optimal grouping with maximum t (position of k)

How to Keep Sheep Warm in a Snow Storm?

slide-27
SLIDE 27

Case 2: ak ∈ [u,v], proof of PPP.

j k

u v

k j

t

If j ∈ Instk-1(t+1,v): Fix an optimal grouping with maximum t (position of k)

j k

If j ∈ Instk-1(u,t):

u v

k j

t

How to Keep Sheep Warm in a Snow Storm?

slide-28
SLIDE 28

Case 2: ak ∈ [u,v], proof of PPP.

j k

u v

k j

t

If j ∈ Instk-1(t+1,v): Fix an optimal grouping with maximum t (position of k)

j k

If j ∈ Instk-1(u,t):

u v

k j

t

How to Keep Sheep Warm in a Snow Storm?

slide-29
SLIDE 29

j k

u v

k j

t

If j ∈ Instk-1(t+1,v):

j k

If j ∈ Instk-1(u,t-1):

u v

k j

t

How to Keep Sheep Warm in a Snow Storm?

Fix an optimal grouping with maximum t (position of k) Case 2: ak ∈ [u,v], proof of PPP.

slide-30
SLIDE 30

j k

u v

k j

t

If j ∈ Instk-1(t+1,v):

j k

If j ∈ Instk-1(u,t-1):

u v

k j

t

How to Keep Sheep Warm in a Snow Storm?

Fix an optimal grouping with maximum t (position of k) Case 2: ak ∈ [u,v], proof of PPP.

slide-31
SLIDE 31

How to Keep Sheep Warm in a Snow Storm?

k

u v t

Instk-1(u,t) = Instk-1(u,t-1) Instk-1(t+1,v) Philippe’ s Partition Principle: Wlog grouping looks like this: Recurrence for Gapsk(u,v) Case 1: ak ∉ [u,v]. Then k ∉ Instk(u,v), so Gapsk(u,v) = Gapsk-1(u,v) Case 2: ak ∈ [u,v], so k ∈ Instk(u,v). If k is scheduled at time t then Instk(u,v) = {k} ∪ Instk-1(u,t) ∪ Instk-1(t+1,v)

slide-32
SLIDE 32

So Gapsk(u,v) = Gapsk-1(u,t-1) + Gapsk-1(t+1,v)

How to Keep Sheep Warm in a Snow Storm?

k

u v t

Instk-1(u,t) = Instk-1(u,t-1) Instk-1(t+1,v) Philippe’ s Partition Principle: Wlog grouping looks like this: Recurrence for Gapsk(u,v) Case 1: ak ∉ [u,v]. Then k ∉ Instk(u,v), so Gapsk(u,v) = Gapsk-1(u,v) Case 2: ak ∈ [u,v], so k ∈ Instk(u,v). If k is scheduled at time t then Instk(u,v) = {k} ∪ Instk-1(u,t) ∪ Instk-1(t+1,v)

slide-33
SLIDE 33

So Gapsk(u,v) = Gapsk-1(u,t-1) + Gapsk-1(t+1,v)

How to Keep Sheep Warm in a Snow Storm?

k

u v t

Instk-1(u,t) = Instk-1(u,t-1) Instk-1(t+1,v) Philippe’ s Partition Principle: Wlog grouping looks like this: Recurrence for Gapsk(u,v) Case 1: ak ∉ [u,v]. Then k ∉ Instk(u,v), so Gapsk(u,v) = Gapsk-1(u,v) Case 2: ak ∈ [u,v], so k ∈ Instk(u,v). If k is scheduled at time t then Instk(u,v) = {k} ∪ Instk-1(u,t) ∪ Instk-1(t+1,v) What’ s t? Try all !!!

slide-34
SLIDE 34

How to Keep Sheep Warm in a Snow Storm?

Output Gapsn( amin-1 , bmax+1 ) Algorithm B0: if ak ∉ [u,v] then Gapsk(u,v) = Gapsk-1(u,v) if ak ∈ [u,v] then Gapsk(u,v) = mint { Gapsk-1(u,t-1) + Gapsk-1(t+1,v) } where ak ≤ t ≤ min(v,bt)

slide-35
SLIDE 35

Time O( (n k’ s)⋅(R u’ s)⋅(R v’ s)⋅(R t’ s) ) = O(nR3) for R = bmax - amin

How to Keep Sheep Warm in a Snow Storm?

Output Gapsn( amin-1 , bmax+1 ) Algorithm B0: if ak ∉ [u,v] then Gapsk(u,v) = Gapsk-1(u,v) if ak ∈ [u,v] then Gapsk(u,v) = mint { Gapsk-1(u,t-1) + Gapsk-1(t+1,v) } where ak ≤ t ≤ min(v,bt)

slide-36
SLIDE 36

Time O( (n k’ s)⋅(R u’ s)⋅(R v’ s)⋅(R t’ s) ) = O(nR3) for R = bmax - amin Call set A a minimizer set if choosing u,v,t from A does not increase the solution Can we find a smaller minimizer set?

How to Keep Sheep Warm in a Snow Storm?

Output Gapsn( amin-1 , bmax+1 ) Algorithm B0: if ak ∉ [u,v] then Gapsk(u,v) = Gapsk-1(u,v) if ak ∈ [u,v] then Gapsk(u,v) = mint { Gapsk-1(u,t-1) + Gapsk-1(t+1,v) } where ak ≤ t ≤ min(v,bt)

slide-37
SLIDE 37

How to Keep Sheep Warm in a Snow Storm?

Reducing minimizer sets

D C A B k

A B C D k

slide-38
SLIDE 38

How to Keep Sheep Warm in a Snow Storm?

Reducing minimizer sets shift each group right:

D C A B k

A B C D k

slide-39
SLIDE 39

How to Keep Sheep Warm in a Snow Storm?

Reducing minimizer sets shift each group right:

D C A B k

A B C D k

bA±z, z ≤ n

slide-40
SLIDE 40

How to Keep Sheep Warm in a Snow Storm?

Reducing minimizer sets shift each group right:

D C A B k

A B C D k

bA±z, z ≤ n So {bj±z’ s} = {bj±z : j, z ≤ n} is a minimizer set for t | {bj±z’ s} | = O(n2)

slide-41
SLIDE 41

How to Keep Sheep Warm in a Snow Storm?

Choose u,v,t from {bj±z’ s} So running time = O(n⋅n2⋅n2⋅n2 ) = O(n7) [Baptiste, SODA’06]

Output Gapsn( amin-1 , bmax+1 ) Algorithm B1: if ak ∉ [u,v] then Gapsk(u,v) = Gapsk-1(u,v) if ak ∈ [u,v] then Gapsk(u,v) = mint { Gapsk-1(u,t-1) + Gapsk-1(t+1,v) } where ak ≤ t ≤ min(v,bt)

slide-42
SLIDE 42

Minimum Energy Scheduling

  • Overview
slide-43
SLIDE 43

Minimum Energy Scheduling

Instance: collection of n jobs

  • job j has release time rj, deadline dj, processing time pj
  • 1 unit of processing costs 1 unit of energy
  • turning the system on costs L units of energy

Schedule = when each job is processed and when the processor is on Objective: Compute a preemptive schedule that minimizes the total energy usage (assume instance is feasible)

slide-44
SLIDE 44

Minimum Energy Scheduling

Instance: collection of n jobs

  • job j has release time rj, deadline dj, processing time pj
  • 1 unit of processing costs 1 unit of energy
  • turning the system on costs L units of energy

Schedule = when each job is processed and when the processor is on Objective: Compute a preemptive schedule that minimizes the total energy usage (assume instance is feasible)

> L ≤ L ≤ L ≤ L > L

idle busy long short

Structure of an optimal schedule:

slide-45
SLIDE 45

Minimum Energy Scheduling

Instance: collection of n jobs

  • job j has release time rj, deadline dj, processing time pj
  • 1 unit of processing costs 1 unit of energy
  • turning the system on costs L units of energy

Schedule = when each job is processed and when the processor is on Objective: Compute a preemptive schedule that minimizes the total energy usage (assume instance is feasible)

> L ≤ L ≤ L ≤ L > L

idle busy long short

Structure of an optimal schedule:

slide-46
SLIDE 46

Minimum Energy Scheduling

Instance: collection of n jobs

  • job j has release time rj, deadline dj, processing time pj
  • 1 unit of processing costs 1 unit of energy
  • turning the system on costs L units of energy

Schedule = when each job is processed and when the processor is on Objective: Compute a preemptive schedule that minimizes the total energy usage (assume instance is feasible)

> L ≤ L ≤ L ≤ L > L

idle busy long short

Structure of an optimal schedule:

E = ∑gaps g min( length(g) , L )

  • bjective function (ignore green time):
slide-47
SLIDE 47

Minimum Energy Scheduling

What sheep have to do with it? For L = 1 and all pj = 1 :

  • E = # of gaps
  • =
  • rj = aj and dj = bj

j

slide-48
SLIDE 48

Minimum Energy Scheduling

What sheep have to do with it? For L = 1 and all pj = 1 :

  • E = # of gaps
  • =
  • rj = aj and dj = bj

j

So the case (unit jobs, L ≤ 1) can be solved in time O(n7)

slide-49
SLIDE 49

Minimum Energy Scheduling

What’ s known?

# proc. L pj assumption time 1 any 1 O(n7) [B’06] O(n4) [BCD’08] 1 any any O(n5) [BCD’08] m any 1 O(n7m5) [DG...’07] 1 1 any

agreeable

O(nlogn) [GJS’10] 1 any 1

agreeable

O(n3) [GJS’10] m 1 1

agreeable

O(n3m2] [GJS’10]

Posed as open: Sviridenko [05], Irani, Pruhs [05]

[B’06] = Baptiste [BCD’08] = Baptiste, Chrobak, Dürr [DG...’07] = Demaine, Ghodsi, Hajiaghayi, Sayedi-Roshkhar, Zadimoghaddam [GJS’10] = Gururaj, Jalan, Stein

slide-50
SLIDE 50

Minimum Energy Scheduling

What’ s known?

# proc. L pj assumption time 1 any 1 O(n7) [B’06] O(n4) [BCD’08] 1 any any O(n5) [BCD’08] m any 1 O(n7m5) [DG...’07] 1 1 any

agreeable

O(nlogn) [GJS’10] 1 any 1

agreeable

O(n3) [GJS’10] m 1 1

agreeable

O(n3m2] [GJS’10]

Posed as open: Sviridenko [05], Irani, Pruhs [05]

[B’06] = Baptiste [BCD’08] = Baptiste, Chrobak, Dürr [DG...’07] = Demaine, Ghodsi, Hajiaghayi, Sayedi-Roshkhar, Zadimoghaddam [GJS’10] = Gururaj, Jalan, Stein

ri < rj ⇔ dj < dj

slide-51
SLIDE 51

Minimum Energy Scheduling

  • Techniques
slide-52
SLIDE 52

Minimum Energy Scheduling

Main techniques:

✴ Philippe’

s partitioning trick √

✴ Reducing the minimizer sets ✴ Inversion trick (“large” parameter ⇔ “small” value) ✴ O(n2)-time reduction: Energy ≼ Gaps

slide-53
SLIDE 53

Reducing Minimizer Sets (L=1, pj=1)

k

u v t

Instk-1(u,t) Instk-1(t+1,v)

Reminder: u,v,t ∈ {dj±z} , | {dj±z} | = O(n2)

Output Gapsn( rmin-1 , dmax+1 ) Algorithm B1-L1P1: if rk ∉ [u,v-1] then Gapsk(u,v) = Gapsk-1(u,v) if rk ∈ [u,v-1] then Gapsk(u,v) = mint { Gapsk-1(u,t) + Gapsk-1(t+1,v) } where rk ≤ t < min(v,dt)

slide-54
SLIDE 54

Reducing Minimizer Sets (L=1, pj=1)

Three WLOG observations:

k

u v t

Instk-1(u,t) Instk-1(t+1,v)

slide-55
SLIDE 55

Reducing Minimizer Sets (L=1, pj=1)

Three WLOG observations:

k

u v t

Instk-1(u,t) Instk-1(t+1,v)

  • t is maximum possible
slide-56
SLIDE 56

Reducing Minimizer Sets (L=1, pj=1)

Three WLOG observations:

k

u v t

Instk-1(u,t) Instk-1(t+1,v)

  • t is maximum possible
  • all deadlines are different
slide-57
SLIDE 57

Reducing Minimizer Sets (L=1, pj=1)

Three WLOG observations:

k

u v t

Instk-1(u,t) Instk-1(t+1,v)

  • t is maximum possible
  • all deadlines are different

slide-58
SLIDE 58

Reducing Minimizer Sets (L=1, pj=1)

Three WLOG observations:

k

u v t

Instk-1(u,t) Instk-1(t+1,v)

  • t is maximum possible
  • release times are different
  • all deadlines are different

slide-59
SLIDE 59

Reducing Minimizer Sets (L=1, pj=1)

Three WLOG observations:

k

u v t

Instk-1(u,t) Instk-1(t+1,v)

  • t is maximum possible
  • release times are different
  • all deadlines are different

  • v ≤ dk+1
slide-60
SLIDE 60

Reducing Minimizer Sets (L=1, pj=1)

Assume k ∈ Instk(u,v) and k scheduled at t (latest possible)

slide-61
SLIDE 61

Reducing Minimizer Sets (L=1, pj=1)

Assume k ∈ Instk(u,v) and k scheduled at t (latest possible) If k scheduled last then Instk-1(t+1,v) is empty So assume k is not last

slide-62
SLIDE 62

Reducing Minimizer Sets (L=1, pj=1)

Assume k ∈ Instk(u,v) and k scheduled at t (latest possible) If k scheduled last then Instk-1(t+1,v) is empty So assume k is not last Claim: There is j right after k

k

t

j

slide-63
SLIDE 63

Reducing Minimizer Sets (L=1, pj=1)

Assume k ∈ Instk(u,v) and k scheduled at t (latest possible) If k scheduled last then Instk-1(t+1,v) is empty So assume k is not last

t

Proof: If not Claim: There is j right after k

k

t

j k

slide-64
SLIDE 64

Reducing Minimizer Sets (L=1, pj=1)

Assume k ∈ Instk(u,v) and k scheduled at t (latest possible) If k scheduled last then Instk-1(t+1,v) is empty So assume k is not last move k to later (possible, because dk is largest)

  • - contradiction

t

Proof: If not Claim: There is j right after k

k

t

j k

slide-65
SLIDE 65

Reducing Minimizer Sets (L=1, pj=1)

Assume k ∈ Instk(u,v) and k scheduled at t (latest possible) From claim: t = rj-1 so

  • minimizer set for t’

s = {rj-1’ s}

  • minimizer set for u’

s = {rjs} If k scheduled last then Instk-1(t+1,v) is empty So assume k is not last Claim: There is j right after k

k

t

j

slide-66
SLIDE 66

Reducing Minimizer Sets (L=1, pj=1)

Output Gapsn( rmin-1 , dmax+1 ) Algorithm B2-L1P1: if rk ∉ [u,v-1] then Gapsk(u,v) = Gapsk-1(u,v) if rk ∈ [u,v-1] then Gapsk-1(u,v-1) Gapsk(u,v) = min mint { Gapsk-1(u,t) + Gapsk-1(t+1,v) } where ak ≤ t < min(v,dt)

Above, choose: u ∈ {rj’ s} , t ∈ {rj+1’ s} and v ∈ {dj±z’ s} ⇒ Running time = O( (n k’ s)⋅(n u’ s)⋅(n2 v’ s)⋅(n t’ s) ) = O(n5)

slide-67
SLIDE 67

Minimum Energy Scheduling

Main techniques:

✴ Philippe’

s partitioning trick √

✴ Reducing the minimizer sets √ ✴ Inversion trick (“large” parameter ⇔ “small” value) ✴ O(n2)-time reduction: Energy ≼ Gaps

slide-68
SLIDE 68

Inversion Trick

Consider a function F(a,...) = min{f : Yaddi-Yadda(a,f,...)} s.t.

  • F(a,...) is monotone w.r.t. a
  • range of a is large (exponential)
  • range of F(a,...) is small (polynomial)

a

f Yaddi-Yadda(a,f,...)

F(a,...) a

slide-69
SLIDE 69

Inversion Trick

Instead compute A(f,...) = min{a : Yaddi-Yadda(a,f,...)} and then F(a,...) = min{f : A(f,...) ≥ a} (binary search ....) Consider a function F(a,...) = min{f : Yaddi-Yadda(a,f,...)} s.t.

  • F(a,...) is monotone w.r.t. a
  • range of a is large (exponential)
  • range of F(a,...) is small (polynomial)

f A(f,...)

a

f Yaddi-Yadda(a,f,...)

slide-70
SLIDE 70

Example 1: Extending Algorithm B2L1P1 (minimizing # gaps,unit jobs) to arbitrary processing times

Inversion Trick ( any pj, gaps)

slide-71
SLIDE 71

Obvious approach: break each job into unit jobs

pj = 4

Example 1: Extending Algorithm B2L1P1 (minimizing # gaps,unit jobs) to arbitrary processing times

Inversion Trick ( any pj, gaps)

slide-72
SLIDE 72

Obvious approach: break each job into unit jobs

pj = 4

This leads to:

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Gk,p(u,v) = minimum # gaps w.r.t. [u,v] for Instk,p(u,v)

Example 1: Extending Algorithm B2L1P1 (minimizing # gaps,unit jobs) to arbitrary processing times

Inversion Trick ( any pj, gaps)

slide-73
SLIDE 73

Obvious approach: break each job into unit jobs

pj = 4

This leads to:

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Gk,p(u,v) = minimum # gaps w.r.t. [u,v] for Instk,p(u,v)

We can apply Algorithm 2 but ... range of p not polynomial Example 1: Extending Algorithm B2L1P1 (minimizing # gaps,unit jobs) to arbitrary processing times

Inversion Trick ( any pj, gaps)

slide-74
SLIDE 74

Obvious approach: break each job into unit jobs

pj = 4

This leads to:

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Gk,p(u,v) = minimum # gaps w.r.t. [u,v] for Instk,p(u,v)

So we invert: Ak,g(u,v) = minimum amount p of job k for which Instk,p(u,v) has a schedule with ≤ g gaps

Inversion Trick ( any pj, gaps)

Example 1: Extending Algorithm B2L1P1 (minimizing # gaps,unit jobs) to arbitrary processing times

slide-75
SLIDE 75
  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps

Inversion Trick ( any pj, gaps)

slide-76
SLIDE 76
  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps Assume not whole k executed at the end:

k k k

u v

Inversion Trick ( any pj, gaps)

slide-77
SLIDE 77

t

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps Assume not whole k executed at the end:

k k k

u v

Inversion Trick ( any pj, gaps)

slide-78
SLIDE 78

t

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps Assume not whole k executed at the end:

k k k

u v

busy before and after t

Inversion Trick ( any pj, gaps)

slide-79
SLIDE 79

t

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps Assume not whole k executed at the end:

k k k

u v

we must have t = rl busy before and after t

Inversion Trick ( any pj, gaps)

slide-80
SLIDE 80

Assume not whole k executed at the end: t

k k k

u v

f gaps h gaps where f+h = g

Inversion Trick ( any pj, gaps)

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps

slide-81
SLIDE 81

Assume not whole k executed at the end: t

k k k

u v

f gaps h gaps where f+h = g

Ak,h(t,v) units of k

Inversion Trick ( any pj, gaps)

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps

slide-82
SLIDE 82

Assume not whole k executed at the end: t

k k k

u v

f gaps h gaps where f+h = g

Ak,h(t,v) units of k

minimum amount of k with f gaps before t

Inversion Trick ( any pj, gaps)

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps

slide-83
SLIDE 83

Assume not whole k executed at the end: t

k k k

u v

f gaps h gaps where f+h = g

Ak,h(t,v) units of k

  • max. compl. time of Instk-1(u,t)

with f gaps = Ck-1,f(u,t)

Inversion Trick ( any pj, gaps)

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps

slide-84
SLIDE 84

Assume not whole k executed at the end: t

k k k

u v

f gaps h gaps where f+h = g

Ak,h(t,v) units of k

Ck-1,f(u,t)

Ak,g(u,v) = mint minf+h=g ( t - Ck-1,f(u,t) + Ak,h(t,v) )

where t ∈ {rj}, u ∈ {rj}, v ∈ {dj±z}

Also, we need recurrence for Ck,f(u,v) using A(...) Running time O(n7)

Inversion Trick ( any pj, gaps)

  • Instk,p(u,v) = jobs 1,2,...,k with rj ∈ [u,v-1], and with pk ← p
  • Ak,g(u,v) = minimum amount p of job k for which

Instk,p(u,v) has a schedule with ≤ g gaps

slide-85
SLIDE 85

Inversion Trick ( unit jobs, gaps, but faster)

Example 2: Speeding up the unit/gaps case to O(n4) Gk(u,v) = mint { # gaps : yaddi yadda }

O(n) O(n) O(n2) O(n) values O(n)

slide-86
SLIDE 86

Inversion Trick ( unit jobs, gaps, but faster)

Example 2: Speeding up the unit/gaps case to O(n4) Gk(u,v) = mint { # gaps : yaddi yadda }

Invert: compute

Vk(u,g) = max { v : Instk(u,v) has schedule with g gaps }

O(n) O(n) O(n2) O(n) values O(n)

slide-87
SLIDE 87

Inversion Trick ( unit jobs, gaps, but faster)

Example 2: Speeding up the unit/gaps case to O(n4) Gk(u,v) = mint { # gaps : yaddi yadda }

Invert: compute

Vk(u,g) = max { v : Instk(u,v) has schedule with g gaps }

O(n) O(n) O(n2) O(n) values O(n)

Can be extended to any pj‘s in time O(n5) [BCD’08] Gives O(n4) [BCD’08]

slide-88
SLIDE 88

Minimum Energy Scheduling

Main techniques:

✴ Philippe’

s partitioning trick √

✴ Reducing the minimizer sets √ ✴ Inversion trick (“large” parameter ⇔ “small” value) √ ✴ O(n2)-time reduction: Energy ≼ Gaps

slide-89
SLIDE 89

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule [u,v) = short gap in S Claim: wlog, if rj < v then j is executed before v

slide-90
SLIDE 90

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule [u,v) = short gap in S Claim: wlog, if rj < v then j is executed before v

≤ L

j

S

u v Proof: suppose not

j

slide-91
SLIDE 91

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule [u,v) = short gap in S Claim: wlog, if rj < v then j is executed before v

≤ L

j

S

u v Proof: suppose not

j

slide-92
SLIDE 92

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule [u,v) = short gap in S Claim: wlog, if rj < v then j is executed before v Then E(new S) ≤ E(S) and new S is lex-smaller than S

  • - contradiction

≤ L

j

S

u v Proof: suppose not

j

slide-93
SLIDE 93

Reduction: Energy ≼ Gaps

S = lex-minimal energy optimal schedule [u,v) = short gap in S So S looks like this

≤ L m

u v = rm

jobs released before v jobs released at or after v

no release times

slide-94
SLIDE 94

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule So S looks like this:

S

> L > L > L

Inst(u,v)

u = rs v = rj

schedule with G(u,v) gaps and maximum completion time C(u,v)

slide-95
SLIDE 95

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule So S looks like this:

S

> L > L > L

Inst(u,v)

u = rs v = rj

schedule with G(u,v) gaps and maximum completion time C(u,v)

Denote Es = minimum energy schedule of jobs released ≥ rs

slide-96
SLIDE 96

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule So S looks like this:

S

> L > L > L

Inst(u,v)

u = rs v = rj

schedule with G(u,v) gaps and maximum completion time C(u,v)

Denote Es = minimum energy schedule of jobs released ≥ rs

Es = min { L⋅[ G(rs,rj)-1 ] + [ rj-C(rs,rj) ] + Ej } rj > rs

slide-97
SLIDE 97

Reduction: Energy ≼ Gaps

S = lex-minimal energy-optimal schedule So S looks like this:

S

> L > L > L

Inst(u,v)

u = rs v = rj

schedule with G(u,v) gaps and maximum completion time C(u,v)

Denote Es = minimum energy schedule of jobs released ≥ rs

Es = min { L⋅[ G(rs,rj)-1 ] + [ rj-C(rs,rj) ] + Ej } rj > rs

Running time: O(n2) + (time to compute all G(), C() values)

slide-98
SLIDE 98

Minimum Energy Scheduling

Main techniques:

✴ Philippe’

s partitioning trick √

✴ Reducing the minimizer sets √ ✴ Inversion trick (“large” parameter ⇔ “small” value) √ ✴ O(n2)-time reduction: Energy ≼ Gaps √

slide-99
SLIDE 99

Minimum Energy Scheduling

  • Other Results
slide-100
SLIDE 100

m processors, unit jobs, gaps [DG...’07]

Claim: WLOG, optimal schedule is compact:

1 2 3 4 5 6

slide-101
SLIDE 101

m processors, unit jobs, gaps [DG...’07]

Claim: WLOG, optimal schedule is compact:

1 2 3 4 5 6

Proof: Suppose not:

1 2 3 4 5 6

slide-102
SLIDE 102

m processors, unit jobs, gaps [DG...’07]

Claim: WLOG, optimal schedule is compact:

1 2 3 4 5 6

Proof: Suppose not:

1 2 3 4 5 6

slide-103
SLIDE 103

m processors, unit jobs, gaps [DG...’07]

Claim: WLOG, optimal schedule is compact:

1 2 3 4 5 6

Proof: Suppose not:

1 2 3 4 5 6

?

slide-104
SLIDE 104

m processors, unit jobs, gaps [DG...’07]

Claim: WLOG, optimal schedule is compact:

1 2 3 4 5 6

Proof: Suppose not:

1 2 3 4 5 6

slide-105
SLIDE 105

m processors, unit jobs, gaps [DG...’07]

Claim: WLOG, optimal schedule is compact:

1 2 3 4 5 6

switch cannot increase # gaps, so repeat till schedule is compact Proof: Suppose not:

1 2 3 4 5 6

slide-106
SLIDE 106

Generalize Philippe’ s partition trick: Sub-instance

m processors, unit jobs, gaps [DG...’07]

X

a c

u v

b

X

slide-107
SLIDE 107

Generalize Philippe’ s partition trick: Sub-instance

m processors, unit jobs, gaps [DG...’07]

X

a c

u v

b

X

e f

k

t

slide-108
SLIDE 108

Generalize Philippe’ s partition trick: Sub-instance Recurrence: Gk(u,a,b,v,c) = mint mine,f { G( ... ) + G( .... ) } Running time O(n7m5) [DG...’07]

m processors, unit jobs, gaps [DG...’07]

X

a c

u v

b

X

e f

k

t

slide-109
SLIDE 109

Generalize Philippe’ s partition trick: Sub-instance Recurrence: Gk(u,a,b,v,c) = mint mine,f { G( ... ) + G( .... ) } Running time O(n7m5) [DG...’07] Can be improved to O(n5m5) using smaller maximizer sets

m processors, unit jobs, gaps [DG...’07]

X

a c

u v

b

X

e f

k

t

slide-110
SLIDE 110

1 processor, agreeable [GJS’10]

1 2 3 4 5

  • rdered by

rj or dj

slide-111
SLIDE 111

1 processor, agreeable [GJS’10]

Claim 1: Wlog, jobs execute in order 1, 2, 3, ...

1 2 3 4 5

  • rdered by

rj or dj

slide-112
SLIDE 112

1 processor, agreeable [GJS’10]

Claim 1: Wlog, jobs execute in order 1, 2, 3, ... Claim 2: Wlog, dj + pj+1 ≤ dj+1

1 2 3 4 5

  • rdered by

rj or dj

slide-113
SLIDE 113

1 processor, agreeable [GJS’10]

Claim 1: Wlog, jobs execute in order 1, 2, 3, ... Claim 2: Wlog, dj + pj+1 ≤ dj+1

j j+1 1 2 3 4 5

  • rdered by

rj or dj

slide-114
SLIDE 114

1 processor, agreeable [GJS’10]

Claim 1: Wlog, jobs execute in order 1, 2, 3, ... Claim 2: Wlog, dj + pj+1 ≤ dj+1

j j+1 1 2 3 4 5

  • rdered by

rj or dj

slide-115
SLIDE 115

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 processor, agreeable [GJS’10]

slide-116
SLIDE 116

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 2 3 4 5

1 processor, agreeable [GJS’10]

slide-117
SLIDE 117

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 2 3 4 5

1 processor, agreeable [GJS’10]

slide-118
SLIDE 118

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 2 3 4 5

1 processor, agreeable [GJS’10]

slide-119
SLIDE 119

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 2 3 4 5

1 processor, agreeable [GJS’10]

slide-120
SLIDE 120

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 2 3 4 5

1 processor, agreeable [GJS’10]

slide-121
SLIDE 121

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 2 3 4 5

1 processor, agreeable [GJS’10]

slide-122
SLIDE 122

Algorithm GJS-L1SO: preprocess jobs as in Claim 2 Schedule 1 at d1-p1 for any other j if possible, schedule j right after j-1 else schedule j at dj-pj

1 2 3 4 5

1 processor, agreeable [GJS’10]

Running time: sorting + O(n) = O(n logn)

slide-123
SLIDE 123

Open (Easy?) Questions

slide-124
SLIDE 124

Open (Easy?) Questions

  • 1. Back to sheep: if any group of ≤ g sheep dies,

minimize # of dead sheep

slide-125
SLIDE 125

Open (Easy?) Questions

  • 1. Back to sheep: if any group of ≤ g sheep dies,

minimize # of dead sheep

  • 2. Or maximize minimum group size
slide-126
SLIDE 126

Open (Easy?) Questions

  • 1. Back to sheep: if any group of ≤ g sheep dies,

minimize # of dead sheep

  • 2. Or maximize minimum group size
  • 3. Several power levels
slide-127
SLIDE 127

Open (Easy?) Questions

  • 1. Back to sheep: if any group of ≤ g sheep dies,

minimize # of dead sheep

  • 2. Or maximize minimum group size
  • 3. Several power levels
  • 4. For multiprocessors: each processor can be turned
  • ff, or the whole system
slide-128
SLIDE 128

Open (Easy?) Questions

  • 1. Back to sheep: if any group of ≤ g sheep dies,

minimize # of dead sheep

  • 2. Or maximize minimum group size
  • 3. Several power levels
  • 4. For multiprocessors: each processor can be turned
  • ff, or the whole system
  • 5. Faster algorithms? Can the case (unit jobs, gaps) be

solved in time O(n3)?

slide-129
SLIDE 129

Open (Easy?) Questions

  • 1. Back to sheep: if any group of ≤ g sheep dies,

minimize # of dead sheep

  • 2. Or maximize minimum group size
  • 3. Several power levels
  • 4. For multiprocessors: each processor can be turned
  • ff, or the whole system
  • 5. Faster algorithms? Can the case (unit jobs, gaps) be

solved in time O(n3)?

  • 6. Fast approximations: 1+ε-approx. in Õ(n) time?
slide-130
SLIDE 130

Open (Easy?) Questions

  • 1. Back to sheep: if any group of ≤ g sheep dies,

minimize # of dead sheep

  • 2. Or maximize minimum group size
  • 3. Several power levels
  • 4. For multiprocessors: each processor can be turned
  • ff, or the whole system
  • 5. Faster algorithms? Can the case (unit jobs, gaps) be

solved in time O(n3)?

  • 6. Fast approximations: 1+ε-approx. in Õ(n) time?
  • 7. ...