Greedy Method
Greedy Method
Objective: maximize b (x / w )
iS
i i i
Constraint: x
iS
i W
The Greedy Method 8
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 9
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
iS iS
Run time: O(n log n). Why? Output: amount xi of each item i
to maximize benefit w/ weight
Correctness: Suppose there at most W
is a better solution for each item i in S
there is an item i with higher xi 0
value than a chosen item j, vi bi / wi {value}
but xi<wi, xj>0 and vi<vj w0 {total weight}
If we substitute some i with j, while w < W
we get a better solution remove item i w/ 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 10
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
Machine 3
Machine 2
Machine 1
1 2 3 4 5 6 7 8 9