Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.
-
Upload
zoe-wilkerson -
Category
Documents
-
view
218 -
download
0
Transcript of Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.
![Page 1: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/1.jpg)
Week 2: Greedy Algorithms
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 1
![Page 2: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/2.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 2
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.
![Page 3: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/3.jpg)
Knapsack problem:
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 3
![Page 4: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/4.jpg)
Knapsack problem: Input: n items: (w1, v1), …, (wn, vn) and a number W
the i-th item’s is worth vi dollars with weight wi. at most W pounds to be carried.
Output: Some items which are most valuable and with total weight at most W. Two versions:
0-1 Knapsack: Items cannot be divided into pieces fractional knapsack: Items can be divided into pieces
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 4
![Page 5: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/5.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 5
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
![Page 6: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/6.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 6
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
![Page 7: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/7.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 7
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
vw
vw
w
vwqwww
w
vwq
w
vw
w
vw
w
vw
w
vwq
w
vw
w
vw
w
vw
vqvvv
)()()%...(
)(%)(...)()(
)(%)(...)()(
%...
121
121
1
11
2
22
1
11
121
![Page 8: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/8.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 8
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.
![Page 9: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/9.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 9
A subset of mutually
compatibles jobs: {c, f}
![Page 10: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/10.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 10
![Page 11: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/11.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 11
![Page 12: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/12.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 12
Sorting the n jobs based on fi needs O(nlog n) time
![Page 13: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/13.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 13
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)
![Page 14: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/14.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 14
![Page 15: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/15.jpg)
How to Prove Optimality How can we prove the schedule returned is optimal?
Let A be the schedule returned by this algorithm. Let OPT be some optimal solution.
It is impossible to show that A = OPT, instead we need only to show that |A| = |OPT|.
Note the distinction: instead of proving directly that a choice of intervals A is the same as an optimal choice, we prove that it has the same number of intervals as an optimal. Therefore, it is optimal.
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 15
![Page 16: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/16.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 16
![Page 17: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/17.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 17
![Page 18: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/18.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 18
Sort jobs based on finish time: b, c, a, e, d, f, g, h.
Greedy algorithm Selects: b, e, h.
![Page 19: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/19.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 19
Depth: The maximum No. of jobs required at any time.
Depth:3
![Page 20: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/20.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 20
![Page 21: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/21.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 21
Depth: The maximum No. of jobs required at any time.
![Page 22: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/22.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 22
Greedy on start time
![Page 23: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/23.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 23
Depth: The maximum No. of jobs required at any time.
Depth:3
Greedy Algorithm:
a
c
b
d
e
g
f
j
i
h
![Page 24: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/24.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 24
ddepth
![Page 25: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/25.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 25
![Page 26: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/26.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 26
![Page 27: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/27.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 27
0 10 11
l1=0, l2=1l2=0, l1=0
110 1
l1=0, l2=1l1=9, l2=0
![Page 28: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/28.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 28
![Page 29: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/29.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 29
![Page 30: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/30.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 30
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.
![Page 31: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/31.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 31
di<dj
![Page 32: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/32.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 32
![Page 33: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/33.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 33
Example: Job ti di
1 2 22 3 43 4 64 4 85 6 10
2 5 9 13 19j1 j2 j3 j4 j5
![Page 34: Week 2: Greedy Algorithms 2015/7/2CS4335 Design and Analysis of Algorithms/WANG Lusheng Page 1.](https://reader030.fdocuments.us/reader030/viewer/2022032522/56649d6e5503460f94a4f486/html5/thumbnails/34.jpg)
112/04/19 CS4335 Design and Analysis of Algorithms/WANG Lusheng
Page 34