0% found this document useful (0 votes)
7 views12 pages

Greedy

Uploaded by

eyob daggy Girma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views12 pages

Greedy

Uploaded by

eyob daggy Girma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Greedy Algorithms

GROUP MEMBERS
Eyob Girma …………..….....001/13
Merachew Mengistu…….….002/13
Alemayehu Negalign ..….…..017/13
Betelhem Teshome ……..…..021/13
Mesfin Teshome…………….008/13
Yeshi Gulilat……………..…036/13
Meron Lemma.......................033/13
Greedy Algorithms
 Optimization problem: find the best way to do something.
◦ E.g. match up two strings (LCS problem).
 Search techniques look at many possible solutions.
◦ E.g. dynamic programming or backtrack search.
 A greedy algorithm
◦ Makes choices along the way that seem the best.
◦ Sticks with those choices.
 For some problems, greedy approach always gets optimum.
 For others, greedy finds good, but not always best.
◦ If so, it’s called a greedy heuristic or approximation.
 For still others, greedy approach can do very poorly.

1
The problem of giving change
Vending machine has huge supply of quarters, dimes and nickels.
Customer needs N cents change (N is multiple of 5).
Machine wants to give out few coins as possible.
Greedy approach:
while (N > 0) {
give largest denomination coin  N;
reduce N by value of that coin;
}
Aside: Using division, it could make decisions faster.
Does this return the fewest number of coins?

2
More on giving change
 Thm: Greedy algorithm always gives minimal # of
coins.
 Proof:
◦ Optimum has  2 dimes.
 Quarter and nickel better than 3 dimes .
◦ Optimum has  1 nickel
 Dime better than 2 nickels.
◦ Optimum doesn’t have 2 dimes + 1 nickel
 It would use quarter instead.
◦ So optimum & greedy have at most $0.20 in non-
quarters.
 That is, they give the same number of quarters.
◦ Optimum & greedy give same on remaining $0.20
too.
 Obviously.

3
More on giving change
 Suppose we run out of nickels, put pennies in instead.
◦ Does greedy approach still give minimum number of
coins?
 Formally, the Coin Change problem is:
Given k denominations d1, d2, ... , dk and given N,
find a way of writing N = i1 d1 + i2 d2 + ... + ik dk
such
that i1 + i2 + ... + ik is minimized.
“Size” of problem is k.
 Is the greedy algorithm always a good heuristic?
That is, does there exists a constant c s.t. for all
instances of Coin Change, the greedy algorithm
gives at most c times the optimum number of coins?
 How do we solve Coin Change exactly?

4
Coin Change by Dynamic
Programming
 Let C(N) = min # of coins needed to give N
cents.
Detail: C(0) = 0 and, for N < 0, C(N) =  .
 Optimal substructure: After an optimal

solution gives customer one coin, the


remaining change must be given optimally.
 So C(N) = 1 + min { C(N-d ), C(N-d ),...,
1 2
C(N-dk) }

5
Complexity of Coin Change
 Greedy algorithm (non-optimal) takes O(k) time.
 Dynamic Programming takes O(kN) time.
◦ This is NOT necessarily polynomial in k.
 Better way to define “size” is the number of
bits needed to specify an instance.
 With this definition, N can be almost 2 size.
 So Dynamic Programming is exponential in
size.
◦ In fact, Coin Change problem is NP-hard.
 So no one knows a polynomial-time algorithm
for it.

6
Linear Partition Problem

 Given a list of positive integers, s1, s2, ..., sN,


and a bound B, find smallest number of
contiguous sublists s.t. each sum of each
sublist  B.
I.e.: find partition points 0 = p0, p1, p2, ..., pk
= N such that for j = 0, 1, ..., k-1,

7
Variant on Linear Partitioning
 New goal: partition list of N integers into exactly k
contiguous sublists to so that the maximum sum of a
sublist is as small as possible.
 Example: Partition < 16, 7, 19, 3, 4, 11, 6 > into 4
sublists.
◦ We might try 16+7, 19, 3+4, 11+6. Max sum is
16+7=23.
 Try out (at board):
◦ Greedy algorithm: add elements until you exceed
average.
◦ Divide-and-conquer: break into two nearly equal sublists.
◦ Reduce to previous problem: binary search on B.
◦ Dynamic programming.

8
Scheduling Unit time Tasks
 Given N tasks (N is problem size):
◦ Task i must be done by time di.
◦ Task i is worth wi.
 You can perform one task per unit time. If you do it before its
deadline di, you get paid wi.
 Problem: Decide what to do at each unit of time.
 Aside: This is an off-line scheduling problem: You know
entire problem before making any decisions.
 In an on-line problem, you get tasks one-at-a-time, and
must decide when to schedule it before seeing next
task.
 Typically, it’s impossible to solve an on-line problem
optimally, and the goal is to achieve at least a certain %
of optimal.

9
Glossary (in case symbols are
weird)
 subset  element of  infinity
  for all  there exists
  big theta  big omega  summation
  >=  <=  about equal
  not equal  natural numbers(N)
  reals(R)  rationals(Q)  integers(Z)

10
Thank you !!

You might also like