0% found this document useful (0 votes)
74 views2 pages

Greedy Method in Algorithm Design

The document outlines the greedy method algorithm design paradigm. It discusses making change and fractional knapsack problems that can be solved using greedy choice by always selecting the locally optimal choice. Task scheduling is also discussed as another problem that exhibits the greedy-choice property and can be solved with a greedy algorithm by scheduling tasks in order of start time on the minimum number of machines.

Uploaded by

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

Greedy Method in Algorithm Design

The document outlines the greedy method algorithm design paradigm. It discusses making change and fractional knapsack problems that can be solved using greedy choice by always selecting the locally optimal choice. Task scheduling is also discussed as another problem that exhibits the greedy-choice property and can be solved with a greedy algorithm by scheduling tasks in order of start time on the minimum number of machines.

Uploaded by

Summrina Kanwal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Merge Sort

2/8/2005 12:09 AM

Outline and Reading The Greedy Method


The Greedy Method Technique (5.1) Fractional Knapsack Problem (5.1.1) Task Scheduling (5.1.2) Minimum Spanning Trees (7.3) [future lecture]

The Greedy Method

The Greedy Method

The Greedy Method Technique


The greedy method is a general algorithm design paradigm, built on the following elements:

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 $.32, $.08, $.01

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:


Has the greedy-choice property, since no amount over $.32 can be made with a minimum number of coins by omitting a $.32 coin (similarly for amounts over $.08, but under $.32). Does not have greedy-choice property, since $.40 is best made with two $.20s, but the greedy solution will pick three coins (which ones?)
The Greedy Method 4

a globally-optimal solution can always be found by a series of local improvements from a starting configuration.
The Greedy Method 3

Example 2: Coins are valued $.30, $.20, $.05, $.01


The Fractional Knapsack Problem


Given: A set S of n items, with each item i having

Example
Given: A set S of n items, with each item i having

Goal: Choose items with maximum total benefit but with weight at most W. If we are allowed to take fractional amounts, then this is the fractional knapsack problem.

bi - a positive benefit wi - a positive weight

Goal: Choose items with maximum total benefit but with weight at most W. knapsack Solution: Items: Weight: Benefit: Value:
1 2 3 4 5

bi - a positive benefit wi - a positive weight

In this case, we let xi denote the amount we take of item i Objective: maximize

bi ( xi / wi )
iS
The Greedy Method 5

4 ml $12 3

8 ml $32 4

2 ml $40 20

6 ml $30 5

1 ml $50 50 10 ml

Constraint:

xi W
iS

1 2 6 1

ml ml ml ml

of of of of

5 3 4 2

($ per ml)

The Greedy Method

Merge Sort

2/8/2005 12:09 AM

The Fractional Knapsack Algorithm


Greedy choice: Keep taking item with highest value (benefit to weight ratio)

Task Scheduling
Given: a set T of n tasks, each having:

Since bi ( xi / wi ) = (bi / wi ) xi iS iS Run time: O(n log n). Why?

Correctness: Suppose there is a better solution


there is an item i with higher value than a chosen item j (i.e., vi<vj) but xi<wi and xj>0 If we substitute some i with j, we get a better solution How much of i: min{wi-xi, xj} Thus, there is no better solution than the greedy one

Algorithm fractionalKnapsack(S, W) Input: set S of items w/ benefit bi and weight wi; max. weight W Output: amount xi of each item i to maximize benefit with weight at most W for each item i in S xi 0 {value} vi bi / wi w0 {total weight} while w < W remove item i with highest vi xi min{wi , W w} w w + min{wi , W w}
7

Goal: Perform all the tasks using a minimum number of machines.


Machine 3 Machine 2 Machine 1

A start time, si A finish time, fi (where si < fi)

The Greedy Method

The Greedy Method

Task Scheduling Algorithm


Greedy choice: consider tasks by their start time and use as few machines as possible with Algorithm taskSchedule(T) this order. Input: set T of tasks w/ start time si Run time: O(n log n). Why? and finish time fi Correctness: Suppose there is a Output: non-conflicting schedule with minimum number of machines better schedule. {no. of machines} m0 We can use k-1 machines while T is not empty The algorithm uses k remove task i w/ smallest si Let i be first task scheduled if theres a machine j for i then on machine k schedule i on machine j Machine i must conflict with else k-1 other tasks mm+1 But that means there is no schedule i on machine m non-conflicting schedule using k-1 machines
The Greedy Method 9

Example
Given: a set T of n tasks, each having:

A start time, si A finish time, fi (where si < fi) [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


Machine 3 Machine 2 Machine 1

The Greedy Method

10

You might also like