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 ddepth 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 n1n2 … 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