Title: Greedy Algorithms:
1Greedy 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.
2The 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
3Solve 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 w4. - 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 -
4Proof of correctness (The hard part)
X i1 w1 i2 w2 wj . . . ip wp . . . ikwk
- 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.
5The 0-1 knapsack problem cannot be solved
optimally by greedy
- Counter example (moderate part)
- W10 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 12315). - 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.
6A subset of mutually compatibles jobs c, f
7(No Transcript)
8(No Transcript)
9Sorting the n jobs based on fi needs O(nlog n)
time
10Example
- 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)
11(No Transcript)
12(No Transcript)
13Sort ob finish time b, c, a, e, d, f, g,
h. Greedy algorithm Selects b, e, h.
14Depth The maximum No. of jobs required at any
time.
Depth3
15(No Transcript)
16Depth The maximum No. of jobs required at any
time.
17Greedy on start time
18Greedy Algorithm
c
d
g
j
b
f
i
Depth The maximum No. of jobs required at any
time.
a
e
h
Depth3
19d?depth
20(No Transcript)
21(No Transcript)
22l10, l21
l20, l10
0
11
10
l19, l20
l10, l21
1
11
0
23(No Transcript)
24(No Transcript)
25diltdj
We check every pair of consecutive numbers, if
there is not inversion, then the whole sequenc
has no inversion.
n1?n2? ?nk Example 1, 2, 3, 4, 5, 6, 7, 8, 9
1, 2, 6, 7, 3, 4, 5, 8, 9
26diltdj
27(No Transcript)
28Example
- Job ti di
- 2 2
- 3 4
- 4 6
- 4 8
- 6 10
j1
5
9
13
19
j2
j5
2
j3
j4
29(No Transcript)