Greedy Algorithms
• Solveproblems with the simplest possible
algorithm
• The hard part: showing that something
simple actually works
• Pseudo-definition
– An algorithm is Greedy if it builds its solution
by adding elements one at a time using a
simple rule
3.
Scheduling Theory
• Tasks
–Processing requirements, release times,
deadlines
• Processors
• Precedence constraints
• Objective function
– Jobs scheduled, lateness, total execution time
4.
• Tasks occurat fixed times
• Single processor
• Maximize number of tasks completed
• Tasks {1, 2, . . . N}
• Start and finish times, s(i), f(i)
Interval Scheduling
Greedy Algorithm forScheduling
Let T be the set of tasks, construct a set of independent tasks I,
A is the rule determining the greedy algorithm
I = { }
While (T is not empty)
Select a task t from T by a rule A
Add t to I
Remove t and all tasks incompatible with t from T
7.
Simulate the greedyalgorithm for
each of these heuristics
Schedule earliest starting task
Schedule shortest available task
Schedule task with fewest conflicting tasks
Theorem: Earliest FinishAlgorithm
is Optimal
• Key idea: Earliest Finish Algorithm stays
ahead
• Let A = {i1, . . ., ik} be the set of tasks found
by EFA in increasing order of finish times
• Let B = {j1, . . ., jm} be the set of tasks
found by a different algorithm in increasing
order of finish times
• Show that for r<= min(k, m), f(ir) <= f(jr)
10.
Stay ahead lemma
•A always stays ahead of B, f(ir) <= f(jr)
• Induction argument
– f(i1) <= f(j1)
– If f(ir-1) <= f(jr-1) then f(ir) <= f(jr)
11.
Completing the proof
•Let A = {i1, . . ., ik} be the set of tasks found by
EFA in increasing order of finish times
• Let O = {j1, . . ., jm} be the set of tasks found by
an optimal algorithm in increasing order of finish
times
• If k < m, then the Earliest Finish Algorithm
stopped before it ran out of tasks
Algorithm
• Sort bystart times
• Suppose maximum depth is d, create d
slots
• Schedule items in increasing order, assign
each item to an open slot
• Correctness proof: When we reach an
item, we always have an open slot
Scheduling tasks
• Eachtask has a length ti and a deadline di
• All tasks are available at the start
• One task may be worked on at a time
• All tasks must be completed
• Goal: minimize maximum lateness
– Lateness = fi – di if fi >= di
Analysis
• Suppose thejobs are ordered by deadlines, d1
<= d2 <= . . . <= dn
• A schedule has an inversion if job j is scheduled
before i where j > i
• The schedule A computed by the greedy
algorithm has no inversions.
• Let O be the optimal schedule, we want to show
that A has the same maximum lateness as O
Lemma: There isan optimal
schedule with no idle time
• It doesn’t hurt to start your homework early!
• Note on proof techniques
– This type of can be important for keeping proofs clean
– It allows us to make a simplifying assumption for the
remainder of the proof
a4 a2 a3 a1
25.
Lemma
• If thereis an inversion i, j, there is a pair of
adjacent jobs i’, j’ which form an inversion
26.
Interchange argument
• Supposethere is a pair of jobs i and j, with
di <= dj, and j scheduled immediately
before i. Interchanging i and j does not
increase the maximum lateness.
di dj
di dj
j i j
i
Real Proof
• Thereis an optimal schedule with no
inversions and no idle time.
• Let O be an optimal schedule k inversions,
we construct a new optimal schedule with
k-1 inversions
• Repeat until we have an optimal schedule
with 0 inversions
• This is the solution found by the earliest
deadline first algorithm
Extensions
• What ifthe objective is to minimize the
sum of the lateness?
– EDF does not seem to work
• If the tasks have release times and
deadlines, and are non-preemptable, the
problem is NP-complete
• What about the case with release times
and deadlines where tasks are
preemptable?
31.
Optimal Caching
• Cachingproblem:
– Maintain collection of items in local memory
– Minimize number of items fetched
Optimal Caching
• Ifyou know the sequence of requests,
what is the optimal replacement pattern?
• Note – it is rare to know what the requests
are in advance – but we still might want to
do this:
– Some specific applications, the sequence is
known
– Competitive analysis, compare performance
on an online algorithm with an optimal offline
algorithm
34.
Farthest in thefuture algorithm
• Discard element used farthest in the future
A, B, C, A, C, D, C, B, C, A, D
35.
Correctness Proof
• Sketch
•Start with Optimal Solution O
• Convert to Farthest in the Future Solution
F-F
• Look at the first place where they differ
• Convert O to evict F-F element
– There are some technicalities here to ensure
the caches have the same configuration . . .