0% found this document useful (0 votes)
327 views10 pages

Greedy Method

The document describes the greedy method algorithm design technique. It works by making locally optimal choices at each step to arrive at a global optimum. It is best applied to problems with the greedy-choice property, where a globally optimal solution can be built from a series of local improvements. Examples discussed include the fractional knapsack problem, where items are selected in order of highest value per weight ratio, and task scheduling, where tasks are assigned to machines based on earliest start time to minimize the number of machines needed.
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)
327 views10 pages

Greedy Method

The document describes the greedy method algorithm design technique. It works by making locally optimal choices at each step to arrive at a global optimum. It is best applied to problems with the greedy-choice property, where a globally optimal solution can be built from a series of local improvements. Examples discussed include the fractional knapsack problem, where items are selected in order of highest value per weight ratio, and task scheduling, where tasks are assigned to machines based on earliest start time to minimize the number of machines needed.
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
You are on page 1/ 10

The Greedy Method

The Greedy Method 1


Outline and Reading

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 2


The Greedy Method
Technique
The greedy method is a general algorithm
design paradigm, built on the following
elements:
„ 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:
„ a globally-optimal solution can always be found by a
series of local improvements from a starting
configuration.
The Greedy Method 3
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
„ 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).
Example 2: Coins are valued $.30, $.20, $.05, $.01
„ Does not have greedy-choice property, since $.40 is best made
with two $.20’s, but the greedy solution will pick three coins
(which ones?)
The Greedy Method 4
The Fractional Knapsack
Problem
Given: A set S of n items, with each item i having
„ bi - a positive benefit
„ wi - a positive weight
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.
„ In this case, we let xi denote the amount we take of item i

„ Objective: maximize ∑b (x / w )
i∈S
i i i

„ Constraint: ∑x
i∈S
i ≤W
The Greedy Method 5
Example
Given: A set S of n items, with each item i having
„ bi - a positive benefit
„ wi - a positive weight
Goal: Choose items with maximum total benefit but with
weight at most W.
“knapsack”

Solution:
• 1 ml of 5
Items:
1 2 3 4 5 • 2 ml of 3
• 6 ml of 4
Weight: 4 ml 8 ml 2 ml 6 ml 1 ml • 1 ml of 2
Benefit: $12 $32 $40 $30 $50 10 ml
Value: 3 4 20 5 50
($ per ml)
The Greedy Method 6
The Fractional Knapsack
Algorithm
Greedy choice: Keep taking
item with highest value Algorithm fractionalKnapsack(S, W)
(benefit to weight ratio) Input: set S of items w/ benefit bi
„ Since ∑ bi ( xi / wi ) = ∑ (bi / wi ) xi and weight wi; max. weight W
i∈S i∈S Output: amount xi of each item i
„ Run time: O(n log n). Why? to maximize benefit with
Correctness: Suppose there weight at most W
is a better solution for each item i in S
xi ← 0
„ there is an item i with higher
value than a chosen item j vi ← bi / wi {value}
(i.e., vi<vj) but xi<wi and xj>0 w←0 {total weight}
If we substitute some i with j, while w < W
we get a better solution remove item i with highest vi
„ How much of i: min{wi-xi, xj} xi ← min{wi , W − w}
„ Thus, there is no better w ← w + min{wi , W − w}
solution than the greedy one
The Greedy Method 7
Task Scheduling
Given: a set T of n tasks, each having:
„ A start time, si
„ A finish time, fi (where si < fi)
Goal: Perform all the tasks using a minimum number of
“machines.”

Machine 3
Machine 2
Machine 1

1 2 3 4 5 6 7 8 9

The Greedy Method 8


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
better schedule. with minimum number of machines
„ We can use k-1 machines m←0 {no. of machines}
„ The algorithm uses k while T is not empty
„ Let i be first task scheduled
remove task i w/ smallest si
on machine k if there’s a machine j for i then
„ Machine i must conflict with
schedule i on machine j
k-1 other tasks else
„ But that means there is no
m←m+1
non-conflicting schedule schedule i on machine m
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

1 2 3 4 5 6 7 8 9

The Greedy Method 10

You might also like