Professional Documents
Culture Documents
G REEDY A LGORITHMS I
coin changing
interval scheduling
scheduling to minimize lateness
optimal caching
4. G REEDY A LGORITHMS I
coin changing
interval scheduling
scheduling to minimize lateness
optimal caching
Coin changing
Goal. Given currency denominations: 1, 5, 10, 25, 100, devise a method
to pay amount to customer using fewest number of coins.
Ex. 34.
Cashier's algorithm. At each iteration, add coin of the largest value that
does not take us past the amount to be paid.
Ex. $2.89.
Cashier's algorithm
At each iteration, add coin of the largest value that does not take us past
the amount to be paid.
CASHIERS-ALGORITHM (x, c1, c2, , cn)
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
SORT
WHILE
x > 0
ELSE
x x ck
S S{k}
RETURN
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ck
P 4
N 1
10
N+D 2
4+5=9
25
Q 3
20 + 4 = 24
100
no limit
75 + 24 = 99
6
4. G REEDY A LGORITHMS I
coin changing
interval scheduling
scheduling to minimize lateness
optimal caching
SECTION 4.1
Interval scheduling
a
b
c
d
jobs d and g
are incompatible
e
f
g
h
0
time
10
11
9
[Shortest interval]
[Fewest conflicts]
10
11
TO
Greedy:
i1
i2
ir
OPT:
j1
j2
jr
...
ir+1
jr+1
...
ik
jm
Greedy:
i1
i2
ir
ir+1
...
OPT:
j1
j2
jr
ir+1
...
ik
jm
Interval partitioning
Interval partitioning.
4
3
j
g
9:30
10
10:30
11
11:30
12
12:30
1:30
2:30
3:30
4:30
time
15
Interval partitioning
Interval partitioning.
b
a
9:30
i
h
10
10:30
11
11:30
12
12:30
1:30
2:30
3:30
4:30
time
16
[Shortest interval]
[Fewest conflicts]
17
FOR j = 1 TO n
IF lecture j is compatible with some classroom
Schedule lecture j in any such classroom k.
ELSE
Allocate a new classroom d + 1.
Schedule lecture j in classroom d + 1.
dd +1
RETURN schedule.
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
19
20
depth = 3
9:30
i
h
10
10:30
11
11:30
12
12:30
1:30
2:30
3:30
4:30
time
21
22
4. G REEDY A LGORITHMS I
coin changing
interval scheduling
scheduling to minimize lateness
optimal caching
SECTION 4.2
tj
dj
14
15
lateness = 2
d3 = 9
0
d2 = 8
1
d6 = 15
3
d1 = 6
5
max lateness = 6
lateness = 0
d5 = 14
7
10
d4 = 9
11
12
13
14
15
24
[Smallest slack]
25
[Smallest slack]
tj
10
dj
100
10
counterexample
tj
10
dj
10
counterexample
26
max lateness = 1
d1 = 6
0
d2 = 8
2
d3 = 9
5
d4 = 9
6
d5 = 14
9
10
11
12
d6 = 15
13
14
15
27
d=4
0
d=6
2
d=4
0
d = 12
5
d=6
2
10
11
10
11
d = 12
4
28
fi
29
before swap
i
i
after swap
fi
j
f 'j
dj
= fi dj
fi di
i .
(definition)
( j now finishes at time fi )
(since i and j inverted)
(definition)
30
31
32
4. G REEDY A LGORITHMS I
coin changing
interval scheduling
scheduling to minimize lateness
optimal caching
SECTION 4.3
must bring
requested item into cache, and evict some existing item, if full.
Goal. Eviction schedule that minimizes number of evictions.
requests
cache
cache miss
(eviction)
34
current cache
cache miss
(which item to eject?)
FIFO: eject a
LRU: eject d
LIFO: eject e
g
b
e
d
future queries
35
f
a
b
c
e
g
b
e
d
FF: eject d
future
queries
36
item inserted
when not requested
an unreduced schedule
a reduced schedule
37
time t
time t'
Case 1
S'
d enters cache
without a request
d evicted before
next request
might as well
leave c in cache
38
time t
time t'
Case 2
S'
d enters cache
without a request
d requested
before d evicted
might as well
leave c in cache
until d is requested
39
Farthest-in-future: analysis
Theorem. FF is optimal eviction algorithm.
Pf. Follows directly from invariant.
Invariant. There exists an optimal reduced schedule S that makes the same
eviction schedule as SFF through the first j requests.
Pf. [by induction on j]
Let S be reduced schedule that satisfies invariant through j requests.
We produce S' that satisfies invariant after j + 1 requests.
Case 1:
Case 2:
40
Farthest-in-future: analysis
Pf. [continued]
Case 3:
same
same
S
same
S'
e
j+1
same
- now S' agrees with SFF on first j + 1 requests; we show that having
element f in cache is no worse than having element e
- let S' behave the same as S until S' is forced to take a different action
(because either S evicts e; or because either e or f is requested)
41
Farthest-in-future: analysis
Let j' be the first time after j + 1 that S' must take a different action from S,
and let g be item requested at time j'.
involves e or f (or both)
same
j'
Case 3a:
same
S'
g = e.
Case 3b:
g = f.
42
Farthest-in-future: analysis
Let j' be the first time after j + 1 that S' must take a different action from S,
and let g be item requested at time j'.
involves e or f (or both)
same
j'
same
S'
Case 3c:
g e, f. S evicts e.
j'
same
S'
Caching perspective
Online vs. offline algorithms.