5-1-1 CSC401 – Analysis of Algorithms Chapter 5--1 The Greedy Method Objectives Introduce the Brute Force method and the Greedy Method Compare the solutions.

Slides:



Advertisements
Similar presentations
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin Introduction to the Design & Analysis of Algorithms, 2 nd ed., Ch. 1 Chapter 2.
Advertisements

The Greedy Method1. 2 Outline and Reading The Greedy Method Technique (§5.1) Fractional Knapsack Problem (§5.1.1) Task Scheduling (§5.1.2) Minimum Spanning.
Chapter 5 Fundamental Algorithm Design Techniques.
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 3 ©2012 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
Merge Sort 4/15/2017 6:09 PM The Greedy Method The Greedy Method.
The Design and Analysis of Algorithms
Theory of Algorithms: Brute Force James Gain and Edwin Blake {jgain | Department of Computer Science University of Cape Town August.
COSC 3100 Brute Force and Exhaustive Search Instructor: Tanvir 1.
Design and Analysis of Algorithms - Chapter 31 Brute Force A straightforward approach usually based on problem statement and definitions Examples: 1. Computing.
Analysis & Design of Algorithms (CSCE 321)
3 -1 Chapter 3 The Greedy Method 3 -2 The greedy method Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each.
© 2004 Goodrich, Tamassia Greedy Method and Compression1 The Greedy Method and Text Compression.
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Design and Analysis of Algorithms - Chapter 31 Brute Force A straightforward approach usually based on problem statement and definitions Examples: 1. Computing.
Homework page 102 questions 1, 4, and 10 page 106 questions 4 and 5 page 111 question 1 page 119 question 9.
Fundamental Techniques
1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to.
Lecture 6 Jianjun Hu Department of Computer Science and Engineering University of South Carolina CSCE350 Algorithms and Data Structure.
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
IT 60101: Lecture #201 Foundation of Computing Systems Lecture 20 Classic Optimization Problems.
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 3 ©2012 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
Theory of Algorithms: Brute Force. Outline Examples Brute-Force String Matching Closest-Pair Convex-Hull Exhaustive Search brute-force strengths and weaknesses.
Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples: Computing.
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 3 ©2012 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
GREEDY ALGORITHMS UNIT IV. TOPICS TO BE COVERED Fractional Knapsack problem Huffman Coding Single source shortest paths Minimum Spanning Trees Task Scheduling.
The Greedy Method. The Greedy Method Technique The greedy method is a general algorithm design paradigm, built on the following elements: configurations:
CSC 201: Design and Analysis of Algorithms Greedy Algorithms.
Chapter 3 Brute Force. A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples:
COMP108 Algorithmic Foundations Polynomial & Exponential Algorithms
Lecture 7 Jianjun Hu Department of Computer Science and Engineering University of South Carolina CSCE350 Algorithms and Data Structure.
1 UNIT-I BRUTE FORCE ANALYSIS AND DESIGN OF ALGORITHMS CHAPTER 3:
Spring 2008The Greedy Method1. Spring 2008The Greedy Method2 Outline and Reading The Greedy Method Technique (§5.1) Fractional Knapsack Problem (§5.1.1)
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Ch3 /Lecture #4 Brute Force and Exhaustive Search 1.
Exhaustive search Exhaustive search is simply a brute- force approach to combinatorial problems. It suggests generating each and every element of the problem.
Introduction to Algorithms: Brute-Force Algorithms.
Greedy Algorithms Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples: Computing.
Brute Force II.
Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples: Computing.
Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples: Computing.
COMP108 Algorithmic Foundations Polynomial & Exponential Algorithms
Greedy Method 6/22/2018 6:57 PM Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015.
Merge Sort 7/29/ :21 PM The Greedy Method The Greedy Method.
The Greedy Method and Text Compression
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
The Greedy Method and Text Compression
Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples – based directly.
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 3 String Matching.
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Heuristics Definition – a heuristic is an inexact algorithm that is based on intuitive and plausible arguments which are “likely” to lead to reasonable.
Merge Sort 11/28/2018 2:18 AM The Greedy Method The Greedy Method.
The Greedy Method Spring 2007 The Greedy Method Merge Sort
Merge Sort 11/28/2018 2:21 AM The Greedy Method The Greedy Method.
Merge Sort 11/28/2018 8:16 AM The Greedy Method The Greedy Method.
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples: Computing.
Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples: Computing.
Merge Sort 1/17/2019 3:11 AM The Greedy Method The Greedy Method.
Recall Some Algorithms And Algorithm Analysis Lots of Data Structures
3. Brute Force Selection sort Brute-Force string matching
3. Brute Force Selection sort Brute-Force string matching
Algorithm Design Techniques Greedy Approach vs Dynamic Programming
CSC 380: Design and Analysis of Algorithms
CSC 380: Design and Analysis of Algorithms
Merge Sort 5/2/2019 7:53 PM The Greedy Method The Greedy Method.
3. Brute Force Selection sort Brute-Force string matching
Presentation transcript:

5-1-1 CSC401 – Analysis of Algorithms Chapter 5--1 The Greedy Method Objectives Introduce the Brute Force method and the Greedy Method Compare the solutions to the same problem using different methods Fractional Knapsack problem Task scheduling problem

5-1-2 Brute Force A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved Examples: 1.Computing a n (a > 0, n a nonnegative integer) 2.Computing n! 3. Multiplying two matrices 4.Selection sort 5.Searching for a key of a given value in a list

5-1-3 Brute-Force Sorting Algorithm Selection Sort Scan the array to find its smallest element and swap it with the first element. Then, starting with the second element, scan the elements to the right of it to find the smallest among them and swap it with the second elements. Generally, on pass i (0  i  n-2), find the smallest element in A[i..n-1] and swap it with A[i]: A[0] ...  A[i-1] | A[i],..., A[min],..., A[n-1] in their final positions in their final positions Example:

5-1-4 Analysis of Selection Sort Time efficiency: (n-1)n/2  O(n 2 ) Space efficiency: 2  O(1)

5-1-5 Brute-Force String Matching pattern: a string of m characters to search for text: a (longer) string of n characters to search in problem: find a substring in the text that matches the pattern Brute-force algorithm Step 1 Align pattern at beginning of text Step 2 Moving from left to right, compare each character of pattern to the corresponding character in text until –all characters are found to match (successful search); or –a mismatch is detected Step 3 While pattern is not found and the text is not yet exhausted, realign pattern one position to the right and repeat Step 2

5-1-6 Brute-Force String Matching : Examples 1.Pattern: Text: Pattern: Text: Pattern: happy Text: It is never too late to have a happy childhood.

5-1-7 Pseudocode and Efficiency Efficiency: O(nm)

5-1-8 Brute-Force Polynomial Evaluation Problem: Find the value of polynomial p(x) = a n x n + a n-1 x n-1 +… + a 1 x 1 + a 0 at a point x = x 0 Brute-force algorithm Efficiency: O(n 2 ) p  0.0 for i  n downto 0 do power  1 power  1 for j  1 to i do//compute x i for j  1 to i do//compute x i power  power  x power  power  x p  p + a[i]  power p  p + a[i]  power returnp return p

5-1-9 Polynomial Evaluation: Improvement We can do better by evaluating from right to left: Better brute-force algorithm Efficiency: O(n) p  a[0] power  1 for i  1 to n do power  power  x power  power  x p  p + a[i]  power p  p + a[i]  power return p

Closest-Pair Problem Find the two closest points in a set of n points (in the two-dimensional Cartesian plane). Brute-force algorithm –Compute the distance between every pair of distinct points and return the indexes of the points for which the distance is the smallest.

Closest-Pair Brute-Force Algorithm (cont.) Efficiency: O(n 2 ) Efficiency: O(n 2 ) How to make it faster? How to make it faster?

Convex hull Problem –Find smallest convex polygon enclosing n points on the plane Algorithm –Find each pair of points p1 and p2, determine whether all other points lie to the same side of the straight line through p1 and p2 Efficiency: – –O(n 3 )

Brute-Force Strengths and Weaknesses Strengths –wide applicability –simplicity –yields reasonable algorithms for some important problems (e.g., matrix multiplication, sorting, searching, string matching) Weaknesses –rarely yields efficient algorithms –some brute-force algorithms are unacceptably slow –not as constructive as some other design techniques

Exhaustive Search A brute force solution to a problem involving search for an element with a special property, usually among combinatorial objects such as permutations, combinations, or subsets of a set. Method: –generate a list of all potential solutions to the problem in a systematic manner –evaluate potential solutions one by one, disqualifying infeasible ones and, for an optimization problem, keeping track of the best one found so far –when search ends, announce the solution(s) found

Example 1: Traveling Salesman Problem Given n cities with known distances between each pair, find the shortest tour that passes through all the cities exactly once before returning to the starting city Alternatively: Find shortest Hamiltonian circuit in a weighted connected graph Example: ab cd Tour Cost Tour Cost a → b → c → d → a = 17 a → b → d → c → a = 21 a → c → b → d → a = 20 a → c → d → b → a = 21 a → d → b → c → a = 20 a → d → c → b → a = 17

Example 2: Knapsack Problem Given n items: –weights: w 1 w 2 …w n –values: v 1 v 2 … v n –a knapsack of capacity W Find most valuable subset of the items that fit into the knapsack Efficiency: O(2 n ) Example: Knapsack capacity W=16 item weight value 1 2 $ $ $ $10 Subset Weight Value {1} 2 $20 {1} 2 $20 {2} 5 $30 {2} 5 $30 {3} 10 $50 {3} 10 $50 {4} 5 $10 {4} 5 $10 {1,2} 7 $50 {1,2} 7 $50 {1,3} 12 $70 {1,3} 12 $70 {1,4} 7 $30 {1,4} 7 $30 {2,3} 15 $80 {2,3} 15 $80 {2,4} 10 $40 {2,4} 10 $40 {3,4} 15 $60 {3,4} 15 $60 {1,2,3} 17 not feasible {1,2,3} 17 not feasible {1,2,4} 12 $60 {1,2,4} 12 $60 {1,3,4} 17 not feasible {1,3,4} 17 not feasible {2,3,4} 20 not feasible {2,3,4} 20 not feasible {1,2,3,4} 22 not feasible

Example 3: The Assignment Problem There are n people who need to be assigned to n jobs, one person per job. The cost of assigning person i to job j is C[i,j]. Find an assignment that minimizes the total cost. Job 0 Job 1 Job 2 Job 3 Job 0 Job 1 Job 2 Job 3 Person Person Person Person Algorithmic Plan: Generate all legitimate assignments, compute their costs, and select the cheapest one. How many assignments are there? Assignment (col.#s) Total Cost Assignment (col.#s) Total Cost 1, 2, 3, =18 1, 2, 3, =18 1, 2, 4, =30 1, 2, 4, =30 1, 3, 2, =24 1, 3, 2, =24 1, 3, 4, =26 1, 3, 4, =26 1, 4, 2, =33 1, 4, 2, =33 1, 4, 3, =23 1, 4, 3, =23 etc. etc.

Final Comments on Exhaustive Search Exhaustive-search algorithms run in a realistic amount of time only on very small instances In some cases, there are much better alternatives! –Euler circuits –shortest paths –minimum spanning tree –assignment problem In many cases, exhaustive search or its variation is the only known way to get exact solution

The Greedy Method Technique The greedy method is a general algorithm design paradigm, built on the following elements: –configurations: different choices, collections, or values to find –objective function: a score assigned to configurations, which we want to either maximize or minimize It works best when applied to problems with the greedy-choice property: –a globally-optimal solution can always be found by a series of local improvements from a starting configuration.

Making Change Problem: A dollar amount to reach and a collection of coin amounts to use to get there. Configuration: A dollar amount yet to return to a customer plus the coins already returned Objective function: Minimize number of coins returned. Greedy solution: Always return the largest coin you can Example 1: Coins are valued $.25, $.10, $0.05, $0.01 –Has the greedy-choice property, since no amount over $.25 can be made with a minimum number of coins by omitting a $.25 coin (similarly for amounts over $.10, but under $.25). Example 2: Coins are valued $.30, $.20, $.05, $.01 –Does not have greedy-choice property, since $.40 is best made with two $.20’s, but the greedy solution will pick three coins (which ones?)

The Fractional Knapsack Problem Given: A set S of n items, with each item i having –b i - a positive benefit (value) –w i - a positive weight Goal: Choose items with maximum total benefit (value) but with weight at most W. If we are allowed to take fractional amounts, then this is the fractional knapsack problem. –In this case, we let x i denote the amount we take of item i –Objective: maximize –Constraint:

Example Given: A set S of n items, with each item i having –b i - a positive benefit –w i - a positive weight Goal: Choose items with maximum total benefit but with total weight at most W. Weight: Benefit: ml8 ml2 ml6 ml1 ml $12$32$40$30$50 Items: Value: 3 ($ per ml) ml Solution: 1 ml of 5 2 ml of 3 6 ml of 4 1 ml of 2 “knapsack”

The Fractional Knapsack Algorithm Greedy choice: Keep taking item with highest value (benefit to weight ratio) –Since Algorithm fractionalKnapsack(S, W) Input: set S of items w/ benefit b i and weight w i ; max. weight W Output: amount x i of each item i to maximize benefit w/ weight at most W for each item i in S x i  0 v i  b i / w i {value} w  0 {total weight} while w < W remove item i with highest v i x i  min{w i, W - w} w  w + x i

The Fractional Knapsack Algorithm Running time: Given a collection S of n items, such that each item i has a benefit b i and weight w i, we can construct a maximum-benefit subset of S, allowing for fractional amounts, that has a total weight W in O(nlogn) time. –Use heap-based priority queue to store S –Removing the item with the highest value takes O(logn) time –In the worst case, need to remove all items Correctness: Suppose there is a better solution –there is an item i with higher value than a chosen item j, but x i 0 and v i 0 and v i <v j –If we substitute some i with j, we get a better solution –How much of i: min{w i -x i, x j } –Thus, there is no better solution than the greedy one

Task Scheduling Given: a set T of n tasks, each having: –A start time, s i –A finish time, f i (where s i < f i ) Goal: Perform all the tasks using a minimum number of “machines.”

Task Scheduling Algorithm Greedy choice: consider tasks by their start time and use as few machines as possible with this order. Algorithm taskSchedule(T) Input: set T of tasks with start time s i and finish time f i Output: non-conflicting schedule with minimum number of machines m  0 {no. of machines} while T is not empty remove task i with smallest s i if there’s a machine j for i then schedule i on machine j else m  m + 1 schedule i on machine m

Task Scheduling Algorithm Running time: Given a set of n tasks specified by their start and finish times, Algorithm TaskSchedule produces a schedule of the tasks with the minimum number of machines in O(nlogn) time. –Use heap-based priority queue to store tasks with the start time as the priorities –Finding the earliest task takes O(logn) time Correctness: (proof by contradiction) Suppose there is a better schedule. –We can use k-1 machines –The algorithm uses k –Let i be first task scheduled on machine k –Machine i must conflict with k-1 other tasks –But that means there is no non-conflicting schedule using k-1 machines

Example Given: a set T of n tasks, each having: –A start time, s i –A finish time, f i (where s i < f i ) –[1,4], [1,3], [2,5], [3,7], [4,7], [6,9], [7,8] (ordered by start) Goal: Perform all tasks on min. number of machines