CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed...

17
CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali

Transcript of CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed...

Page 1: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

CSC5101 Advanced Algorithms

AnalysisLecture 5 (Greedy algorithms)

Slides are prepared by: Syed Imtiaz Ali

Page 2: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

What is greedy algorithm?• It is hard, if not impossible, to define precisely

what is meant by a greedy algorithm.

•An algorithm is greedy if it:

• Builds up a solution in small steps

• Chooses a decision at each step shortsightedly

• Optimizes some underlying criterion

•Many real-world problems are optimization problems in that they attempt to find an optimal solution among many possible candidate solutions.

Page 3: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

Greedy algorithm--Example• A familiar scenario is the change-making problem that we often

encounter at a cash register:

• Receiving the fewest numbers of currency notes to make change after paying the bill for a purchase.

• For example, the purchase is worth AED210.25, how many coins and currency notes and of what worth does a cash register return after paying a AED500 note bill?

• Many candidate solutions are possible. The algorithm will choose the optimal one based on some criteria

• The Make-Change algorithm:

• For a given balance amount (e.g. AED289.75), use AED currency as follows:

6. AED10 notes (1 in this case)7. AED5 notes (1 in this case)8. AED1 coins ( 4 in this case)9. AED0.5 coins ( 1 in this case)10. AED0.25 coins ( 1 in this case)

1. AED500 notes (0 in this case) 2. AED200 notes (1 in this case) 3. AED100 notes (0 in this case)4. AED50 notes (1 in this case)5. AED20 notes (1 in this case)

Page 4: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

Activity Selection Problem• Problem of scheduling several competing activities that

require exclusive use of a common resource, with a goal of selecting a maximum-size set of mutually compatible activities.

• Suppose we have a set S = {a1, a2,……….. ,an} of n proposed activities that wish to use a resource, such as a lecture hall, which can serve only one activity at a time.

• Each activity ai has a start time si and a finish time fi, where 0 ≤ si < fi < ∞.

• Activities ai and aj are compatible if the intervals (si, fi ) and (sj, fj) do not overlap.

• That is, ai and aj are compatible if si ≤ fj or sj ≤ fi.

Page 5: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

Activity Selection Problem• In the activity-selection problem, we wish to

select a maximum-size subset of mutually compatible activities.

•We assume that the activities are sorted in increasing order of finish time:

f1 ≤ f2 ≤ f3 ≤ ……. ≤ fn1 ≤ fn

• For example,

• Consider the following set S of activities:

Page 6: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

Activity Selection Problem

• For this example, the subset {a3, a9, a11} consists of mutually compatible activities.

• It is not a maximum subset, since the subset {a1, a4, a8, a11} is larger.

• In fact, {a1, a4, a8, a11} is a largest subset of mutually compatible activities

• Another largest subset is {a2, a4, a9, a11}.

Page 7: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

The optimal substructure of the activity-selection problem

• We can easily verify that the activity-selection problem exhibits optimal substructure.

• Let us denote by Sij the set of activities that start after activity ai finishes and that finish before activity aj starts.

• Two assumptions:1. We wish to find a maximum set of mutually compatible activities in Sij

2. Such a maximum set is Aij , which includes some activity ak.

• By including ak in an optimal solution, we are left with two subproblems:

1. finding mutually compatible activities in the set Sik (activities that start after activity ai finishes and that finish before activity ak starts)

2. finding mutually compatible activities in the set Skj (activities that start after activity ak finishes and that finish before activity aj starts).

Page 8: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

The optimal substructure of the activity-selection problem

• Let Aik = Aij ∩ Sik and Akj = Aij ∩ Skj

• This means that Aik contains the activities in Aij that finish before ak starts and Akj contains the activities in Aij that start after ak finishes.

• Thus, we have Aij = Aik U {ak} U Akj

• This means that the maximum-size set Aij of mutually compatible activities in Sij consists of |Aij| = |Aik| + |Akj| + 1 activities.

• If we denote the size of an optimal solution for the set Sij by

c[i, j ], then we would have the recurrence:

c[i, j ] = c[i, k] + c[k, j ] + 1

Page 9: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

The optimal substructure of the activity-selection problem

• If we did not know that an optimal solution for the set Sij includes activity ak, we would have to examine all activities in Sij to find which one to choose, so that

•We could then develop a recursive algorithm and optimize it by reducing the recursive calls, or we could work bottom-up and fill in table entries as we go along.

Page 10: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

Making the greedy choicein the activity-selection problem

• For the activity-selection problem, we need consider only one choice: the greedy choice.

•What do we mean by the greedy choice for the activity-selection problem?

• Our intuition tells us, to choose the activity in S with the earliest finish time, since that would leave the resource available for as many of the activities that follow it as possible.

• If we make the greedy choice, we have only one remaining subproblem to solve: finding activities that start after a1 finishes.

Page 11: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

Making the greedy choicein the activity-selection problem

• We have already established that the activity-selection problem exhibits optimal substructure.

• Let Sk be the set of activities that start after activity ak finishes.

• If we make the greedy choice of activity a1, then S1 remains as the only subproblem to solve.

• Optimal substructure tells us that if a1 is in the optimal solution, then an optimal solution to the original problem consists of activity a1 and all the activities in an optimal solution to the subproblem S1.

• One big question remains: is our intuition correct?

• Is the greedy choice—in which we choose the first activity to finish—always part of some optimal solution?

• A theorem shows that it is.

Page 12: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

Theorem to prove the greedy choice was correct in the activity-selection problem

• Consider any nonempty subproblem Sk, and let am be an activity in Sk with the earliest finish time. Then am is included in some maximum-size subset of mutually compatible activities of Sk.

• Proof:

• Let Ak be a maximum-size subset of mutually compatible activities in Sk

• Let aj be the activity in Ak with the earliest finish time.

• If aj = am, we are done, since we have shown that am is in some maximum-size subset of mutually compatible activities of Sk.

• If aj ≠ am, let the set A’k = Ak - {aj } U {am} be Ak but substituting am for aj .

• The activities in A’k are disjoint, which follows because the activities in Ak are disjoint, aj is the first activity in Ak to finish, and fm ≤ fj .

• Since |A’k| = |Ak|, we conclude that A’k is a maximum-size subset of mutually compatible activities of Sk, and it includes am.

Page 13: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

A recursive greedy algorithmfor the activity-selection problem

• The procedure RECURSIVE-ACTIVITY-SELECTOR takes:

• The start and finish times of the activities, represented as arrays s and f ,

• The index k that defines the subproblem Sk it is to solve,

• The size n of the original problem.

• It returns a maximum-size set of mutually compatible activities in Sk.

• We assume that the n input activities are already ordered by monotonically increasing finish time. If not, we can sort them into this order in O(n log n) time, breaking ties arbitrarily.

• In order to start, we add the fictitious activity a0 with f0 = 0, so that subproblem S0 is the entire set of activities S.

• The initial call, which solves the entire problem, isRECURSIVE-ACTIVITY-SELECTOR(s, f, 0, n)

Page 14: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

A recursive greedy algorithmfor the activity-selection problem

Page 15: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

A recursive greedy algorithmfor the activity-selection problem

• The operation of RECURSIVE-ACTIVITY-SELECTOR on the 11 activities given earlier.

• Activities considered in each recursive call appear between horizontal lines. • The fictitious activity a0 finishes at time 0• The initial call RECURSIVE-ACTIVITY-SELECTOR(s, f, 0, 11), selects activity a1.

Page 16: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

A recursive greedy algorithmfor the activity-selection problem

• In each recursive call, the activities that have already been selected are shaded, and the activity shown in white is being considered.

• If the starting time of an activity occurs before the finish time of the most recently added activity (the arrow between them points left), it is rejected.

• Otherwise (the arrow points directly up or to the right), it is selected.

Page 17: CSC5101 Advanced Algorithms Analysis Lecture 5 (Greedy algorithms) Slides are prepared by: Syed Imtiaz Ali.

A recursive greedy algorithmfor the activity-selection problem

• The last recursive call, RECURSIVE-ACTIVITY-SELECTOR(s, f, 11, 11), returns 0.

• The resulting set of selected activities is {a1, a4, a8, a11}.