Greedy algorithms
This presentation is the property of its rightful owner.
Sponsored Links
1 / 53

Greedy Algorithms PowerPoint PPT Presentation


  • 42 Views
  • Uploaded on
  • Presentation posted in: General

Greedy Algorithms. 15-211 Fundamental Data Structures and Algorithms. Peter Lee March 19, 2004. Announcements. HW6 is due on April 5! Quiz #2 postponed until March 31 an online quiz requires up to one hour of uninterrupted time with a web browser

Download Presentation

Greedy Algorithms

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Greedy algorithms

Greedy Algorithms

15-211 Fundamental Data Structures and Algorithms

Peter Lee

March 19, 2004


Announcements

Announcements

  • HW6 is due on April 5!

  • Quiz #2 postponed until March 31

    • an online quiz

    • requires up to one hour of uninterrupted time with a web browser

      • actually, only a 15-minute quiz

    • must be completed by April 1, 11:59pm


Greedy algorithms

Objects in calendar are closer than they appear


Greedy algorithms

Greed is Good


Example counting change

Example: Counting change

  • Suppose we want to give out change, using the minimal number of bills and coins.


A change counting algorithm

A change-counting algorithm

  • An easy algorithm for giving out N cents in change:

    • Choose the largest bill or coin that is N.

    • Subtract the value of the chosen bill/coin from N, to get a new value of N.

    • Repeat until a total of N cents has been counted.

  • Does this work? I.e., does this really give out the minimal number of coins and bills?


Our simple algorithm

Our simple algorithm

  • For US currency, this simple algorithm actually works.

  • Why do we call this a greedy algorithm?


Greedy algorithms1

Greedy algorithms

  • At every step, a greedy algorithm

    • makes a locally optimal decision,

    • with the idea that in the end it all adds up to a globally optimal solution.

  • Being optimistic like this usually leads to very simple algorithms.


Lu lu s pan fried noodle shop

Lu Lu’s Pan Fried Noodle Shop

Over on Craig Street…

Think Globally

Act Locally

Eat Noodles

How Californian...


Greedy algorithms

But…

  • What happens if we have a 12-cent coin?


Hill climbing

Hill-climbing

  • Greedy algorithms are often visualized as “hill-climbing”.

    • Suppose you want to reach the summit, but can only see 10 yards ahead and behind (due to thick fog).

Which way?


Hill climbing1

Hill-climbing

  • Greedy algorithms are often visualized as “hill-climbing”.

    • Suppose you want to reach the summit, but can only see 10 yards ahead and behind (due to thick fog).

Which way?


Hill climbing cont d

Hill-climbing, cont’d

  • Making the locally-best guess is efficient and easy, but doesn’t always work.


Where have we seen this before

Where have we seen this before?

  • Greedy algorithms are common in computer science

  • In fact, from last week…


Finding shortest airline routes

Finding shortest airline routes

2704

BOS

867

1846

187

ORD

849

PVD

SFO

740

144

JFK

802

1464

337

621

1258

184

BWI

1391

LAX

DFW

1090

1235

946

1121

MIA

2342


Three 2 hop bwi dfw routes

Three 2-hop BWI->DFW routes

2704

BOS

867

1846

187

ORD

849

PVD

SFO

740

144

JFK

802

1464

337

621

1258

184

BWI

1391

LAX

DFW

1090

1235

946

1121

MIA

2342


A greedy algorithm

A greedy algorithm

  • Assume that every city is infinitely far away.

    • I.e., every city is  miles away from BWI (except BWI, which is 0 miles away).

    • Now perform something similar to breadth-first search, and optimistically guess that we have found the best path to each city as we encounter it.

    • If we later discover we are wrong and find a better path to a particular city, then update the distance to that city.


Intuition behind dijkstra s alg

Intuition behind Dijkstra’s alg.

  • For our airline-mileage problem, we can start by guessing that every city is  miles away.

    • Mark each city with this guess.

  • Find all cities one hop away from BWI, and check whether the mileage is less than what is currently marked for that city.

    • If so, then revise the guess.

  • Continue for 2 hops, 3 hops, etc.


Shortest mileage from bwi

Shortest mileage from BWI

2704

BOS

867

1846

187

ORD

849

PVD

SFO

740

144

JFK

802

1464

337

621

1258

184

BWI

0

1391

LAX

DFW

1090

1235

946

1121

MIA

2342


Shortest mileage from bwi1

Shortest mileage from BWI

2704

BOS

867

1846

187

ORD

621

849

PVD

SFO

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

DFW

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi2

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

DFW

1575

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi3

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

DFW

1575

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi4

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

3075

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

DFW

1575

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi5

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

2467

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

DFW

1423

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi6

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

2467

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

3288

DFW

1423

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi7

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

2467

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

2658

DFW

1423

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi8

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

2467

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

2658

DFW

1423

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi9

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

2467

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

2658

DFW

1423

1090

1235

946

1121

MIA

946

2342


Shortest mileage from bwi10

Shortest mileage from BWI

2704

BOS

371

867

1846

187

ORD

621

849

PVD

328

SFO

2467

740

144

JFK

184

802

1464

337

621

1258

184

BWI

0

1391

LAX

2658

DFW

1423

1090

1235

946

1121

MIA

946

2342


Dijkstra s algorithm

Dijkstra’s algorithm

  • Algorithm initialization:

    • Label each node with the distance , except start node, which is labeled with distance 0.

      • D[v] is the distance label for v.

    • Put all nodes into a priority queue Q, using the distances as labels.


Dijkstra s algorithm cont d

Dijkstra’s algorithm, cont’d

  • While Q is not empty do:

    • u = Q.removeMin

    • for each node z one hop away from u do:

      • if D[u] + miles(u,z) < D[z] then

        • D[z] = D[u] + miles(u,z)

        • change key of z in Q to D[z]

  • Note use of priority queue allows “finished” nodes to be found quickly (in O(log N) time).


Greedy algorithms

Another Greedy Algorithm


The fractional knapsack problem fkp

The Fractional Knapsack Problem (FKP)

  • You rob a store: find n kinds of items

    • Gold dust. Wheat. Beer.


Example 2 fractional knapsack problem fkp

Example 2: Fractional knapsack problem (FKP)

  • You rob a store: find n kinds of items

    • Gold dust. Wheat. Beer.

  • The total inventory for the i th kind of item:

    • Weight: wi pounds

    • Value: vi dollars

  • Knapsack can hold a maximum of Wpounds.

  • Q: how much of each kind of item should you take?

    (Can take fractional weight)


Fkp solution

FKP: solution

  • Greedy solution:

    • Fill knapsack with “most valuable” item until all is taken.

      • Mostvaluable = vi /wi (dollars per pound)

    • Then next “most valuable” item, etc.

    • Until knapsack is full.


Ingredients of a greedy alg

Ingredients of a greedy alg.

  • An optimization problem.

  • Is iterative / Proceeds in stages.

  • Has the greedy-choice property:

    A greedy choice will lead to a globally optimal solution.


Fkp is greedy

FKP is greedy

  • An optimization problem:

    • Maximize value of loot, subject to maximum weight W.(constrained optimization)

  • Proceeds in stages:

    • Knapsack is filled with one item at a time.


Fkp is greedy1

FKP is greedy

  • Greedy-choice property:

    A locally greedy choice will lead to a globally optimal solution.

  • In steps…:

    Step 1: Does the optimal solution contain the greedy choice?

    Step 2: can the greedy choice always be made first?


Fkp greedy choice step 1

FKP: Greedy-choice: Step 1

  • Consider total value, V, of knapsack.

  • Knapsack must contain item h:

    • Item h is the item with highest $/lb.

  • Why? Because if h is not included, we can replace some other item in knapsack with an equivalent weight of h, and increase V.

  • This can continue until knapsack is full, or all of h is taken.

  • Therefore any optimal solution must include greedy-choice.


More rigorously

More rigorously…

Let item h be the item with highest $/lb.Total inventory of h is wh pounds.Total value of h is vi dollars.

Let ki be weight of itemi in knapsack. Then total value:

If kh<wh, and kj>0 for some jh, then replace j with an equal weight of h. Let new total value = V’.

Difference in total value:

since, by definition of h,

Therefore all of item h should be taken.


Fkp greedy choice step 2

FKP: Greedy-choice: Step 2

  • Now we want to show that we can always make the greedy choice first.

  • If item h is more than what knapsack can hold, then fill knapsack completely with h.

    • No other item gives higher total value.

  • Otherwise, knapsack contains h and some other item. We can always make h the first choice, without changing total value V.

  • Therefore greedy-choice can always be made first.


More rigorously1

More rigorously…

  • Case I: wh W

    • Fill knapsack completely with h.

    • No other item gives higher total value.

  • Case II: wh< W

    • Let 1st choice be item i, and kth choice be h, then we can always swap our 1st and kth choices, and total value Vremains unchanged.

  • Therefore greedy-choice can always be made first.


The binary knapsack problem

The Binary Knapsack Problem

  • You win the Supermarket Shopping Spree contest.

    • You are given a shopping cart with capacity C.

    • You are allowed to fill it with any items you want from Giant Eagle.

    • Giant Eagle has items 1, 2, … n, which have values v1, v2, …, vn, and sizes s1, s2, …, sn.

    • How do you (efficiently) maximize the value of the items in your cart?


Bkp is not greedy

BKP is not greedy

  • The obvious greedy strategy of taking the maximum value item that still fits in the cart does not work.

  • Consider:

    • Suppose item i has size si = C and value vi.

    • It can happen that there are items j and k with combined size sj+skC but vj+vk > vi.


Bkp greedy approach fails

$220

$160

$180

Maximum weight = 50 lbs

$120, 30 lbs

$100, 20 lbs

$60, 10 lbs

(optimal)

item 1 item 2 item 3 knapsack

BKP: Greedy approach fails

BKP has optimal substructure, but not greedy-choice property: optimal solution does not contain greedy choice.


A question for a future lecture

A question for a future lecture…

  • How can we (efficiently) solve the binary knapsack problem?

  • One possible approach:

    • Dynamic programming


Greedy algorithms

Machine Scheduling


Optimal machine scheduling

Optimal machine scheduling

  • We are given n tasks and an infinite supply of machines to perform them

    • each task ti = [si, fi] has start time si and finish time fi

  • An assignment of tasks to machines is feasible if no machine is assigned two overlapping tasks

  • An assignment is optimal if it is feasible and uses the minimal number of machines


Example

Example

  • Tasks:

    • task: a b c d e f g

    • start: 0 3 4 9 7 1 6

    • finish: 2 7 7 11 10 5 8

  • Can you invent a greedy algorithm to find an optimal schedule for these tasks?


Succeeding with greed

Succeeding with greed

3 ingredients needed:

  • Optimization problem.

  • Proceed in stages.

  • Greedy-choice property:

    A greedy choice will lead to a globally optimal solution.


  • Login