Greedy Algorithms:

advertisement
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 1
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
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$
 We can carry at most W (integer) pounds.
 How to take as valuable a load as possible.

66$
An item cannot be divided into pieces.
 The fractional knapsack problem:


28$
The same setting, but the thief can take fractions of items.
W may not be integer.
W
Page 2
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
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 3
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
X
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?
v p 1
vp
v
v
 w1  ( 1 )  w2  ( 2 )  ...  w p 1  (
)  q% w p  ( )
w1
w2
w p 1
wp
 w1  (
wj
)  w2  (
vj
wj
)  ...  w p 1  (
 ( w1  w2  ...  w p 1  q % w p )  (
vj
wj
vj
wj
)  q% w p  (
)  wj  (
vj
wj
vj
wj
.
.
ip wp
)
)  vj
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.


i2 w2 wj
.
v1  v2  ...  v p 1  q %v p
vj
i1 w1
.
.
.
ikwk
Page 4
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
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 5
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
A subset of
mutually
compatibles
jobs: {c, f}
Page 6
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 7
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 8
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Sorting the n jobs based on fi needs O(nlog n) time
Page 9
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
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 10
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 11
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 12
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Sort ob finish time: b, c, a, e, d, f, g, h.
Greedy algorithm Selects: b, e, h.
Page 13
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Depth: The maximum No. of jobs required at any time.
Depth:
3
Page 14
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 15
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Depth: The maximum No. of jobs required at any time.
Page 16
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Greedy on start time
Page 17
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Greedy Algorithm:
c
d
b
g
j
f
i
Depth: aThe maximum No. of
e jobs required at any
h time.
Depth:
3
Page 18
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
ddepth
Page 19
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 20
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 21
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
l1=0, l2=1
l2=0, l1=0
0
10
11
l1=9, l2=0
l1=0, l2=1
0
1
11
Page 22
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 23
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 24
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
di<dj
n1n2 … nk
Example: 1, 2, 3, 4, 5, 6, 7, 8, 9
1, 2, 6, 7, 3, 4, 5, 8, 9
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
We check every pair
of consecutive
numbers, if there is
not inversion, then the
whole sequenc has no
inversion.
Page 25
di<dj
Page 26
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 27
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Job
1
2
3
4
5
j1
2016/5/29
2
j2
Example:
di
2
4
6
8
10
ti
2
3
4
4
6
5
j3
9
j4
13
j5
19
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Page 28
Page 29
2016/5/29
CS4335 Design and Analysis of
Algorithms/WANG Lusheng
Download