1 the greedy method csc401 – analysis of algorithms lecture notes 10 the greedy method objectives...

11
1 CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method The Greedy Method Objectives Objectives Introduce the Greedy Method Introduce the Greedy Method Use the greedy method to solve the Use the greedy method to solve the fractional Knapsack problem fractional Knapsack problem Use the greedy method to solve the Use the greedy method to solve the task scheduling problem task scheduling problem

Post on 22-Dec-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

11

CSC401 – Analysis of Algorithms Lecture Notes 10

The Greedy MethodThe Greedy MethodObjectivesObjectives

Introduce the Greedy MethodIntroduce the Greedy MethodUse the greedy method to solve the Use the greedy method to solve the fractional Knapsack problemfractional Knapsack problemUse the greedy method to solve the task Use the greedy method to solve the task scheduling problemscheduling problem

Page 2: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

22

The Greedy Method TechniqueThe Greedy Method TechniqueThe greedy methodThe greedy method is a general algorithm is a general algorithm design paradigm, built on the following elements:design paradigm, built on the following elements:– configurationsconfigurations: different choices, collections, : different choices, collections,

or values to findor values to find– objective functionobjective function: a score assigned to : a score assigned to

configurations, which we want to either configurations, which we want to either maximize or minimizemaximize or minimize

It works best when applied to problems with It works best when applied to problems with the the greedy-choicegreedy-choice property: property: – a globally-optimal solution can always be found a globally-optimal solution can always be found

by a series of local improvements from a by a series of local improvements from a starting configuration.starting configuration.

Page 3: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

33

Making ChangeMaking ChangeProblem:Problem: A dollar amount to reach and a collection A dollar amount to reach and a collection of coin amounts to use to get there.of coin amounts to use to get there.Configuration:Configuration: A dollar amount yet to return to a A dollar amount yet to return to a customer plus the coins already returnedcustomer plus the coins already returnedObjective function:Objective function: Minimize number of coins Minimize number of coins returned.returned.Greedy solution:Greedy solution: Always return the largest coin you Always return the largest coin you cancanExample 1:Example 1: Coins are valued $.25, $.10, $0.05, $0.01 Coins are valued $.25, $.10, $0.05, $0.01– Has the greedy-choice property, since no amount over $.25 Has the greedy-choice property, since no amount over $.25

can be made with a minimum number of coins by omitting a can be made with a minimum number of coins by omitting a $.25 coin (similarly for amounts over $.10, but under $.25).$.25 coin (similarly for amounts over $.10, but under $.25).

Example 2:Example 2: Coins are valued $.30, $.20, $.05, $.01 Coins are valued $.30, $.20, $.05, $.01– Does not have greedy-choice property, since $.40 is best Does not have greedy-choice property, since $.40 is best

made with two $.20’s, but the greedy solution will pick three made with two $.20’s, but the greedy solution will pick three coins (which ones?)coins (which ones?)

Page 4: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

44

The Fractional Knapsack ProblemThe Fractional Knapsack ProblemGiven:Given: A set S of n items, with each item i having A set S of n items, with each item i having– bbii - a positive benefit - a positive benefit– wwii - a positive weight - a positive weight

Goal:Goal: Choose items with maximum total benefit Choose items with maximum total benefit but with weight at most W.but with weight at most W.If we are allowed to take fractional amounts, then If we are allowed to take fractional amounts, then this is the this is the fractional knapsack problemfractional knapsack problem..– In this case, we let xIn this case, we let xi i denote the amount we take of item idenote the amount we take of item i

– Objective: maximizeObjective: maximize

– Constraint:Constraint:

Si

iii wxb )/(

iiSi

i wxWx

0,

Page 5: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

55

ExampleExampleGiven: A set S of n items, with each item i havingGiven: A set S of n items, with each item i having– bbii - a positive benefit - a positive benefit– wwii - a positive weight - a positive weight

Goal: Choose items with maximum total benefit but Goal: Choose items with maximum total benefit but with total weight at most W.with total weight at most W.

Weight:Benefit:

1 2 3 4 5

4 ml 8 ml 2 ml 6 ml 1 ml

$12 $32 $40 $30 $50

Items:

Value: 3($ per ml)

4 20 5 5010 ml

Solution:• 1 ml of 5• 2 ml of 3• 6 ml of 4• 1 ml of 2

“knapsack”

Page 6: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

66

The Fractional Knapsack AlgorithmThe Fractional Knapsack AlgorithmGreedy choice: Keep taking item with highest Greedy choice: Keep taking item with highest valuevalue (benefit to weight ratio) (benefit to weight ratio)– Since Since

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 w/ weight at most W

for each item i in S

xi 0

vi bi / wi {value}w 0 {total weight}

while w < W

remove item i with highest vi

xi min{wi , W - w}

w w + min{wi , W - w}

Si

iiiSi

iii xwbwxb )/()/(

Page 7: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

77

The Fractional Knapsack AlgorithmThe Fractional Knapsack AlgorithmRunning time:Running time: Given a collection S of n items, such Given a collection S of n items, such that each item i has a benefit bthat each item i has a benefit bii and weight w and weight wii, we , we can construct a maximum-benefit subset of S, can construct a maximum-benefit subset of S, allowing for fractional amounts, that has a total allowing for fractional amounts, that has a total weight W in O(nlogn) time.weight W in O(nlogn) time. – Use heap-based priority queue to store SUse heap-based priority queue to store S– Removing the item with the highest value takes Removing the item with the highest value takes

O(logn) timeO(logn) time– In the worst case, need to remove all itemsIn the worst case, need to remove all itemsCorrectness: Correctness: Suppose there is a better solutionSuppose there is a better solution– there is an item i with higher value than a chosen there is an item i with higher value than a chosen

item j, but xitem j, but xii<w<wii, x, xjj>0 and v>0 and vii<v<vjj

– If we substitute some i with j, we get a better If we substitute some i with j, we get a better solutionsolution

– How much of i: min{wHow much of i: min{wii-x-xii, x, xjj}}– Thus, there is no better solution than the greedy Thus, there is no better solution than the greedy

oneone

Page 8: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

88

Task SchedulingTask SchedulingGiven: a set T of n tasks, each having:Given: a set T of n tasks, each having:– A start time, sA start time, sii

– A finish time, fA finish time, fii (where s (where sii < f < fii))

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

1 98765432

Machine 1

Machine 3

Machine 2

Page 9: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

99

Task Scheduling AlgorithmTask Scheduling AlgorithmGreedy choice: consider tasks by their start time and Greedy choice: consider tasks by their start time and use as few machines as possible with this order.use as few machines as possible with this order.

Algorithm taskSchedule(T)

Input: set T of tasks with start time si and finish time fi

Output: non-conflicting schedule with minimum number of machines

m 0 {no. of machines}

while T is not empty

remove task i with smallest si

if there’s a machine j for i thenschedule i on machine j

else m m + 1schedule i on machine m

Page 10: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

1010

Task Scheduling AlgorithmTask Scheduling AlgorithmRunning time:Running time: Given a set of n tasks specified by Given a set of n tasks specified by their start and finish times, Algorithm TaskSchedule their start and finish times, Algorithm TaskSchedule produces a schedule of the tasks with the minimum produces a schedule of the tasks with the minimum number of machines in O(nlogn) time.number of machines in O(nlogn) time.– Use heap-based priority queue to store tasks with the start Use heap-based priority queue to store tasks with the start

time as the prioritiestime as the priorities– Finding the earliest task takes O(logn) timeFinding the earliest task takes O(logn) time

Correctness:Correctness: (proof by contradiction) Suppose there (proof by contradiction) Suppose there is a better schedule.is a better schedule.– We can use k-1 machinesWe can use k-1 machines– The algorithm uses kThe algorithm uses k– Let i be first task scheduled on machine kLet i be first task scheduled on machine k– Machine i must conflict with k-1 other tasksMachine i must conflict with k-1 other tasks– But that means there is no non-conflicting But that means there is no non-conflicting

schedule using k-1 machinesschedule using k-1 machines

Page 11: 1 The Greedy Method CSC401 – Analysis of Algorithms Lecture Notes 10 The Greedy Method Objectives Introduce the Greedy Method Use the greedy method to

1111

ExampleExampleGiven: a set T of n tasks, each having:Given: a set T of n tasks, each having:– A start time, sA start time, sii

– A finish time, fA finish time, fii (where s (where sii < f < fii))– [1,4], [1,3], [2,5], [3,7], [4,7], [6,9], [7,8] (ordered by start)[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 machinesGoal: Perform all tasks on min. number of machines

1 98765432

Machine 1

Machine 3

Machine 2