Download presentation
Presentation is loading. Please wait.
Published byWilfred Carpenter Modified over 8 years ago
1
Greedy Algorithms
2
p2. Activity-selection problem: Problem : Want to schedule as many compatible activities as possible., n activities. Activity i, start time : S i finish time : f i Any two activities i, j are compatible if their intervals do not overlap, i.e. or
3
p3. Greedy-Activity-Selector(s,f) : Complexity : Thm: The above algorithm schedules optimally. Assume, by quicksort Greedy-Activity-Selector(s, f) { n = s.length; A = {a 1 } ; k=1; for m=2 to n do return A }
4
p4. Elements of the Greedy strategy : 1. Greedy-choice property: Assemble globally optimal solution by making locally optimal choice. 2. Optimal substructure: An optimal solution to the problem contains within it optimal solutions to subproblems.
5
p5. 0-1 knapsack problem : ( NP complete ) Problem : Goal : to carry as much value as possible. Fractional knapsack problem : Problem : n items i-th item : worth dollars weight units A person can carry W units. Can take fractions of items ( eg. 1/4, …. ) in decreasing order Example : W=50 item1 : item2 : item3 : 取 item1, item2 及 2/3 的 item3.
6
p6. Huffman codes : a 45 000 0 Frequency (x1000) Fixed-length codeword variable-length codeword b 13 001 101 c 12 010 100 d 16 011 111 e 9 100 1101 f 5 101 1100 Total Use fixed-length codeword : Total Use variable-length codeword :
7
p7. Prefix codes : No codeword is also a prefix of some other codes. 字首 T:T: a : 45 100 55 30 d : 16 1 1 1 25 0 0 b : 13 1 14 c : 12 00 e : 9 1 f : 5 0 cost of the tree T.
8
Constructing a Huffman code : (a) f : 5 (b) (c) e : 9 c : 12b : 13d : 16a : 45c : 12b : 13 14 1 0 f : 5e : 9 d : 16a : 45 14 1 0 f : 5e : 9 d : 16 25 1 0 c : 12b : 13 a : 45 (d) 25 1 0 c : 12b : 13 14 1 0 f : 5e : 9 30 1 0 d : 16 a : 45 (e) a : 45 14 1 0 f : 5e : 9 30 1 0 d : 16 25 1 0 c : 12b : 13 55 1 0 (f) 14 1 0 f : 5e : 9 30 1 0 d : 16 25 1 0 c : 12b : 13 55 1 0 1 0 a : 45 ( 同前頁: T)
9
source : Example : ” A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS.” 1133125126245312432 ABCDEFGILMNDPRSTU 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 11 1 0 23 1 0 5 6 N I 1 0 3 1 0 1 2 FG 6 1 0 12 1 0 3 3 OB 6 3 A 16 1 0 37 10 1 0 4 1 0 22 UL 8 4 S 1 0 4 1 0 22 DR 8 4 M 1 0 2 1 0 1 1 CP 5 3 T 1 0 10 5 E 1 0 21 11 60 10
10
p10. Huffman(C) : Algorithm : Complexity : Huffman(C) { // Q : priority queue for i=1 to n-1 do {z = allocate-Node() ; x = left(z) = Extract-min(Q) ; y = right(z) = Extract-min(Q) ; f(z) = f(x) + f(y) ; Insert(Q, z) ; } return Extract-min(Q) ; }
11
Lemma 2 : C : alphabet set, each c in C with frequency f(c). Let x, y in C with the lowest frequencies f(x) and f(y). Then there exists an optimal prefix code, where the code words for x and y have the same length and differ in the last bit. Proof : T ( optimal ) T’T’’ CC == 同理
12
Lemma 3 : T’ : full binary tree representing an optimal prefix code over C’ 若 T 不是 C 的最佳 prefix code. 則可找到 T’’ 使 B(T’’) < B(T) leaves T, obtained from T’ by replacing z with an internal node with children x and y, is an optimal prefix code. Proof : For any T 是 C 之最佳之 prefix code.
13
p13. Thm : Procedure Huffman produces an optimal prefix code. Proof: By Lemma 2 and 3.
14
p14. Matroids : 1. S : a finite set 2. I : a nonempty family of subsets of S ( 即 I 的元素為集合 ) 並滿足:若 且 則 3. 若 且 則存在 使得 Graphic matroid : and A : acyclic. independent subset ( hereditary property ) ( exchange property ) Example : Matric matroid if columns in A are linearly independent. is a graph. ( i.e. A forms a forest )
15
p15. Example: Matric Matroid : Example: Graphic Matroid:
16
p16. Thm 5 : If G is an undirected graph then is a matroid. Proof : 1. E : finite 2. is hereditary, acyclic graph 之部分仍為 acyclic. 3. 假設 A,B 為 G 中之 forests 且 A :包含 個 trees. B :包含 個 trees.( B 的樹較少棵 ) ( A single node is counted as a tree.) 故在 B 中有一樹 T 包含 A 中的 2 棵樹的 vertices. Why? 亦即 T 中存在一 edge (u,v) 使得 u 和 v 分佈在 A 中的兩棵樹. 故將 (u,v) 加到 A 中 不會產生 cycle. 故 由 1. 2. 3. 定理得證.
17
p17. Thm 6 : All maximal independent subsets in a matroid have the same size. Proof :, A is maximal if it has no extension. 即不存在 使得 假設 A : maximal independent subset. B : maximal independent subset 且 存在 使得 A 為 maximal.
18
p18. Weighted Matroid : Definition : Greedy algorithms on a weighted matroid Problem :, weight function : w(x) for each Given, find has maximal possible weight. Example : Minimum Spanning Tree : weight function defined on E. Define, and Let A be a maximal independent set in I. Then A corresponds to a spanning tree in G.
19
p19. Algorithm : Greedy(M,w) { Sort M.S into monotonically decreasing order by weight w ; For each, taken in monotonically decreasing order by w(x) ; do if then Return A } 若 則上述需 步驟。
20
Lemma 7 : 令 為一加權 ( weight ) matroid. Proof : S 依加權函數 w, 排列由大到小. 令 x 為 S 中第一個使 之 independent 元素 ( 但此 x 並不一定存在 ). 若此 x 存在,則存在一最佳 ( 即 w(A) 最大 ) 之 A 若沒有上述 x 存在,則 為唯一的 independent set. Why ? 現假設 B 為一非空之 optimal subset. 若, 則取 A 等於 B 故得證. 若, 則 B 中之元素的 weight 不會比 x 之 weight 大. 假設 但已知 令 由 exchange property, 可將 A 擴充至 而且 A 仍保持 為 independent. 取 B 為 optimal A 為 optimal 且含 x.
21
p21. Lemma 8-9 : Proof : 假設 x 為 A 之 extension 但不為 之 extension. 令 為任一 matroid. 若 且 x 不為 之 extension, 則 x 不為任一 independent set 之 extension. independent. x 為 A 之 extension. independent. 由假設 x 不是 之 extension.
22
p22. Lemma 10(Matroids optimal-substructure) : Proof : 若 且 且 A : maximum weighted 令 x 為 Greedy 演算法中第一個被選入的元素. 尋找 M 中包含 x 之 maximum-weight independent subset 可以 被轉化為尋找 matroid 之 maximum weight ind. subset 又 故由 M 中含 x 之 maximum-weight solution 可找到 M’ 之 maximum-weight solution. 反之亦然.
23
p23. Thm 11 : 給定, 則 Greedy(M,w) 可以找到 optimal solution. Proof: By Lemma 16.9, pass over all elements that are not extensions of . By lemma 16.7, once the first x is selected, Greedy is safe to add x to A. Lemma 16.10, implies that the remaining problem is one of finding an Optimal subset in the matroid M’ which is the contraction of M by x.
24
p24. A task-scheduling problem : S={1,2,…..,n} n unit-time tasks. Deadlines : task i 需在 d i 前完成. Penalties : 若 task i 不能在 d i 前完成,則罰 w i 若 task i 能在 d i 前完成者無 penalty. 目標:安排一執行順序使 penalty 最小. Example : 1 4 60 2 2 70 3 4 40 4 3 5030 5 1 6 4 10 7 6 20 Schedule : penalty 20+30=50.
25
Def : 在一 schedule 中: late task : if it finishes after its deadline. early task : if it finishes before its deadline. Early-first form : early tasks precede the late tasks. Canonical form : same as early-first form and the early tasks are scheduled in order of monotonically increasing deadlines. a set A of task is independent :若存在一 schedule 使得 A 中無 late schedule. 故任一 schedule 中之 early tasks 形成一 independent set. 令 I 表所有 independent set 之集合. 如何判定一 task 集合是否為 independent ? 若 i j kk+1 i,j : early task j kk+1 i t=1,2,…,n ,令 N t (A) 表 A 中之 tasks 其 deadline t 之 task 個數.
26
p26. Lemma 12 : Proof : 若, 則 A 中存在 late task. 令 A : tasks 所形成之集合. 則下列敘述為等價 1. A : independent. 2. For t=1,2,…n , 3. 若 A 中之 tasks 依 deadlines ( nondecreasing ) 排序,則無 late task. 故 顯然.
27
p27. Thm 13 : Proof : (1)Clearly. (2) 由上述 independent set 之定義知其滿足 matroid 之第 2 個條件。 (3)Suppose A, B I and |B| > |A|. Let k be the largest t s.t. Such t exist. It holds at least for t=0. Since N n (B)=|B| and N n (A)=|A|, but |B|>|A|, we must have k N j (A). Thus, B contains more tasks with deadline k+1 than A does. Let task i be in B-A with deadline k+1 and A’ = A {i}. By property 2 of lemma 12, we show A’ is ind. For t in [0, k], N t (A’)=N t (A) t, since A is ind. For t in (k, n], we have N t (A’) N t (B) t, since B is ind. Thus A’ is ind. And (S, I ) is a matroid. S={ unit tasks with deadline } I={ independent sets of tasks } (S,I ) is a matroid.
28
p28. Solution by Greedy Algorithm Sort w 1,….., w n in decreasing order Check A {i} I ? I.e. is A {i} independent? I.e does N t (A {i}) t hold for t=0,…,n? Time complexity: O(n 2 ).
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.