1 / 26

CPSC 411 Design and Analysis of Algorithms

CPSC 411 Design and Analysis of Algorithms. Set 4: Greedy Algorithms Prof. Jennifer Welch Fall 2008. Greedy Algorithm Paradigm. Characteristics of greedy algorithms: make a sequence of choices each choice is the one that seems best so far, only depends on what's been done so far

cosima
Download Presentation

CPSC 411 Design and Analysis of Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPSC 411Design and Analysis of Algorithms Set 4: Greedy Algorithms Prof. Jennifer Welch Fall 2008 CPSC 411, Fall 2008: Set 4

  2. Greedy Algorithm Paradigm • Characteristics of greedy algorithms: • make a sequence of choices • each choice is the one that seems best so far, only depends on what's been done so far • choice produces a smaller problem to be solved • In order for greedy heuristic to solve the problem, it must be that the optimal solution to the big problem contains optimal solutions to subproblems CPSC 411, Fall 2008: Set 4

  3. Designing a Greedy Algorithm • Cast the problem so that we make a greedy (locally optimal) choice and are left with one subproblem • Prove there is always a (globally) optimal solution to the original problem that makes the greedy choice • Show that the choice together with an optimal solution to the subproblem gives an optimal solution to the original problem CPSC 411, Fall 2008: Set 4

  4. Some Greedy Algorithms • Kruskal's MST algorithm • Prim's MST algorithm • Dijkstra's Single Source Shortest Path algorithm • fractional knapsack algorithm • Huffman codes • … CPSC 411, Fall 2008: Set 4

  5. Minimum Spanning Tree 16 5 4 11 12 7 3 14 9 6 2 8 10 15 17 13 18 Given: Connected graph with weighted edges. Goal: Find a subset of the edges that span all the nodes, create no cycle, and minimize the sum of the weights CPSC 411, Fall 2008: Set 4

  6. Facts About MSTs • There can be many spanning trees of a graph • In fact, there can be many minimum spanning trees of a graph 2 1 1 2 CPSC 411, Fall 2008: Set 4

  7. Uniqueness of MST Proposition. If every edge in a connected graph has a unique weight, then there is a unique MST • Seeking a contradiction, suppose there are two distinct MSTs, say M1 and M2. • Let e be an edge with minimum weight that is one graph but not the other (w.l.o.g., suppose e in M1). • If e is added to M2, then a cycle is formed. • Let e' be an edge in the cycle that is not in M1 CPSC 411, Fall 2008: Set 4

  8. Uniqueness of MST e in M1 but not M2 M2: e' in M2 but not M1. Since M2 is MST, we have wt(e’) < wt(e) Replacing e with e' in M1 creates a new MST M3 whose weight is less than that of M2 contradiction CPSC 411, Fall 2008: Set 4

  9. Kruskal's MST algorithm 16 5 4 11 12 7 3 14 9 6 2 8 10 15 17 13 18 consider the edges in increasing order of weight, add an edge iff it does not cause a cycle CPSC 411, Fall 2008: Set 4

  10. Why is Kruskal's Greedy? • Algorithm manages a set of edges s.t. • these edges are a subset of some MST • At each iteration: • choose an edge so that the MST-subset property remains true • subproblem left is to do the same with the remaining edges • Always try to add cheapest available edge that will not violate the tree property • locally optimal choice CPSC 411, Fall 2008: Set 4

  11. Correctness of Kruskal's Alg. • Let E={e1, e2, …, en-1} be the sequence of edges chosen • The graph corresponding to E is acyclic and connects all vertices, so it must be a tree. • Suppose it is not minimum weight • Let eibe the edge where the algorithm goes wrong • {e1,…,ei-1} is part of some MST M • but {e1,…,ei} is not part of any MST CPSC 411, Fall 2008: Set 4

  12. Correctness of Kruskal's Alg. M: ei, forms a cycle in M wt(e*) > wt(ei) replacing e* w/ eiforms a spanning tree with smaller weight than M, contradiction! e* : min wt. edge in cycle not in e1 to ei-1 white edges are part of MST M, which contains e1 to ei-1, but not ei CPSC 411, Fall 2008: Set 4

  13. Implementing Kruskal's Alg. • Sort edges by weight • efficient algorithms known • How to test quickly if adding in the next edge would cause a cycle? • use disjoint set data structure, later CPSC 411, Fall 2008: Set 4

  14. Another Greedy MST Alg. • Kruskal's algorithm maintains a forest that grows until it forms a spanning tree • Alternative idea is to keep just one tree and grow it until it spans all the nodes • Prim's algorithm • At each iteration, choose the minimum weight outgoing edge to add • greedy! CPSC 411, Fall 2008: Set 4

  15. Knapsack Problem • There are n different items in a store • Item i : • weighs wi pounds • worth $vi • A thief breaks in • Can carry up to W pounds in his knapsack • What should he take to maximize the value of his haul? CPSC 411, Fall 2008: Set 4

  16. 0-1 vs. Fractional Knapsack • 0-1 Knapsack Problem: • the items cannot be divided • thief must take entire item or leave it behind • Fractional Knapsack Problem: • thief can take partial items • for instance, items are liquids or powders • solvable with a greedy algorithm… CPSC 411, Fall 2008: Set 4

  17. Greedy Fractional Knapsack Algorithm • Sort items in decreasing order of value per pound • While still room in the knapsack (limit of W pounds) do • consider next item in sorted list • take as much as possible (all there is or as much as will fit) • O(n log n) running time (for the sort) CPSC 411, Fall 2008: Set 4

  18. Greedy 0-1 Knapsack Alg? • 3 items: • item 1 weighs 10 lbs, worth $60 ($6/lb) • item 2 weighs 20 lbs, worth $100 ($5/lb) • item 3 weighs 30 lbs, worth $120 ($4/lb) • knapsack can hold 50 lbs • greedy strategy: • take item 1 • take item 2 • no room for item 3 suboptimal! CPSC 411, Fall 2008: Set 4

  19. 0-1 Knapsack Problem • Taking item 1 is a big mistake globally although it looks good locally • Later we'll see a different algorithm design paradigm that does work for this problem CPSC 411, Fall 2008: Set 4

  20. Finding Optimal Source Code • Input: • data file of characters and • number of occurrences of each character • Output: • a binary encoding of each character so that the data file can be represented as efficiently as possible • The code is optimal if the file is produced by a memoryless source that has the specified character frequencies. CPSC 411, Fall 2008: Set 4

  21. Huffman Code • Idea: use short codes for more frequent characters and long codes for less frequent CPSC 411, Fall 2008: Set 4

  22. How to Decode? • With fixed length code, easy: • break up into 3's, for instance • For variable length code, ensure that no character's code is the prefix of another • no ambiguity 101111110100 b d e a a CPSC 411, Fall 2008: Set 4

  23. Binary Tree Representation fixed length code 0 1 cost of code is sum, over all chars c, of number of occurrences of c times depth of c in the tree 0 0 1 0 1 0 1 0 1 a b c d e f CPSC 411, Fall 2008: Set 4

  24. 1 Binary Tree Representation 0 1 variable length code a 0 1 cost of code is sum, over all chars c, of number of occurrences of c times depth of c in the tree 0 0 1 b c 0 1 d f e CPSC 411, Fall 2008: Set 4

  25. Algorithm to Construct Tree Representing Huffman Code • Given set C of n chars, c occurs f[c] times • insert each c into priority queue Q using f[c] as key • for i := 1 to n-1 do • x := extract-min(Q) • y := extract-min(Q) • make a new node z w/ left child x (label edge 0), right child y (label edge 1), and f[z] = f[x] + f[y] • insert z into Q CPSC 411, Fall 2008: Set 4

  26. <board work> CPSC 411, Fall 2008: Set 4

More Related