Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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

2 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

3 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: 7 3 2 5

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

5 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

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

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

8 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

9 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

10 5-1-10 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.

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

12 5-1-12 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 )

13 5-1-13 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

14 5-1-14 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

15 5-1-15 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 8 2 7 53 4 Tour Cost Tour Cost a → b → c → d → a 2+3+7+5 = 17 a → b → d → c → a 2+4+7+8 = 21 a → c → b → d → a 8+3+4+5 = 20 a → c → d → b → a 8+7+4+2 = 21 a → d → b → c → a 5+4+3+8 = 20 a → d → c → b → a 5+7+3+2 = 17

16 5-1-16 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 $20 2 5 $30 3 10 $50 4 5 $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

17 5-1-17 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 0 9 2 7 8 Person 1 6 4 3 7 Person 2 5 8 1 8 Person 3 7 6 9 4 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, 49+4+1+4=18 1, 2, 3, 49+4+1+4=18 1, 2, 4, 39+4+8+9=30 1, 2, 4, 39+4+8+9=30 1, 3, 2, 49+3+8+4=24 1, 3, 2, 49+3+8+4=24 1, 3, 4, 29+3+8+6=26 1, 3, 4, 29+3+8+6=26 1, 4, 2, 39+7+8+9=33 1, 4, 2, 39+7+8+9=33 1, 4, 3, 29+7+1+6=23 1, 4, 3, 29+7+1+6=23 etc. etc.

18 5-1-18 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

19 5-1-19 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.

20 5-1-20 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?)

21 5-1-21 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:

22 5-1-22 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: 12345 4 ml8 ml2 ml6 ml1 ml $12$32$40$30$50 Items: Value: 3 ($ per ml) 420550 10 ml Solution: 1 ml of 5 2 ml of 3 6 ml of 4 1 ml of 2 “knapsack”

23 5-1-23 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

24 5-1-24 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

25 5-1-25 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.”

26 5-1-26 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

27 5-1-27 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

28 5-1-28 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


Download ppt "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."

Similar presentations


Ads by Google