2 Huffman
2 Huffman
• Activity Selection
• Minimum Spanning Tree
• Dijkstra Shortest Path
• Huffman Codes
• Fractional Knapsack
Activity Selection
Activity Selection
Optimization Problem
• Problem Instance:
• Set S = {a1, a2,..., an} of n activities
• Each activity ai has:
• start time: si
• finish time: fi
• Activities i, j are compatible iff non-overlapping:
and and
• Objective:
• select a maximum-sized set of mutually compatible activities
Activity 1
Number
2
8
Algorithmic Progression
• “Brute-Force”
• Check all possible solutions
• Exponential number of subproblems!
• Dynamic Programming
• Quadratic number of subproblems
• Greedy Algorithm
• Linear number of subproblems
Activity Selection: Dynamic
Programming Formulation
• Algorithm:
• Presort activities in S by non-decreasing finish time and renumber.
Running time?
source: 91.503 textbook Cormen, et al. (3rd edition)
Streamlined Greedy Strategy
Approach
A 2
B
4
3 G
6
5
1 E 1
7
6 F
8
D 4
C
2
Running Time?
(T represents arbitrary optimal prefix code.) (Claim: T’’ also has optimal cost.)
30
20
10