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

## Presentation on theme: "Design and Analysis of Algorithms Greedy algorithms, coin changing problem Haidong Xue Summer 2012, at GSU."— 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/2012 12: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/2012 12pm ) 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. -300 Get fired, and lose the stipend of this month, i.e. about -1400 After making this greedy choice, what is the result of Rich

What is a greedy algorithm? Rich (between now and 8/1/2012 12pm ) Collect as much money as I can in the current 3 hours; Rich (between 1pm today and 8/1/2012 12pm ); } 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/2012 12pm ) 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 2.5 -1400 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 = 10 + 10b + 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 = 10 + 5(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 = 25 + 25a + 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 = 25 + 10(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 = 25 + 10(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

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

Similar presentations