Tentative
Course Outline
Topic: Introduction to algorithm analysis and asymptotic notation
Reading: Chapters 1, 2 and 3 of CLRS (Read the appendix covering mathematical background if you need to)
Principles of algorithm analysis
Asymptotic notation
Comparing growth rate of functions
Growth rate as a measure of efficiency of use of a faster processor
Topic: Proving Greedy Algorithms Correct Using an Exchange Argument
Reading: Chapter 16
Example: Matroids
Topic: Divide and Conquer
Reading Chapters 4 and 30
Example: FFT algorithm for polynomial multiplication
Solving recurrence relations. The master theorem. Expansion. Induction.
Topic: Problem Complexity, Information Theoretic and Adversarial Lower Bounds
Reading: Chapter 9
Time complexity of a problem
Example: Searching lower bound
Example: Sorting lower bound
Example: Element Uniqueness lower bound
Example: n-1 lower bound for find the maximum
Example: 3n/2 lower bound for computing smallest and largest number (not in the book)
Topic: Average-case analysis, randomized algorithms, and bounding tails of distributions
Reading: Chapters 5, 7, 9, 11, 12, and 13, and Handout on randomized algorithms.
Linearity of expectations
Example: Hiring Problem
Example: Quicksort, Expected linear time selection, Randomly built Search trees
Example: Expected time for insert in closed addressed hash table
Example: Expected time for insert in open addressed hash table using uniform hashing
Example: Universal Hash Functions
Example: Randomized Monte-Carlo Min-Cut Algorithm
Las Vegas vs. Monte Carlo algorithms
Bounding Tails and Union Bounds
Example: Analysis of streaks in Bernoulli trials
Example: High confidence analysis of Quicksort, Expected linear time selection, Randomly built Search trees
binomially distributed random variable and
Chernoff bounds
Yao's technique
Example: Average case information theoretic lower bound for sorting
Example: Randomized Las Vegas lower bound for sorting
Topic: Single Source Shortest Path Algorithms
Reading: Chapter 24
Example: Dijkstra (greedy and exchange argument proof of correctness)
Example: Bellman-Ford (dynamic programming)
Example: Linear time algorithm for directed acyclic graphs
Topic: Network Flow
Reading: Chapter 26
Example: Ford-Fulkerson algorithm
Example: Karp-Edmonds Algorithms
Poly-time, pseudo poly-time, and strong poly-time
Example: Push-relabel algorithm (skipping on first pass)
Topic: Linear Programming
Reading: Chapter 29
Example: Writing network flow as a linear program
Example: Writing shortest path as a linear program
Simplex greedy algorithm vs. divide and conquer interior point methods
Weak duality, complementary slackness and statement of strong duality
Example: Writing the
diet problem
as a linear program and computing its dual
Example: Dual of network flow
Example: Dual of the shortest path problem
Topic: NP-completeness
Read: Chapter 34
Example: NP-hardness of Vertex Cover
Example Dynamic program for Subset Sum and NP-hardness of Subset Sum
Topic: Approximation algorithms
Reading: Chapter 35
Example: 2 and 3/2 approximations for Traveling Salesman
Example: Vertex Cover using maximal matching lower bound
Example: Maximum weight vertex cover using linear programming lower bound
Example: Greedy weighted set cover using dual feasible solution as a lower bound
Example: Randomized 2 approximation for MAX2SAT, derandomization using method of conditional expectations
Example: PTAS for knapsack
Example: Gap reduction for TSP without triangle inequality to prove non-approximatability
Topic: Fixed Parameter Tractability (skipping on first pass)
Reading:
MIT OpenCourseWare Notes
(
local copy
)
Example: Kernalization for vertex cover
Topic: Amortization and potential functions
Reading: Chapter 17
Example: Multipop
Example: Counting in Binary
Example: Dynamic Table
Topic: Online algorithms
Reading:
paper
Example: Paging
, general lower bound and resource augmentation analysis of LRU
Example: Move to Front for List Update and general lower bound
Example: Speed Scaling for the objective of fractional flow plus energy (
notes,
survey paper
) (skipped this semester)
Topic: Parallel and Distributed Computing
Example: Luby's algorithm for maximal independent set in the CONGEST model (
reference
)
Topic: Online Learning From Experts and Regret Analysis
Example: Analysis of the weighted majority and randomized weighted majority algorithms (Source:
Notes
by Nina Balcan)
Topic: Fixed Parameter Tractable Algorithms
Example: Vertex Cover (Source:
Notes
from class taught by David Karger)