cs 3343: analysis of algorithms lecture 19: introduction to greedy algorithms

38
CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Upload: molly-anderson

Post on 19-Jan-2016

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

CS 3343: Analysis of Algorithms

Lecture 19: Introduction to Greedy Algorithms

Page 2: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Outline

• Review of DP

• Greedy algorithms– Similar to DP, not an actual algorithm, but a

meta algorithm

Page 3: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Two steps to dynamic programming

• Formulate the solution as a recurrence relation of solutions to subproblems.

• Specify an order of evaluation for the recurrence so you always have what you need.

Page 4: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Restaurant location problem

• You work in the fast food business• Your company plans to open up new restaurants in

Texas along I-35

• Many towns along the highway, call them t1, t2, …, tn

• Restaurants at ti has estimated annual profit pi

• No two restaurants can be located within 10 miles of each other due to regulation

• Your boss wants to maximize the total profit• You want a big bonus

10 mile

Page 5: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

A DP algorithm

• Suppose you’ve already found the optimal solution

• It will either include tn or not include tn

• Case 1: tn not included in optimal solution

– Best solution same as best solution for t1 , …, tn-1

• Case 2: tn included in optimal solution

– Best solution is pn + best solution for t1 , …, tj , where j < n is the largest index so that dist(tj, tn) ≥ 10

Page 6: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Recurrence formulation

• Let S(i) be the total profit of the optimal solution when the first i towns are considered (not necessarily selected)– S(n) is the optimal solution to the complete problem

S(n-1)

S(j) + pn j < n & dist (tj, tn) ≥ 10S(n) = max

S(i-1)

S(j) + pi j < i & dist (tj, ti) ≥ 10S(i) = max

Generalize

Number of sub-problems: n. Boundary condition: S(0) = 0.

Dependency: ii-1jS

Page 7: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Example

5 2 2 6 6 63 10 7

6 7 9 8 3 3 2 4 12 5

Distance (mi)

Profit (100k)

6 7 9 9 10 12 12 14 26 26S(i)

S(i-1)

S(j) + pi j < i & dist (tj, ti) ≥ 10S(i) = max

100

07 3 4 12

dummy

Optimal: 26

Page 8: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Complexity

• Time: O(nk), where k is the maximum number of towns that are within 10 miles to the left of any town– In the worst case, O(n2)

– Can be reduced to O(n) by pre-processing

• Memory: Θ(n)

Page 9: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Knapsack problem

Three versions:

0-1 knapsack problem: take each item or leave it

Fractional knapsack problem: items are divisible

Unbounded knapsack problem: unlimited supplies of each item.

Which one is easiest to solve?

•Each item has a value and a weight•Objective: maximize value•Constraint: knapsack has a weight

limitation

We studied the 0-1 problem.

Page 10: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Formal definition (0-1 problem)

• Knapsack has weight limit W• Items labeled 1, 2, …, n (arbitrarily)

• Items have weights w1, w2, …, wn

– Assume all weights are integers

– For practical reason, only consider wi < W

• Items have values v1, v2, …, vn

• Objective: find a subset of items, S, such that iS wi W and iS vi is maximal among all such (feasible) subsets

Page 11: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

A DP algorithm

• Suppose you’ve find the optimal solution S

• Case 1: item n is included

• Case 2: item n is not included

Total weight limit:W

wn

Total weight limit:W

Find an optimal solution using items 1, 2, …, n-1 with weight limit W - wn

wn

Find an optimal solution using items 1, 2, …, n-1 with weight limit W

Page 12: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Recursive formulation

• Let V[i, w] be the optimal total value when items 1, 2, …, i are considered for a knapsack with weight limit w

=> V[n, W] is the optimal solution

V[n, W] = maxV[n-1, W-wn] + vn

V[n-1, W]

Generalize

V[i, w] = maxV[i-1, w-wi] + vi item i is taken

V[i-1, w] item i not taken

V[i-1, w] if wi > w item i not taken

Boundary condition: V[i, 0] = 0, V[0, w] = 0. Number of sub-problems = ?

Page 13: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Example

• n = 6 (# of items)• W = 10 (weight limit)• Items (weight, value):

2 24 33 35 62 46 9

Page 14: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

0

0

0

0

0

0

00000000000

w 0 1 2 3 4 5 6 7 8 9 10

425

6

4

3

2

1

i

96

65

33

34

22

viwi

maxV[i-1, w-wi] + vi item i is taken

V[i-1, w] item i not taken

V[i-1, w] if wi > w item i not taken

V[i, w] =

V[i, w]

V[i-1, w]V[i-1, w-wi]

6

wi

5

Page 15: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

107400

1310764400

9633200

8653200

555532200

2222222200

00000000000

w 0 1 2 3 4 5 6 7 8 9 10

i wi vi

1 2 2

2 4 3

3 3 3

4 5 6

5 2 4

6 6 9

maxV[i-1, w-wi] + vi item i is taken

V[i-1, w] item i not taken

V[i-1, w] if wi > w item i not taken

V[i, w] =

2

4

3

6

5

6

7

5

9

6

8

10

9 11

8

3

12 13

13 15

Page 16: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

107400

1310764400

9633200

8653200

555532200

2222222200

00000000000

w 0 1 2 3 4 5 6 7 8 9 10

i wi vi

1 2 2

2 4 3

3 3 3

4 5 6

5 2 4

6 6 9

2

4

3

6

5

6

7

5

9

6

8

10

9 11

8

3

12 13

13 15

Item: 6, 5, 1

Weight: 6 + 2 + 2 = 10

Value: 9 + 4 + 2 = 15

Optimal value: 15

Page 17: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Time complexity

• Θ (nW)• Polynomial?

– Pseudo-polynomial– Works well if W is small

• Consider following items (weight, value):(10, 5), (15, 6), (20, 5), (18, 6)

• Weight limit 35– Optimal solution: item 2, 4 (value = 12). Iterate: 2^4 = 16 subsets– Dynamic programming: fill up a 4 x 35 = 140 table entries

• What’s the problem?– Many entries are unused: no such weight combination– Top-down may be better

Page 18: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Events scheduling problem

• A list of events to schedule– ei has start time si and finishing time fi

– Indexed such that fi < fj if i < j

• Each event has a value vi

• Schedule to make the largest value– You can attend only one event at any time

Time

e1 e2

e3e4 e5

e6

e7

e8

e9

s9 f9

s8 f8

s7 f7

Page 19: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Events scheduling problem

Time

e1 e2

e3e4 e5

e6

e7

e8

e9

• V(i) is the optimal value that can be achieved when the first i events are considered

• V(n) =

V(n-1) en not selected

en selectedV(j) + vn

max {

j < n and fj < sn

s9 f9

s8 f8

s7 f7

Page 20: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Restaurant location problem 2

• Now the objective is to maximize the number of new restaurants (subject to the distance constraint)– In other words, we assume that each

restaurant makes the same profit, no matter where it is opened

10 mile

Page 21: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

A DP Algorithm

• Exactly as before, but pi = 1 for all i

S(i-1)

S(j) + 1 j < i & dist (tj, ti) ≥ 10S(i) = max

S(i-1)

S(j) + pi j < i & dist (tj, ti) ≥ 10S(i) = max

Page 22: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Example

• Natural greedy 1: 1 + 1 + 1 + 1 = 4• Maybe greedy is ok here? Does it work for all cases?

5 2 2 6 6 63 10 7

1 1 1 1 1 1 1 1 1 1

Distance (mi)

Profit (100k)

S(i)

S(i-1)

S(j) + 1 j < i & dist (tj, ti) ≥ 10S(i) = max

100

0

2 3 41

dummy

Optimal: 4

1 1 1 2 2 4

Page 23: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Comparison5 2 2 6 6 63 10 7

1 1 1 1 1 1 1 1 1 1

Dist(mi)

Profit (100k)

S(i)

100

0

2 3 41 1 1 1 2 2 4

5 2 2 6 6 63 10 7

6 7 9 8 3 3 2 4 12 5Profit (100k)

6 7 9 9 10 12 12 14 26 26S(i)

100

0

Benefit of taking t1 rather than t2?

Benefit of waiting to see t2?

Dist(mi)

t2 may have a bigger profit

t1 gives you more choices for the future

None!

t1 gives you more choices for the futureBenefit of taking t1 rather than t2?

Benefit of waiting to see t2?

Page 24: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Moral of the story

• If a better opportunity may come out next, you may want to hold on your decision

• Otherwise, grasp the current opportunity immediately because there is no reason to wait …

Page 25: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Greedy algorithm

• For certain problems, DP is an overkill– Greedy algorithm may guarantee to give you

the optimal solution– Much more efficient

Page 26: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Formal argument• Claim 1: if A = [m1, m2, …, mk] is the optimal solution to the

restaurant location problem for a set of towns [t1, …, tn]

– m1 < m2 < … < mk are indices of the selected towns

– Then B = [m2, m3, …, mk] is the optimal solution to the sub-problem [tj, …, tn], where tj is the first town that are at least 10 miles to the right of tm1

• Proof by contradiction: suppose B is not the optimal solution to the sub-problem, which means there is a better solution B’ to the sub-problem

• Then A’ = m1 || B’ gives a better solution than A = m1 || B => A is not optimal => contradiction => B is optimal

m1 B’ (imaginary)A’

Bm1Am2 mk

Page 27: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Implication of Claim 1

• If we know the first town that needs to be chosen, we can reduce the problem to a smaller sub-problem– This is similar to dynamic programming– Optimal substructure

Page 28: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Formal argument (cont’d)

• Claim 2: for the uniform-profit restaurant location problem, there is an optimal solution that chooses t1

• Proof by contradiction: suppose that no optimal solution can be obtained by choosing t1

– Say the first town chosen by the optimal solution S is ti, i > 1

– Replace ti with t1 will not violate the distance constraint, and the total profit remains the same => S’ is an optimal solution

– Contradiction– Therefore claim 2 is valid

S

S’

Page 29: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Implication of Claim 2

• We can simply choose the first town as part of the optimal solution– This is different from DP– Decisions are made immediately

• By Claim 1, we then only need to repeat this strategy to the remaining sub-problem

Page 30: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Greedy algorithm for restaurant location problem

select t1

d = 0;

for (i = 2 to n)

d = d + dist(ti, ti-1);

if (d >= min_dist)

select ti

d = 0;

end

end

5 2 2 6 6 63 10 7

d 0 5 7 9 150

6 9 150

100

7

Page 31: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Complexity

• Time: Θ(n)

• Memory: – Θ(n) to store the input– Θ(1) for greedy selection

Page 32: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Events scheduling problem

• Objective: to schedule the maximal number of events• Let vi = 1 for all i and solve by DP, but overkill• Greedy strategy: choose the first-finishing event that is compatible with

previous selection (1, 2, 4, 6, 8 for the above example)• Why is this a valid strategy?

– Claim 1: optimal substructure– Claim 2: there is an optimal solution that chooses e1

– Proof by contradiction: Suppose that no optimal solution contains e1

– Say the first event chosen is ei => other chosen events start after ei finishes– Replace ei by e1 will result in another optimal solution (e1 finishes earlier than ei)– Contradiction

• Simple idea: attend the event that will left you with the most amount of time when finished

Time

e1 e2

e3e4 e5

e6

e7

e8

e9

Page 33: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Knapsack problem

Three versions:

0-1 knapsack problem: take each item or leave it

Fractional knapsack problem: items are divisible

Unbounded knapsack problem: unlimited supplies of each item.

Which one is easiest to solve?

•Each item has a value and a weight•Objective: maximize value•Constraint: knapsack has a weight

limitation

We can solve the fractional knapsack problem using greedy algorithm

Page 34: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Greedy algorithm for fractional knapsack problem

• Compute value/weight ratio for each item• Sort items by their value/weight ratio into

decreasing order– Call the remaining item with the highest ratio the most

valuable item (MVI)

• Iteratively: – If the weight limit can not be reached by adding MVI

• Select MVI

– Otherwise select MVI partially until weight limit

Page 35: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Example• Weight limit: 10

1.5

2

1.2

1

0.75

1

$ / LB

966

425

654

333

342

221

Value ($)

Weight (LB)

item

Page 36: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Example• Weight limit: 10

• Take item 5– 2 LB, $4

• Take item 6– 8 LB, $13

• Take 2 LB of item 4– 10 LB, 15.4

item Weight (LB)

Value ($)

$ / LB

5 2 4 2

6 6 9 1.5

4 5 6 1.2

1 2 2 1

3 3 3 1

2 4 3 0.75

Page 37: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Why is greedy algorithm for fractional knapsack problem valid?

• Claim: the optimal solution must contain the MVI as much as possible (either up to the weight limit or until MVI is exhausted)

• Proof by contradiction: suppose that the optimal solution does not use all available MVI (i.e., there is still w (w < W) units of MVI left while we choose other items)– We can replace w pounds of less valuable items by MVI– The total weight is the same, but with value higher than the

“optimal”– Contradiction

w w w w

Page 38: CS 3343: Analysis of Algorithms Lecture 19: Introduction to Greedy Algorithms

Elements of greedy algorithm

1. Optimal substructure2. Locally optimal decision leads to globally

optimal solution

•For most optimization problems, greedy algorithm will not guarantee an optimal solution•But may give you a good starting point to use other optimization techniques•Starting from next lecture, we’ll study several problems in graph theory that can actually be solved by greedy algorithm