112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 1
Greedy Algorithms: A greedy algorithm always makes the
choice that looks best at the moment. It makes a local optimal choice in the
hope that this choice will lead to a globally optimal solution.
Greedy algorithms yield optimal solutions for many (but not all) problems.
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 2
The 0-1 Knapsack problem:
The 0-1 knapsack problem: N items, where the i-th item is worth vi dollars and
weight wi pounds. 11 p 3 p 4p 58 p 8p 88p vi and wi are integers.
3$ 6 $ 35$ 8$ 28$ 66$ We can carry at most W (integer) pounds. How to take as valuable a load as possible.
An item cannot be divided into pieces. The fractional knapsack problem: The same setting, but the thief can take fractions of items. W may not be integer.
W
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 3
Solve the fractional Knapsack problem:
Greedy on the value per pound vi/wi. Each time, take the item with maximum vi/wi . If exceeds W, take fractions of the item.
Example: (1, 5$), (2, 9$), (3, 12$), (3, 11$) and w=4. vi/wi : 5 4.5 4.0 3.667 First: (1, 5$), Second: (2, 9$), Third: 1/3 (3, 12$) Total W: 1, 3, 4. Can only take part of
item
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 4
Proof of correctness: (The hard part)
Let X = i1, i2, …ik be the optimal items taken. Consider the item j : (vj, wj) with the highest v /w. if j is not used in X (the optimal solution), get rid of some
items with total weight wj (possibly fractional items) and add item j.
(since fractional items are allowed, we can do it.) Total value is increased. Why?
One more item selected by greedy is added to X Repeat the process, X is changed to contain all items selected
by greedy WITHOUT decreasing the total value taken by the thief.
X
i1 w1
i2 w2 wj
.
.
.
ip wp
.
.
.
ikwk
jj
jj
j
jpp
j
jp
j
jp
j
j
j
j
p
pp
p
pp
pp
vwv
wwv
wqwww
wv
wqwv
wwv
wwv
w
wv
wqwv
wwvw
wvw
vqvvv
)()()%...(
)(%)(...)()(
)(%)(...)()(
%...
121
121
1
11
2
22
1
11
121
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 5
The 0-1 knapsack problem cannot be solved optimally by
greedy Counter example: (moderate part) W=10 2 1.8 Items found (6pounds, 12dollars), (5pounds, 9 dollar), 1.8 1. 1 (5pounds, 9 dollars), (3pounds, 3 dollars), (3 pounds, 3
dollars) If we first take (6, 12) according to greedy
algorithm, then solution is (6, 12), (3, 3) (total value is 12+3=15).
However, a better solution is (5, 9), (5, 9) with total value 18.
To show that a statement does not hold, we only have to give an example.
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 6
A subset of mutually
compatibles jobs: {c, f}
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 7
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 8
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 9
Sorting the n jobs based on fi needs O(nlog n) time
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 10
Example: Jobs (s, f): (0, 10), (3, 4), (2, 8), (1, 5), (4, 5), (4, 8), (5, 6) (7,9).
Sorting based on fi: (3, 4) (1, 5), (4, 5) (5, 6) (4,8) (2,8) (7, 9)(0,10).Selecting jobs:(3,4) (4, 5) (5,6) (7, 9)
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 11
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 12
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 13
Sort ob finish time: b, c, a, e, d, f, g, h.
Greedy algorithm Selects: b, e, h.
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 14
Depth: The maximum No. of jobs required at any time.
Depth:3
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 15
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 16
Depth: The maximum No. of jobs required at any time.
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 17
Greedy on start time
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 18
Depth: The maximum No. of jobs required at any time.
Depth:3
Greedy Algorithm:
a
cb
d
e
g
f
j
i
h
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 19
ddepth
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 20
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 21
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 22
0 10 11
l1=0, l2=1l2=0, l1=0
110 1
l1=0, l2=1l1=9, l2=0
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 23
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 24
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 25
n1n2 … nk
Example: 1, 2, 3, 4, 5, 6, 7, 8, 9 1, 2, 6, 7, 3, 4, 5, 8, 9
di<dj
We check every pair of consecutive
numbers, if there is not inversion, then the whole sequenc has no
inversion.
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 26
di<dj
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 27
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 28
Example: Job ti di
1 2 22 3 43 4 64 4 85 6 10
2 5 9 13 19j1 j2 j3 j4 j5
112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 29