Design and Analysis of Algorithms Greedy algorithms, coin changing problem Haidong Xue Summer 2012, at GSU.

Slides:



Advertisements
Similar presentations
Introduction to Algorithms
Advertisements

Design and Analysis of Algorithms Introduction to Divide-and-conquer Haidong Xue Summer 2012, at GSU.
Lecture 7 Paradigm #5 Greedy Algorithms
1 Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.
CS 332: Algorithms NP Completeness David Luebke /2/2017.
Greedy Algorithms (Chap. 16)
CS Section 600 CS Section 002 Dr. Angela Guercio Spring 2010.
MCA 301: Design and Analysis of Algorithms
Greedy Algorithms.
Design and Analysis of Algorithms Approximation algorithms for NP-complete problems Haidong Xue Summer 2012, at GSU.
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.
1.1 Data Structure and Algorithm Lecture 6 Greedy Algorithm Topics Reference: Introduction to Algorithm by Cormen Chapter 17: Greedy Algorithm.
Chapter 5 Fundamental Algorithm Design Techniques.
Analysis of Algorithms
Instructor Neelima Gupta Table of Contents Greedy Algorithms.
Greedy Algorithms Be greedy! always make the choice that looks best at the moment. Local optimization. Not always yielding a globally optimal solution.
Dynamic Programming.
Cs333/cutler Greedy1 Introduction to Greedy Algorithms The greedy technique Problems explored –The coin changing problem –Activity selection.
Merge Sort 4/15/2017 6:09 PM The Greedy Method The Greedy Method.
Lecture 7: Greedy Algorithms II Shang-Hua Teng. Greedy algorithms A greedy algorithm always makes the choice that looks best at the moment –My everyday.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 (Part 3) Tuesday, 9/4/01 Greedy Algorithms.
Greedy Algorithms Reading Material: –Alsuwaiyel’s Book: Section 8.1 –CLR Book (2 nd Edition): Section 16.1.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Lecture 2 Monday, 9/13/06 Design Patterns for Optimization Problems.
CSE 780 Algorithms Advanced Algorithms Greedy algorithm Job-select problem Greedy vs DP.
Greedy Algorithms CIS 606 Spring Greedy Algorithms Similar to dynamic programming. Used for optimization problems. Idea – When we have a choice.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Design Patterns for Optimization Problems Dynamic Programming.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2002 Lecture 1 (Part 3) Tuesday, 1/29/02 Design Patterns for Optimization.
Week 2: Greedy Algorithms
Lecture 7: Greedy Algorithms II
1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to.
Analysis of Algorithms
1 Summary: Design Methods for Algorithms Andreas Klappenecker.
Lecture 19 Greedy Algorithms Minimum Spanning Tree Problem.
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.
Greedy Algorithms. What is “Greedy Algorithm” Optimization problem usually goes through a sequence of steps A greedy algorithm makes the choice looks.
December 14, 2015 Design and Analysis of Computer Algorithm Pradondet Nilagupta Department of Computer Engineering.
Dynamic Programming.  Decomposes a problem into a series of sub- problems  Builds up correct solutions to larger and larger sub- problems  Examples.
Greedy Algorithms BIL741: Advanced Analysis of Algorithms I (İleri Algoritma Çözümleme I)1.
1 Chapter 16: Greedy Algorithm. 2 About this lecture Introduce Greedy Algorithm Look at some problems solvable by Greedy Algorithm.
Spring 2008The Greedy Method1. Spring 2008The Greedy Method2 Outline and Reading The Greedy Method Technique (§5.1) Fractional Knapsack Problem (§5.1.1)
TU/e Algorithms (2IL15) – Lecture 3 1 DYNAMIC PROGRAMMING
1 Algorithms CSCI 235, Fall 2015 Lecture 29 Greedy Algorithms.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 17.
Greedy Algorithms Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
Greedy Algorithms Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
Greedy algorithms: CSC317
Lecture on Design and Analysis of Computer Algorithm
Haidong Xue Summer 2011, at GSU
Merge Sort 7/29/ :21 PM The Greedy Method The Greedy Method.
Analysis of Algorithms CS 477/677
Haidong Xue Summer 2011, at GSU
Greedy Algorithms / Interval Scheduling Yin Tat Lee
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 8:16 AM The Greedy Method The Greedy Method.
Greedy Algorithm Enyue (Annie) Lu.
Discrete Mathematics CMP-101 Lecture 12 Sorting, Bubble Sort, Insertion Sort, Greedy Algorithms Abdul Hameed
Advanced Algorithms Analysis and Design
Greedy Algorithms.
Merge Sort 1/17/2019 3:11 AM The Greedy Method The Greedy Method.
Lecture 18 CSE 331 Oct 9, 2017.
CSE 326: Data Structures Lecture #24 The Algorhythmics
Algorithms CSCI 235, Spring 2019 Lecture 29 Greedy Algorithms
CSCE 222 Discrete Structures for Computing
Greedy Algorithms: Introduction
Merge Sort 5/2/2019 7:53 PM The Greedy Method The Greedy Method.
Lecture 19 CSE 331 Oct 10, 2016.
Greedy algorithms.
Algorithms Lecture # 26 Dr. Sohail Aslam.
Presentation transcript:

Design and Analysis of Algorithms Greedy algorithms, coin changing problem Haidong Xue Summer 2012, at GSU

What is a greedy algorithm? Greedy algorithm: an algorithm always makes the choice that looks best at the moment Human beings use greedy algorithms a lot – How to maximize your final grade of this class? – How to become a rich man? – How does a casher minimize the number of coins to make a change?

What is a greedy algorithm? How to maximize your final grade of this class? MaximizeFinalGrade( quizzes and tests ){ if(no quiz and no test) return; DoMyBest(current quiz or test); MaximizeFinalGrade (quizzes and tests – current one); } – This algorithm works very well for students Why is it correct? //Greedy choice

What is a greedy algorithm? Assuming that your performance of each quiz and test are independent What if you did your best in the current quiz? – You have the chance to get your maximum final grade – The greedy choice is always part of certain optimal solution What if you did not maximize the grades of the rest of the quizzes and tests? – You get a lower final grade – The optimal solution has to contain optimal solutions to subproblems Greedy-choice property! Optimal substructure

What is a greedy algorithm? To guarantee that a greedy algorithm is correct 2 things have to be proved: – Greedy-choice property: we can assemble a globally optimal solution by making locally greedy(optimal) choices. i.e. The greedy choice is always part of certain optimal solution – Optimal substructure: an optimal solution to the problem contains within it optimal solutions to subproblems. i.e. global optimal solution is constructed from local optimal solutions

What is a greedy algorithm? How to become a rich man? Problem: maximize the money I have on 8/1/ :00PM A greedy algorithm: Rich(certain time period P){ Collect as much money as I can in the current 3 hours; Rich(P-3 hours); } //Greedy choice

What is a greedy algorithm? if Rich is implemented by Haydon Rich (between now and 8/1/ pm ) What are the choices I have in the most recent 3 hours? – Finish this lecture like all the other instructors Money collected: 0 – Go to underground, be a beggar, repeatedly say hey generous man, gimme a quarter! Money collected: 2.5 (since k*0.25, k<=10)

What is a greedy algorithm? What are the choices I have in the most recent 3 hours? – Rob BOA Money collected: 0 (got killed by cops) – Rob my students Money collected: about 300

What is a greedy algorithm? Which one is the greedy choice? –T–Teach algorithms Money collected: $0 –B–Be a beggar Money collected: $2.5 (since k*0.25, k<=10) –R–Rob BOA Money collected: $0 (got killed by cops) –R–Rob my students Money collected: about $300 //The greedy choice

What is a greedy algorithm? What happened if I robbed you? – Students Report the criminal immediately Or report it after your final – The instructor Cops confiscate the illicit $300, i.e Get fired, and lose the stipend of this month, i.e. about After making this greedy choice, what is the result of Rich

What is a greedy algorithm? Rich (between now and 8/1/ pm ) Collect as much money as I can in the current 3 hours; Rich (between 1pm today and 8/1/ pm ); } Greedy choice: $300 However there is a influence on the optimal solution to the subproblem, which prevents the instructor from arriving the richest solution : the best of Rich (between 1pm today and 8/1/ pm ) will be around -$1700 Fail to achieve the optimal solution!

What is a greedy algorithm? Why the greedy Rich algorithm does not work? – After robbing you, I have no chance to be to get the richest solution – i.e. the greedy choice property is violated

What is a greedy algorithm? How to become a rich man? –T–Teach algorithms Money collected: $0 –B–Be a beggar Money collected: $2.5 (since k*0.25, k<=10) –R–Rob BOA Money collected: $0 (got killed by cops) –R–Rob my students Money collected: about $300 In this problem, we do not have greedy property So, greedy choice does not help And it is very consistent with what you see now Got fired Got killed -infinity +1400

Coin changing problem An example: – A hot dog and a drink at Costco are $1.50 – Plus tax it is: 1.5*1.08 = $1.62 – Often, we give the cashier 2 $1 notes – She need to give back, 38 cents as change Generally, you never see she gives you 38 pennies. What is algorithm here?

Coin changing problem Coin changing problem (informal): – Given certain amount of change: n cents – The denominations of coins are: 25, 10, 5, 1 – How to use the fewest coins to make this change? i.e. n = 25a + 10b + 5c + d, what are the a, b, c, and d, minimizing (a+b+c+d) Can you design an algorithm to solve this problem?

Coin changing problem n = 25a + 10b + 5c + d, what are the a, b, c, and d, minimizing (a+b+c+d) How to do it in brute-force? – At most we use n pennies – Try all the combinations where a<=n, b<=n, c<=n, d<=n – Choose all the combinations that n = 25a + 10b + 5c + d – Choose the combination with smallest (a+b+c+d) How many combinations?

Coin changing problem What is the recurrence equation? Time complexity?

Coin changing problem How many sub problems? Time complexity? n If subproblems are solved, how much time to solve a problem?

Coin changing problem n = 25a + 10b + 5c + d, what are the a, b, c, and d, minimizing (a+b+c+d) How to do it by a greedy algorithm? coinGreedy( n ){ if(n>=25) s = coinGreedy(n-25); s.a++; else if(n>=10) s = coinGreedy(n-10); s.b++; else if(n>=5) s = coinGreedy(n-5); s.c++; else s=(a=0, b=0, c=0, d=n, sum=n); s.sum++; return s; Time complexity? Greedy choice Always choose the possible largest coin It that greedy algorithm correct?

Coin changing problem Optimal substructure – After the greedy choice, assuming the greedy choice is correct, can we get the optimal solution from sub optimal result? 38 cents Assuming we have to choose 25 Is a quarter + optimal coin(38-25) the optimal solution of 38 cents? Greedy choice property – If we do not choose the largest coin, is there a better solution?

Coin changing problem For coin denominations of 25, 10, 5, 1 – The greedy choice property is not violated For other coin denominations – May violate it – E.g. 10, 7, 1 – 15 cents How to prove the greedy choice property for denominations 25, 10, 5, 1? – Optimal structure --- easy to prove – Greedy choice property

Coin changing problem 1. Prove that with coin denominations of 5, 1, it has the greedy choice property Proof: Apply greedy choice: n = 5 + 5c + d In a optimal solution if there is a nickel, the proof is done If there is no nickel: n = d=5 + d Need to prove that: 1+d <= d d=5+d > 1+d For 5, 1, it has greedy choice property, greedy algorithm works

Coin changing problem 2. Prove that with coin denominations of 10, 5, 1, it has the greedy choice property Proof: Apply greedy choice: n = b + 5c + d – In a optimal solution if there is a dime, the proof is done – If there is no dime : n = 5c + d Since 5c + d>=10 with the conclusion of the previous slide, c>=2 5c + d = (c-2) + d and c+d > 1+c-2+d it cannot be a optimal solution For 10, 5, 1, it has greedy choice property, greedy algorithm works

Coin changing problem 3. Prove that with coin denominations of 25, 10, 5, 1, it has the greedy choice property Proof: Apply greedy choice: n = a + 10b + 5c + d – In a optimal solution if there is a quarter, the proof is done – If there is no quarter : n = 10b+5c+d Since 10b+5c+d >= 25 if 25 =2, c>=1 – 10b+5c+d = (b-2) + 5(c-1) + d and b+c+d>1+b-2+c-1+d – it cannot be a optimal solution if n>=30, with the conclusion of previous slide, b>=3 – 10b+5c+d = (b-3) + 5(c+1) + d and b+c+d>1+b-3+c+1+d – it cannot be a optimal solution For 25, 10, 5, 1, it has greedy choice property, greedy algorithm works