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, 11
Worst case analysis vs. Average case analysis of Quicksort
Linearity of expectations
Example: Hiring Problem
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 to create randomized algorithms
Example: Quicksort
Bounding Tails and Union Bounds (
Chernoff bounds
)
Example: Analysis of streaks in Bernoulli trials
Example: Packet Routing (
notes
) with Chernoff bounds
Las Vegas vs. Monte Carlo algorithms
Yao's technique
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
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
Reading:
MIT OpenCourseWare Notes
(
local copy
) or
Notes
from class taught by David Karger
Example: Bounded tree width algorithm and 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: Analysis of Round Robin Scheduling for the objective of minimizing total response time
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: Lovasv Local Lemma ???
Topic: Multiplicative weights for games and linear programs ???
Topic: Push-Relabel Network flow algorithm????