Professional Documents
Culture Documents
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
Machine 3
Machine 2
Machine 1
1 2 3 4 5 6 7 8 9