+ All Categories
Transcript
Page 1: Greedy Algorithms:

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.

Page 2: Greedy Algorithms:

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

Page 3: Greedy Algorithms:

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

Page 4: Greedy Algorithms:

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

Page 5: Greedy Algorithms:

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.

Page 6: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 6

A subset of mutually

compatibles jobs: {c, f}

Page 7: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 7

Page 8: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 8

Page 9: Greedy Algorithms:

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

Page 10: Greedy Algorithms:

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)

Page 11: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 11

Page 12: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 12

Page 13: Greedy Algorithms:

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.

Page 14: Greedy Algorithms:

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

Page 15: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 15

Page 16: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 16

Depth: The maximum No. of jobs required at any time.

Page 17: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 17

Greedy on start time

Page 18: Greedy Algorithms:

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

Page 19: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 19

ddepth

Page 20: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 20

Page 21: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 21

Page 22: Greedy Algorithms:

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

Page 23: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 23

Page 24: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 24

Page 25: Greedy Algorithms:

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.

Page 26: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 26

di<dj

Page 27: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 27

Page 28: Greedy Algorithms:

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

Page 29: Greedy Algorithms:

112/04/22 CS4335 Design and Analysis of Algorithms/WANG Lusheng

Page 29


Top Related