Lecture 9. Greedy Algorithm
|
|
- Georgiana Lawrence
- 5 years ago
- Views:
Transcription
1 Lecture 9. Greedy Algorithm T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to Algorithms, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo Copyright Networking Laboratory
2 Greedy Algorithms A greedy algorithm always makes the choice that looks best at the moment My everyday examples Playing cards Invest on stocks Choose a university The hope A locally optimal choice will lead to a globally optimal solution Algorithms Networking Laboratory 2/45
3 Introduction Similar to Dynamic Programming It applies to Optimization Problem When we have a choice to make, make the one that looks best right now Make a locally optimal choice in hope of getting a globally optimal solution Greedy algorithms don t always yield an optimal solution, but sometimes they do For many problems, it provides an optimal solution much more quickly than a dynamic programming approach Algorithms Networking Laboratory 3/45
4 An Activity Selection Problem The problem of scheduling several competing activities that require exclusive use of a common resource n activities require exclusive use of a common resource For example, scheduling the use of a classroom Set of activities S={a 1,., a n }. a i needs resource during period [ s i, f i ) [ ) is a half-open interval s i = start time and f i = finish time Goal Select the largest possible set of non-overlapping mutually compatible) activities Note: Could have many other objectives Schedule room for longest time Maximize income rental fees Algorithms Networking Laboratory 4/45
5 An Activity Selection Problem Here are a set of start and finish times What is the maximum number of activities that can be completed? Algorithms Networking Laboratory 5/45
6 An Activity Selection Problem What is the maximum number of activities that can be completed? {a3, a9, a11} can be completed But so can {a1, a4, a8, a11} which is a larger set But it is not unique, consider {a2, a4, a9, a11} Algorithms Networking Laboratory 6/45
7 Algorithms Networking Laboratory 7/45
8 Algorithms Networking Laboratory 8/45
9 Algorithms Networking Laboratory 9/45
10 An The Optimal Substructure of the A.-S. Problem S ij = {a k S : f i s k < f k s j } = activities that start after a i finishes and finish before a j starts Activities in S i j are compatible with all activities that finish by f i, and all activities that start no earlier than s j To represent the entire problem, add fictitious activities: a0 = [ -, 0 ) an+1 = [, +1 ) We don t care about - in a 0 or +1 in a n+1 Then S = S 0, n+1 Range for S i j is 0 i, j n + 1 Algorithms Networking Laboratory 10/45
11 An The Optimal Substructure of the A.-S. Problem Assume that activities are sorted by monotonically increasing finish time f 0 f 1 f 2 f n < f n+1 Then i j S i j = If there exists ak S i j : But i j f i f j. Contradiction f i s k < f k s j < f j f i < f j So only need to worry about S i j with 0 i < j n + 1 All other S i j are Algorithms Networking Laboratory 11/45
12 An The Optimal Substructure of the A.-S. Problem Suppose that a solution to S i j includes ak. Have 2 subproblems: S i k start after a i finishes, finish before ak starts) S k j start after ak finishes, finish before a j starts) Solution to S i j { solution to Sik } {a k } { solution to S k j } Since a k is in neither subproblem the subproblems are disjoint solution to S = solution to S ik solution to S kj Algorithms Networking Laboratory 12/45
13 An The Optimal Substructure of the A.-S. Problem If an optimal solution to S ij includes a k, then the solutions to S ik and S kj used within this solution must be optimal as well Let A ij = optimal solution to S ij So A i j = A i k {a k } A k j, assuming: S i j is nonempty we know a k Algorithms Networking Laboratory 13/45
14 An The Optimal Substructure of the A.-S. Problem c[i, j] : size of maximum-size subset of mutually compatible activities in S ij i j S i j = c[i, j] = 0 If S ij, suppose we know that a k is in the subset c [i, j] = c [i, k] c [k, j]. But, we don t know which k to use, and so Algorithms Networking Laboratory 14/45
15 Early Finish Greedy Select the activity with the earliest finish Eliminate the activities that could not be scheduled Repeat! Algorithms Networking Laboratory 15/45
16 Algorithms Networking Laboratory 16/45
17 Algorithms Networking Laboratory 17/45
18 Algorithms Networking Laboratory 18/45
19 Algorithms Networking Laboratory 19/45
20 Algorithms Networking Laboratory 20/45
21 Algorithms Networking Laboratory 21/45
22 Algorithms Networking Laboratory 22/45
23 A Recursive Greedy Algorithm Assumes activities already sorted by monotonically increasing finish time If not, then sort in On lg n) time Return an optimal solution for S i,n+1 Initial call: REC-ACTIVITY-SELECTORs, f, 0, n) Time: n) each activity examined exactly once Algorithms Networking Laboratory 23/45
24 An Iterative Greedy Algorithm Time n) Algorithms Networking Laboratory 24/45
25 Greedy-Choice Property A globally optimal solution can be arrived at by making a locally optimal greedy) choice Dynamic programming Make a choice at each step Choice depends on knowing optimal solutions to subproblems Solve subproblems first Bottom-up manner Greedy algorithm Make a choice at each step Make the choice before solving the subproblems Top-down fashion Algorithms Networking Laboratory 25/45
26 The Knapsack Problem The famous knapsack problem: A thief breaks into a museum. Fabulous paintings, sculptures, and jewels are everywhere. The thief has a good eye for the value of these objects, and knows that each will fetch hundreds or thousands of dollars on the clandestine art collector s market. But, the thief has only brought a single knapsack to the scene of the robbery, and can take away only what he can carry. What items should the thief take to maximize the haul? Algorithms Networking Laboratory 26/45
27 Greedy Algorithm vs. Dynamic Programming The knapsack problem Good example of the difference 0-1 knapsack problem: not solvable by greedy n items Item i is worth $v i, weighs w i pounds Find a most valuable subset of items with total weight W Have to either take an item or not take it can t take part of it Algorithms Networking Laboratory 27/45
28 Greedy Algorithm vs. Dynamic Programming Fractional knapsack problem: Solvable by greedy Like the 0-1 knapsack problem, but can take fraction of an item Both have optimal substructure But the fractional knapsack problem has the greedy-choice property, and the 0-1 knapsack problem does not To solve the fractional problem, rank items by value/weight v i / w i Let v i / w i v i+1 / w i+1 for all i Algorithms Networking Laboratory 28/45
29 0-1 Knapsack Problem i v i w i v i /w i W = 50 Greedy solution Take items 1 and 2 value = 160, weight = 30 Have 20 pounds of capacity left over Optimal solution Take items 2 and 3 value = 220, weight = 50 No leftover capacity Algorithms Networking Laboratory 29/45
30 Knapsack Problem Algorithms Networking Laboratory 30/45
31 0-1 Knapsack Dynamic Programming Pi, w) the maximum profit that can be obtained from items 1 to i, if the knapsack has size w Case 1: thief takes item i Pi, w) = Case 2: thief does not take item i Pi, w) = v i + Pi - 1, w-w i ) Pi - 1, w) Algorithms Networking Laboratory 31/45
32 0-1 Knapsack Dynamic Programming Item i was taken Item i was not taken Pi, w) = max {v i + Pi - 1, w-w i ), Pi - 1, w) } 0 : 1 w - w i w W first second i-1 i n 0 Algorithms Networking Laboratory 32/45
33 0 Example: Pi, w) = max {v i + Pi - 1, w-w i ), Pi - 1, w) } W = 5 P1, 1) = P0, 1) = 0 Item Weight Value P1, 2) = max{12+0, 0} = P1, 3) = max{12+0, 0} = P1, 4) = max{12+0, 0} = P1, 5) = max{12+0, 0} = 12 P2, 1)= max{10+0, 0} = 10 P3, 1)= P2,1) = 10 P4, 1)= P3,1) = 10 P2, 2)= max{10+0, 12} = 12 P3, 2)= P2,2) = 12 P4, 2)= max{15+0, 12} = 15 P2, 3)= max{10+12, 12} = 22 P3, 3)= max{20+0, 22}=22 P4, 3)= max{15+10, 22}=25 P2, 4)= max{10+12, 12} = 22 P3, 4)= max{20+10,22}=30 P4, 4)= max{15+12, 30}=30 P2, 5)= max{10+12, 12} = 22 P3, 5)= max{20+12,22}=32 P4, 5)= max{15+22, 32}=37 Algorithms Networking Laboratory 33/45
34 Reconstructing the Optimal Solution Item 4 Item 2 Item 1 Start at Pn, W) When you go left-up item i has been taken When you go straight up item i has not been taken Algorithms Networking Laboratory 34/45
35 0-1 Knapsack Dynamic Programming P[ k -1, w] P[ k, w] max{ P[ k -1, w - w ] + v, P[ k Define P[k,w] to be the best selection from S k with weight at most w Since P[k,w] is defined in terms of P[k-1,*], we can use two arrays of instead of a matrix Running time: OnW) Not a polynomial-time algorithm since W may be large This is a pseudo-polynomial time algorithm k k -1, w]} if w else k w Algorithm 0-1KnapsackS, W): Input: set S of n items with benefit v i and weight w i ; maximum weight W Output: benefit of best subset of S with weight at most W let A and B be arrays of length W + 1 for w 0 to W do B[w] 0 for k 1 to n do copy array B into array A for w w k to W do if A[w-w k ] + v k > A[w] then B[w] A[w-w k ] + v k return B[W] Algorithms Networking Laboratory 36/45
36 Self-Study Section 16.3 Huffman codes Algorithms Networking Laboratory 37/45
37 Huffman Codes Huffman codes compress data very effectively savings of 20% to 90% are typical Data compression by assigning binary codes to characters Huffman s greedy algorithm uses a table giving how often each character occurs i.e., its frequency) It builds up an optimal way of representing each character as a binary string. Example: Storing a data file of 100,000 characters contains only six different characters: a, b, c, d, e,f 300,000 bits 224,000 bits Algorithms Networking Laboratory 38/45
38 Prefix Codes 1/2) In a prefix code, no code is also a prefix of some other code Any optimal character code has an equally optimal prefix code Example: abc = Easy encoding and decoding Use a binary tree for decoding Once a string of bits matches a character code, out put that character with no ambiguity no need to look ahead) Algorithms Networking Laboratory 39/45
39 Prefix Code 2/2) An optimal code for a file is always represented by a full binary tree in which every non-leaf node has two children Given a tree T corresponding to a prefix code, we can easily compute the number of bits required to encode a file Let C = set of unique characters in file Let fc) = frequency of character c in file Let d T c) = depth of c s leaf node in T The number of bits required to encode a file cost of the tree T) c C B[ T] f c) d c) T Algorithms Networking Laboratory 40/45
40 Constructing a Huffman Code 1/2) Build a tree T by merging C nodes in a bottom-up manner Use a min-priority queue Q to keep nodes ordered by frequency Algorithms Networking Laboratory 41/45
41 Constructing a Huffman Code 2/2) Algorithms Networking Laboratory 42/45
42 Correctness of Huffman s Algorithm 1/3) Huffman exhibits the greedy choice property Given a tree T representing an arbitrary optimal prefix code Let a and b be two characters that are sibling leaves of maximum depth in a tree T Assume x and y have lowest frequencies There exists an optimal code in which x and y are at the maximum depth greedy choice) Prove that moving x to the bottom similarly, y to the bottom) yields a better optimal) solution Algorithms Networking Laboratory 43/45
43 Algorithms Correctness of Huffman s Algorithm 2/3) Assume fx) fy) and fa) fb). We know fx) fa) and fy) fb) B[T] B[T ] similarly, B[T] B[T ]) Networking Laboratory 44/45 ) ) ) ) ] [ ] [ ' ' c d c f c d c f B T T B T C c T C c )) ) )) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ' ' x d a d x f a f x d a f a d x f a d a f x d x f a d a f x d x f a d a f x d x f T T T T T T T T T T
44 Correctness of Huffman s Algorithm 3/3) Huffman exhibits optimal substructure Consider the optimal tree T for characters C Let x and y be lowest frequency characters in C Consider the optimal tree T for C =C-{x,y}U{z}, where fz)=fx)+fy) If there is a better tree for C, call it T, then we could use T to build a better original tree by adding in x and y under z The optimal tree T is optimal, so this is a contradiction Thus T is the optimal tree for C Huffman produces optimal prefix code Immediate from above claims Algorithms Networking Laboratory 45/45
Activity selection. Goal: Select the largest possible set of nonoverlapping (mutually compatible) activities.
Greedy Algorithm 1 Introduction Similar to dynamic programming. Used for optimization problems. Not always yield an optimal solution. Make choice for the one looks best right now. Make a locally optimal
More informationCS583 Lecture 11. Many slides here are based on D. Luebke slides. Review: Dynamic Programming
// CS8 Lecture Jana Kosecka Dynamic Programming Greedy Algorithms Many slides here are based on D. Luebke slides Review: Dynamic Programming A meta-technique, not an algorithm (like divide & conquer) Applicable
More informationGreedy Algorithms My T. UF
Introduction to Algorithms Greedy Algorithms @ UF Overview A greedy algorithm always makes the choice that looks best at the moment Make a locally optimal choice in hope of getting a globally optimal solution
More informationKnapsack and Scheduling Problems. The Greedy Method
The Greedy Method: Knapsack and Scheduling Problems The Greedy Method 1 Outline and Reading Task Scheduling Fractional Knapsack Problem The Greedy Method 2 Elements of Greedy Strategy An greedy algorithm
More informationGreedy. Outline CS141. Stefano Lonardi, UCR 1. Activity selection Fractional knapsack Huffman encoding Later:
October 5, 017 Greedy Chapters 5 of Dasgupta et al. 1 Activity selection Fractional knapsack Huffman encoding Later: Outline Dijkstra (single source shortest path) Prim and Kruskal (minimum spanning tree)
More information21. Dynamic Programming III. FPTAS [Ottman/Widmayer, Kap. 7.2, 7.3, Cormen et al, Kap. 15,35.5]
575 21. Dynamic Programming III FPTAS [Ottman/Widmayer, Kap. 7.2, 7.3, Cormen et al, Kap. 15,35.5] Approximation 576 Let ε (0, 1) given. Let I opt an optimal selection. No try to find a valid selection
More informationif the two intervals overlap at most at end
Activity Selection Given a set of activities represented by intervals (s i f i ), i =1 ::: n. To select a maximum number of compatible intervals (activities). Two activities (s i f i ) and (s j f j ) are
More informationGeneral Methods for Algorithm Design
General Methods for Algorithm Design 1. Dynamic Programming Multiplication of matrices Elements of the dynamic programming Optimal triangulation of polygons Longest common subsequence 2. Greedy Methods
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 5 Greedy Algorithms Interval Scheduling Interval Partitioning Guest lecturer: Martin Furer Review In a DFS tree of an undirected graph, can there be an edge (u,v)
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 6 Greedy Algorithms Interval Scheduling Interval Partitioning Scheduling to Minimize Lateness Sofya Raskhodnikova S. Raskhodnikova; based on slides by E. Demaine,
More informationDynamic Programming. Cormen et. al. IV 15
Dynamic Programming Cormen et. al. IV 5 Dynamic Programming Applications Areas. Bioinformatics. Control theory. Operations research. Some famous dynamic programming algorithms. Unix diff for comparing
More information6. DYNAMIC PROGRAMMING I
6. DYNAMIC PROGRAMMING I weighted interval scheduling segmented least squares knapsack problem RNA secondary structure Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley Copyright 2013
More informationCS 6901 (Applied Algorithms) Lecture 3
CS 6901 (Applied Algorithms) Lecture 3 Antonina Kolokolova September 16, 2014 1 Representative problems: brief overview In this lecture we will look at several problems which, although look somewhat similar
More informationCS 561, Lecture: Greedy Algorithms. Jared Saia University of New Mexico
CS 561, Lecture: Greedy Algorithms Jared Saia University of New Mexico Outline Greedy Algorithm Intro Activity Selection Knapsack 1 Greedy Algorithms Greed is Good - Michael Douglas in Wall Street A greedy
More informationToday s Outline. CS 561, Lecture 15. Greedy Algorithms. Activity Selection. Greedy Algorithm Intro Activity Selection Knapsack
Today s Outline CS 561, Lecture 15 Jared Saia University of New Mexico Greedy Algorithm Intro Activity Selection Knapsack 1 Greedy Algorithms Activity Selection Greed is Good - Michael Douglas in Wall
More informationDAA Unit- II Greedy and Dynamic Programming. By Mrs. B.A. Khivsara Asst. Professor Department of Computer Engineering SNJB s KBJ COE, Chandwad
DAA Unit- II Greedy and Dynamic Programming By Mrs. B.A. Khivsara Asst. Professor Department of Computer Engineering SNJB s KBJ COE, Chandwad 1 Greedy Method 2 Greedy Method Greedy Principal: are typically
More informationCS Lunch. Dynamic Programming Recipe. 2 Midterm 2! Slides17 - Segmented Least Squares.key - November 16, 2016
CS Lunch 1 Michelle Oraa Ali Tien Dao Vladislava Paskova Nan Zhuang Surabhi Sharma Wednesday, 12:15 PM Kendade 307 2 Midterm 2! Monday, November 21 In class Covers Greedy Algorithms Closed book Dynamic
More information4.8 Huffman Codes. These lecture slides are supplied by Mathijs de Weerd
4.8 Huffman Codes These lecture slides are supplied by Mathijs de Weerd Data Compression Q. Given a text that uses 32 symbols (26 different letters, space, and some punctuation characters), how can we
More informationDynamic Programming: Interval Scheduling and Knapsack
Dynamic Programming: Interval Scheduling and Knapsack . Weighted Interval Scheduling Weighted Interval Scheduling Weighted interval scheduling problem. Job j starts at s j, finishes at f j, and has weight
More informationGreedy Algorithms and Data Compression. Curs 2018
Greedy Algorithms and Data Compression. Curs 2018 Greedy Algorithms A greedy algorithm, is a technique that always makes a locally optimal choice in the myopic hope that this choice will lead to a globally
More informationAlgorithms: COMP3121/3821/9101/9801
NEW SOUTH WALES Algorithms: COMP3121/3821/9101/9801 Aleks Ignjatović School of Computer Science and Engineering University of New South Wales TOPIC 4: THE GREEDY METHOD COMP3121/3821/9101/9801 1 / 23 The
More informationDynamic Programming( Weighted Interval Scheduling)
Dynamic Programming( Weighted Interval Scheduling) 17 November, 2016 Dynamic Programming 1 Dynamic programming algorithms are used for optimization (for example, finding the shortest path between two points,
More informationCSE 421 Dynamic Programming
CSE Dynamic Programming Yin Tat Lee Weighted Interval Scheduling Interval Scheduling Job j starts at s(j) and finishes at f j and has weight w j Two jobs compatible if they don t overlap. Goal: find maximum
More informationCS325: Analysis of Algorithms, Fall Final Exam
CS: Analysis of Algorithms, Fall 0 Final Exam I don t know policy: you may write I don t know and nothing else to answer a question and receive percent of the total points for that problem whereas a completely
More informationAdvanced Analysis of Algorithms - Midterm (Solutions)
Advanced Analysis of Algorithms - Midterm (Solutions) K. Subramani LCSEE, West Virginia University, Morgantown, WV {ksmani@csee.wvu.edu} 1 Problems 1. Solve the following recurrence using substitution:
More informationCSE 202 Dynamic Programming II
CSE 202 Dynamic Programming II Chapter 6 Dynamic Programming Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 Algorithmic Paradigms Greed. Build up a solution incrementally,
More information3 Greedy Algorithms. 3.1 An activity-selection problem
3 Greedy Algorithms [BB chapter 6] with different examples or [Par chapter 2.3] with different examples or [CLR2 chapter 16] with different approach to greedy algorithms 3.1 An activity-selection problem
More informationCS60007 Algorithm Design and Analysis 2018 Assignment 1
CS60007 Algorithm Design and Analysis 2018 Assignment 1 Palash Dey and Swagato Sanyal Indian Institute of Technology, Kharagpur Please submit the solutions of the problems 6, 11, 12 and 13 (written in
More informationComputer Science & Engineering 423/823 Design and Analysis of Algorithms
Computer Science & Engineering 423/823 Design and Analysis of s Lecture 09 Dynamic Programming (Chapter 15) Stephen Scott (Adapted from Vinodchandran N. Variyam) 1 / 41 Spring 2010 Dynamic programming
More information6. DYNAMIC PROGRAMMING I
6. DYNAMIC PRORAMMIN I weighted interval scheduling segmented least squares knapsack problem RNA secondary structure Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley http://www.cs.princeton.edu/~wayne/kleinberg-tardos
More informationComputer Science & Engineering 423/823 Design and Analysis of Algorithms
Computer Science & Engineering 423/823 Design and Analysis of Algorithms Lecture 03 Dynamic Programming (Chapter 15) Stephen Scott and Vinodchandran N. Variyam sscott@cse.unl.edu 1/44 Introduction Dynamic
More informationCopyright 2000, Kevin Wayne 1
//8 Fast Integer Division Too (!) Schönhage Strassen algorithm CS 8: Algorithm Design and Analysis Integer division. Given two n-bit (or less) integers s and t, compute quotient q = s / t and remainder
More informationLecture 1 : Data Compression and Entropy
CPS290: Algorithmic Foundations of Data Science January 8, 207 Lecture : Data Compression and Entropy Lecturer: Kamesh Munagala Scribe: Kamesh Munagala In this lecture, we will study a simple model for
More informationCSE 431/531: Analysis of Algorithms. Dynamic Programming. Lecturer: Shi Li. Department of Computer Science and Engineering University at Buffalo
CSE 431/531: Analysis of Algorithms Dynamic Programming Lecturer: Shi Li Department of Computer Science and Engineering University at Buffalo Paradigms for Designing Algorithms Greedy algorithm Make a
More informationData Structures in Java
Data Structures in Java Lecture 20: Algorithm Design Techniques 12/2/2015 Daniel Bauer 1 Algorithms and Problem Solving Purpose of algorithms: find solutions to problems. Data Structures provide ways of
More informationLecture 11. Single-Source Shortest Paths All-Pairs Shortest Paths
Lecture. Single-Source Shortest Paths All-Pairs Shortest Paths T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to, rd Edition, MIT Press, 009 Sungkyunkwan University Hyunseung Choo choo@skku.edu
More informationCS 580: Algorithm Design and Analysis
CS 580: Algorithm Design and Analysis Jeremiah Blocki Purdue University Spring 208 Announcement: Homework 3 due February 5 th at :59PM Final Exam (Tentative): Thursday, May 3 @ 8AM (PHYS 203) Recap: Divide
More informationSlides for CIS 675. Huffman Encoding, 1. Huffman Encoding, 2. Huffman Encoding, 3. Encoding 1. DPV Chapter 5, Part 2. Encoding 2
Huffman Encoding, 1 EECS Slides for CIS 675 DPV Chapter 5, Part 2 Jim Royer October 13, 2009 A toy example: Suppose our alphabet is { A, B, C, D }. Suppose T is a text of 130 million characters. What is
More informationThe Greedy Method. Design and analysis of algorithms Cs The Greedy Method
Design and analysis of algorithms Cs 3400 The Greedy Method 1 Outline and Reading The Greedy Method Technique Fractional Knapsack Problem Task Scheduling 2 The Greedy Method Technique The greedy method
More informationWhat is Dynamic Programming
What is Dynamic Programming Like DaC, Greedy algorithms, Dynamic Programming is another useful method for designing efficient algorithms. Why the name? Eye of the Hurricane: An Autobiography - A quote
More informationCSE 421 Weighted Interval Scheduling, Knapsack, RNA Secondary Structure
CSE Weighted Interval Scheduling, Knapsack, RNA Secondary Structure Shayan Oveis haran Weighted Interval Scheduling Interval Scheduling Job j starts at s(j) and finishes at f j and has weight w j Two jobs
More informationChapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.1 Interval Scheduling Interval Scheduling Interval scheduling. Job j starts at s j and
More informationLecture 2: Divide and conquer and Dynamic programming
Chapter 2 Lecture 2: Divide and conquer and Dynamic programming 2.1 Divide and Conquer Idea: - divide the problem into subproblems in linear time - solve subproblems recursively - combine the results in
More informationCSE 421 Greedy: Huffman Codes
CSE 421 Greedy: Huffman Codes Yin Tat Lee 1 Compression Example 100k file, 6 letter alphabet: File Size: ASCII, 8 bits/char: 800kbits 2 3 > 6; 3 bits/char: 300kbits better: 2.52 bits/char 74%*2 +26%*4:
More informationGreedy Algorithms and Data Compression. Curs 2017
Greedy Algorithms and Data Compression. Curs 2017 Greedy Algorithms An optimization problem: Given of (S, f ), where S is a set of feasible elements and f : S R is the objective function, find a u S, which
More informationCSE 417. Chapter 4: Greedy Algorithms. Many Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
CSE 417 Chapter 4: Greedy Algorithms Many Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 Greed is good. Greed is right. Greed works. Greed clarifies, cuts through,
More informationCS 6783 (Applied Algorithms) Lecture 3
CS 6783 (Applied Algorithms) Lecture 3 Antonina Kolokolova January 14, 2013 1 Representative problems: brief overview of the course In this lecture we will look at several problems which, although look
More informationCS4800: Algorithms & Data Jonathan Ullman
CS4800: Algorithms & Data Jonathan Ullman Lecture 22: Greedy Algorithms: Huffman Codes Data Compression and Entropy Apr 5, 2018 Data Compression How do we store strings of text compactly? A (binary) code
More information1 Basic Definitions. 2 Proof By Contradiction. 3 Exchange Argument
1 Basic Definitions A Problem is a relation from input to acceptable output. For example, INPUT: A list of integers x 1,..., x n OUTPUT: One of the three smallest numbers in the list An algorithm A solves
More informationChapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.1 Interval Scheduling Interval Scheduling Interval scheduling. Job j starts at s j and
More informationCMSC 451: Lecture 7 Greedy Algorithms for Scheduling Tuesday, Sep 19, 2017
CMSC CMSC : Lecture Greedy Algorithms for Scheduling Tuesday, Sep 9, 0 Reading: Sects.. and. of KT. (Not covered in DPV.) Interval Scheduling: We continue our discussion of greedy algorithms with a number
More information0 1 d 010. h 0111 i g 01100
CMSC 5:Fall 07 Dave Mount Solutions to Homework : Greedy Algorithms Solution : The code tree is shown in Fig.. a 0000 c 0000 b 00 f 000 d 00 g 000 h 0 i 00 e Prob / / /8 /6 / Depth 5 Figure : Solution
More informationDynamic Programming. Credits: Many of these slides were originally authored by Jeff Edmonds, York University. Thanks Jeff!
Dynamic Programming Credits: Many of these slides were originally authored by Jeff Edmonds, York University. Thanks Jeff! Optimization Problems For most, the best known algorithm runs in exponential time.
More information1 Assembly Line Scheduling in Manufacturing Sector
Indian Institute of Information Technology Design and Manufacturing, Kancheepuram, Chennai 600 27, India An Autonomous Institute under MHRD, Govt of India http://www.iiitdm.ac.in COM 209T Design and Analysis
More informationOptimisation and Operations Research
Optimisation and Operations Research Lecture 15: The Greedy Heuristic Matthew Roughan http://www.maths.adelaide.edu.au/matthew.roughan/ Lecture_notes/OORII/ School of
More informationAside: Golden Ratio. Golden Ratio: A universal law. Golden ratio φ = lim n = 1+ b n = a n 1. a n+1 = a n + b n, a n+b n a n
Aside: Golden Ratio Golden Ratio: A universal law. Golden ratio φ = lim n a n+b n a n = 1+ 5 2 a n+1 = a n + b n, b n = a n 1 Ruta (UIUC) CS473 1 Spring 2018 1 / 41 CS 473: Algorithms, Spring 2018 Dynamic
More informationChapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright Pearson-Addison Wesley. All rights reserved. 4 4.1 Interval Scheduling Interval Scheduling Interval scheduling. Job j starts at s j and finishes
More informationDynamic Programming ACM Seminar in Algorithmics
Dynamic Programming ACM Seminar in Algorithmics Marko Genyk-Berezovskyj berezovs@fel.cvut.cz Tomáš Tunys tunystom@fel.cvut.cz CVUT FEL, K13133 February 27, 2013 Problem: Longest Increasing Subsequence
More informationCS 350 Algorithms and Complexity
CS 350 Algorithms and Complexity Winter 2019 Lecture 15: Limitations of Algorithmic Power Introduction to complexity theory Andrew P. Black Department of Computer Science Portland State University Lower
More informationCS 350 Algorithms and Complexity
1 CS 350 Algorithms and Complexity Fall 2015 Lecture 15: Limitations of Algorithmic Power Introduction to complexity theory Andrew P. Black Department of Computer Science Portland State University Lower
More informationLecture 4. Quicksort
Lecture 4. Quicksort T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to Algorithms, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2018 Networking
More informationCS 374: Algorithms & Models of Computation, Spring 2017 Greedy Algorithms Lecture 19 April 4, 2017 Chandra Chekuri (UIUC) CS374 1 Spring / 1
CS 374: Algorithms & Models of Computation, Spring 2017 Greedy Algorithms Lecture 19 April 4, 2017 Chandra Chekuri (UIUC) CS374 1 Spring 2017 1 / 1 Part I Greedy Algorithms: Tools and Techniques Chandra
More information10-704: Information Processing and Learning Fall Lecture 10: Oct 3
0-704: Information Processing and Learning Fall 206 Lecturer: Aarti Singh Lecture 0: Oct 3 Note: These notes are based on scribed notes from Spring5 offering of this course. LaTeX template courtesy of
More informationAlgorithm Design Strategies V
Algorithm Design Strategies V Joaquim Madeira Version 0.0 October 2016 U. Aveiro, October 2016 1 Overview The 0-1 Knapsack Problem Revisited The Fractional Knapsack Problem Greedy Algorithms Example Coin
More informationRecoverable Robustness in Scheduling Problems
Master Thesis Computing Science Recoverable Robustness in Scheduling Problems Author: J.M.J. Stoef (3470997) J.M.J.Stoef@uu.nl Supervisors: dr. J.A. Hoogeveen J.A.Hoogeveen@uu.nl dr. ir. J.M. van den Akker
More informationCSE 202 Homework 4 Matthias Springer, A
CSE 202 Homework 4 Matthias Springer, A99500782 1 Problem 2 Basic Idea PERFECT ASSEMBLY N P: a permutation P of s i S is a certificate that can be checked in polynomial time by ensuring that P = S, and
More informationGreedy Algorithms. CSE 101: Design and Analysis of Algorithms Lecture 10
Greedy Algorithms CSE 101: Design and Analysis of Algorithms Lecture 10 CSE 101: Design and analysis of algorithms Greedy algorithms Reading: Kleinberg and Tardos, sections 4.1, 4.2, and 4.3 Homework 4
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 8 Greedy Algorithms V Huffman Codes Adam Smith Review Questions Let G be a connected undirected graph with distinct edge weights. Answer true or false: Let e be the
More informationLecture 13. More dynamic programming! Longest Common Subsequences, Knapsack, and (if time) independent sets in trees.
Lecture 13 More dynamic programming! Longest Common Subsequences, Knapsack, and (if time) independent sets in trees. Announcements HW5 due Friday! HW6 released Friday! Last time Not coding in an action
More informationCSE 421 Greedy Algorithms / Interval Scheduling
CSE 421 Greedy Algorithms / Interval Scheduling Yin Tat Lee 1 Interval Scheduling Job j starts at s(j) and finishes at f(j). Two jobs compatible if they don t overlap. Goal: find maximum subset of mutually
More informationLecture 13: Dynamic Programming Part 2 10:00 AM, Feb 23, 2018
CS18 Integrated Introduction to Computer Science Fisler, Nelson Lecture 13: Dynamic Programming Part 2 10:00 AM, Feb 23, 2018 Contents 1 Holidays 1 1.1 Halloween..........................................
More informationLecture 6: Greedy Algorithms I
COMPSCI 330: Design and Analysis of Algorithms September 14 Lecturer: Rong Ge Lecture 6: Greedy Algorithms I Scribe: Fred Zhang 1 Overview In this lecture, we introduce a new algorithm design technique
More informationPartha Sarathi Mandal
MA 252: Data Structures and Algorithms Lecture 32 http://www.iitg.ernet.in/psm/indexing_ma252/y12/index.html Partha Sarathi Mandal Dept. of Mathematics, IIT Guwahati The All-Pairs Shortest Paths Problem
More informationProof methods and greedy algorithms
Proof methods and greedy algorithms Magnus Lie Hetland Lecture notes, May 5th 2008 1 Introduction This lecture in some ways covers two separate topics: (1) how to prove algorithms correct, in general,
More informationOutline / Reading. Greedy Method as a fundamental algorithm design technique
Greedy Method Outline / Reading Greedy Method as a fundamental algorithm design technique Application to problems of: Making change Fractional Knapsack Problem (Ch. 5.1.1) Task Scheduling (Ch. 5.1.2) Minimum
More informationCS483 Design and Analysis of Algorithms
CS483 Design and Analysis of Algorithms Lectures 15-16 Dynamic Programming Instructor: Fei Li lifei@cs.gmu.edu with subject: CS483 Office hours: STII, Room 443, Friday 4:00pm - 6:00pm or by appointments
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Dynamic Programming II Date: 10/12/17
601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Dynamic Programming II Date: 10/12/17 12.1 Introduction Today we re going to do a couple more examples of dynamic programming. While
More informationSIGNAL COMPRESSION Lecture 7. Variable to Fix Encoding
SIGNAL COMPRESSION Lecture 7 Variable to Fix Encoding 1. Tunstall codes 2. Petry codes 3. Generalized Tunstall codes for Markov sources (a presentation of the paper by I. Tabus, G. Korodi, J. Rissanen.
More informationRecap & Interval Scheduling
Lecture 2 Recap & Interval Scheduling Supplemental reading in CLRS: Section 6.; Section 4.4 2. Recap of Median Finding Like MERGE-SORT, the median-of-medians algorithm SELECT calls itself recursively,
More informationCOSC 341: Lecture 25 Coping with NP-hardness (2)
1 Introduction Figure 1: Famous cartoon by Garey and Johnson, 1979 We have seen the definition of a constant factor approximation algorithm. The following is something even better. 2 Approximation Schemes
More informationEECS 477: Introduction to algorithms. Lecture 12
EECS 477: Introduction to algorithms. Lecture 12 Prof. Igor Guskov guskov@eecs.umich.edu October 17, 2002 1 Lecture outline: greedy algorithms II Knapsack Scheduling minimizing time with deadlines 2 Greedy
More informationDynamic Programming 1
Dynamic Programming 1 lgorithmic Paradigms Divide-and-conquer. Break up a problem into two sub-problems, solve each sub-problem independently, and combine solution to sub-problems to form solution to original
More informationUniversity of California Berkeley CS170: Efficient Algorithms and Intractable Problems November 19, 2001 Professor Luca Trevisan. Midterm 2 Solutions
University of California Berkeley Handout MS2 CS170: Efficient Algorithms and Intractable Problems November 19, 2001 Professor Luca Trevisan Midterm 2 Solutions Problem 1. Provide the following information:
More informationBandwidth: Communicate large complex & highly detailed 3D models through lowbandwidth connection (e.g. VRML over the Internet)
Compression Motivation Bandwidth: Communicate large complex & highly detailed 3D models through lowbandwidth connection (e.g. VRML over the Internet) Storage: Store large & complex 3D models (e.g. 3D scanner
More informationMaximum sum contiguous subsequence Longest common subsequence Matrix chain multiplication All pair shortest path Kna. Dynamic Programming
Dynamic Programming Arijit Bishnu arijit@isical.ac.in Indian Statistical Institute, India. August 31, 2015 Outline 1 Maximum sum contiguous subsequence 2 Longest common subsequence 3 Matrix chain multiplication
More informationThis means that we can assume each list ) is
This means that we can assume each list ) is of the form ),, ( )with < and Since the sizes of the items are integers, there are at most +1pairs in each list Furthermore, if we let = be the maximum possible
More informationIntroduction. I Dynamic programming is a technique for solving optimization problems. I Key element: Decompose a problem into subproblems, solve them
ntroduction Computer Science & Engineering 423/823 Design and Analysis of Algorithms Lecture 03 Dynamic Programming (Chapter 15) Stephen Scott and Vinodchandran N. Variyam Dynamic programming is a technique
More informationChapter 6. Dynamic Programming. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 6 Dynamic Programming Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 Algorithmic Paradigms Greed. Build up a solution incrementally, myopically optimizing
More informationLecture 13. More dynamic programming! Longest Common Subsequences, Knapsack, and (if time) independent sets in trees.
Lecture 13 More dynamic programming! Longest Common Subsequences, Knapsack, and (if time) independent sets in trees. Announcements HW5 due Friday! HW6 released Friday! Last time Not coding in an action
More informationSIGNAL COMPRESSION Lecture Shannon-Fano-Elias Codes and Arithmetic Coding
SIGNAL COMPRESSION Lecture 3 4.9.2007 Shannon-Fano-Elias Codes and Arithmetic Coding 1 Shannon-Fano-Elias Coding We discuss how to encode the symbols {a 1, a 2,..., a m }, knowing their probabilities,
More informationCSC 421: Algorithm Design & Analysis. Spring 2018
CSC 421: Algorithm Design & Analysis Spring 2018 Complexity & Computability complexity theory tractability, decidability P vs. NP, Turing machines NP-complete, reductions approximation algorithms, genetic
More informationCS 161: Design and Analysis of Algorithms
CS 161: Design and Analysis of Algorithms Greedy Algorithms 3: Minimum Spanning Trees/Scheduling Disjoint Sets, continued Analysis of Kruskal s Algorithm Interval Scheduling Disjoint Sets, Continued Each
More informationAlgorithms Exam TIN093 /DIT602
Algorithms Exam TIN093 /DIT602 Course: Algorithms Course code: TIN 093, TIN 092 (CTH), DIT 602 (GU) Date, time: 21st October 2017, 14:00 18:00 Building: SBM Responsible teacher: Peter Damaschke, Tel. 5405
More informationWeek 5: Quicksort, Lower bound, Greedy
Week 5: Quicksort, Lower bound, Greedy Agenda: Quicksort: Average case Lower bound for sorting Greedy method 1 Week 5: Quicksort Recall Quicksort: The ideas: Pick one key Compare to others: partition into
More informationInformation Theory and Statistics Lecture 2: Source coding
Information Theory and Statistics Lecture 2: Source coding Łukasz Dębowski ldebowsk@ipipan.waw.pl Ph. D. Programme 2013/2014 Injections and codes Definition (injection) Function f is called an injection
More informationCS320 The knapsack problem
CS320 The knapsack problem 1 Search and Discrete Optimization Discrete Optimization Problem (S,f) S: space of feasible solutions (satisfying some constraints) f : S R function that maps all feasible solutions
More informationGreedy vs Dynamic Programming Approach
Greedy vs Dynamic Programming Approach Outline Compare the methods Knapsack problem Greedy algorithms for 0/1 knapsack An approximation algorithm for 0/1 knapsack Optimal greedy algorithm for knapsack
More informationMA008/MIIZ01 Design and Analysis of Algorithms Lecture Notes 3
MA008 p.1/37 MA008/MIIZ01 Design and Analysis of Algorithms Lecture Notes 3 Dr. Markus Hagenbuchner markus@uow.edu.au. MA008 p.2/37 Exercise 1 (from LN 2) Asymptotic Notation When constants appear in exponents
More informationNearest Neighbor Search with Keywords: Compression
Nearest Neighbor Search with Keywords: Compression Yufei Tao KAIST June 3, 2013 In this lecture, we will continue our discussion on: Problem (Nearest Neighbor Search with Keywords) Let P be a set of points
More information13 Dynamic Programming (3) Optimal Binary Search Trees Subset Sums & Knapsacks
13 Dynamic Programming (3) Optimal Binary Search Trees Subset Sums & Knapsacks Average-case analysis Average-case analysis of algorithms and data structures: Input is generated according to a known probability
More information