CS 466/666, Fall 2009
Advanced Algorithms
References:
There is no required textbook for this course. The following references
will be placed on reserve in the DC library (for 3 hour loan).
[CLRS] Cormen, Leiserson, Rivest, and Stein,
Introduction to Algorithms (2nd ed.), MIT Press,
2001 (QA76.6.C662)
  [I've used the 1st edition during preparation, so the chapter
numbers might be a bit off. ]
[BCKO]
de Berg, Cheong, van Kreveld, Overmars. Computational
Geometry: algorithms and applications. (3rd ed.), Springer, 2008.
(QA448.D38C65 1997).
Also available electronically if you're on a UW computer.
[MU] M. Mitzenmacher and E. Upfal, Probability and Computing,
Cambridge University Press, 2005 (QA274 .M574 2005)
[MR] Motwani and Raghavan, Randomized Algorithms,
Cambridge University Press, 1995 (QA274.M68)
[P] Papadimitirou, Computational Complexity, Addison-Wesley, 1994
(QA267.7.P36 1994)
[V] Vazirani, Approximation Algorithms,
Springer-Verlag, 2001 (QA76.9.A43 V39)
Many topics are presented directly from the original papers;
references to electronic editions will be given below.
Lecture Topics:
The lectures are organized around problems instead of techniques,
to motivate things better. We usually devote more than a lecture
to each problem and then explore different ideas to devise
an efficient algorithm. Along the way, we will indeed encounter
new design techniques and variations on the analysis model (themes
like amortization, randomization, approximation, online computation,
etc., as promised in the handbook description), but the main emphasis
is how to think about problems...
The following gives a list of topics, as well as the reference that
I followed or would recommend for further reading. This list may
change much throughout the term.
- Priority queues and amortized analysis. (Lecture 1 & 2)
Simple implementations. Lower bounds.
[CLRS, Chapter 6 (?)]
Detour: Increasing a binomial counter. The three methods of
amortized analysis.
[CLRS, Chapter 17 (?)]
Binomial heaps
[CLRS, Chapter 20 (?)]
Brief sketch of Fibonacci heaps.
[CLRS, Chapter 21 (?)]
- Convex hull: (Lecture 3 & 4)
Model of computation, brute-force algorithm, Graham's scan, Jarvis' march.
[CLRS, Chapter 35] or [BCKO, Chapter 1]
Timothy's algorithm
[Chan, 1996]
Lower bounds via reduction and via decision tree
[no reference]
- Selection: (Lecture 5 & 6)
Basic algorithm, QuickSelect. QuickSelect with random pivot. Analysis.
Worst-case linear time selection.
[CLRS, Chapter 10]
Randomized algorithms: Las Vegas and Monte Carlo. Some probability review.
Randomized Selection algorithm by Floyd and Rivest. Analysis.
[MU]
Lower bounds for selection.
[
Original paper by Blum et al., J. Computer System Sciences 7 (4), pp. 448-461, 1973]
- Minimum enclosing disk. (Lecture 7)
Brute-force algorithm. Meggido's worst-case linear time algorithm (sketch).
[N. Meggido, Linear-time Algorithms for Linear Programming
in R^3 and Related Problems, SIAM J. Computing 12 (4), pp. 759-776, 1983]
Randomized algorithm by Seidel-Welzl.
[BCKO, Chapter 4]
- Linear programming. (Lecture 8)
Motivation. Simple algorithm in 2D. Randomized
algorithm. Analysis in 2D. Generalization to higher dimension.
[BCKO, Chapter 4]
- MST (Lecture 9)
MST problem. Review of known algorithms. [CLRS]
Boruvka's algorithm. Karger's Las Vegas algorithm, with
improvement by Kleitman-Tarjan [MR, Chapter 10]
- Union/Find (Lecture 10-11)
Union/Find Problem. List approaches and analysis.
Tree approaches and analysis. Path compression. [CLRS, Chapter 21]
Sketch of analysis [no reference].
Least Common Ancestor problem. Solution via Union/Find.
MST verification via LCA [paper by Buchsbaum et al.; or [CLRS, Problem 21-3]
- Vertex Cover and Independent Set (Lecture 12-16)
Problem. NP-hardness and proof. What to do with NP-hard
problems. Formulation as IP. 2-approximation for VC. Does
not mean 2-approximation for IS. Greedy-algorithm for VC.
[no reference, but CLRS problem 35-4 and [V, Chapter 2] cover
a bit of this.]
Fixed-parameter tractable algorithm for VC [notes from a course at MIT]
Special case for independent set: Grid graphs. Simple algorithm for height 1.
Dynamic programming algorithm for height 2 and more. For unbounded height,
obtain a PTAS by splitting by layers. [no reference; based on algorithm
for planar graphs by
Baker]
- Research problems (Lecture 16)
A brief detour into problems that I work on (or have worked on.)
Independent set in planar graphs [B. and Wilkinson.] Nonograms [Bains and B.].
- Travelling Salesman (Lecture 17)
Problem and typical restrictions.
Heuristics. [no reference]
Hardness of approximation.
MST-heuristic. Christofides' algorithm. [V, Chapter 3]
- Maximum cut (Lecture 18)
The problem. IP-formulation.
Approximation algorithms. Local improvement. Randomized.
Probabilistic argument and derandomization. [MM, Section 6.2 and 6.3]
Special cases: planar graphs (no details.)
- SAT and MAX-SAT (Lecture 19-21)
Problem. Brute-force method. Outloook. [no reference]
Papadimitriou's Monte Carlo
algorithm. Analysis for 2-SAT and detour into Markov Chains.
Sketch of analysis for 3-SAT. Schoenning's Improvement.
[MU, Chapter 7.1 and 7.2]
2-SAT is polynomial [P, Chapter 9]
Approximation algorithms for MAX-SAT: Various 1/2-approximations.
3/4 approximation via randomized rounding. [V, Chapter 16]
- Online algorithms. (Lecture 21-22)
The bus pass problem (ski rental problem.) Online problems: definition,
competetive ratio. Simple strategies and how they compare.
Bin packing. First fit and best fit. Analysis of 2-competetive.
Example where they are 1.7-competetive. Theorem: They are always
1.7-competetive. Proof for 1.75-competetive. (
D.S. Johnson, A.J. Demers, J.D. Ullman, M. R. Garey, R.L. Graham. Worst-Case Performance Bounds for Simple One-Dimensional Packing Algorithms. SICOMP, Volume 3, Issue 4. 1974.]
Yao's refined first fit
strategy. Few details. [A.C.Yao,
New Algorithms for
Bin Packing, J. ACM 27 (2), 1980.]
- The lost cow problem. (Lecture 23-24)
The problem.
Simple strategies and competetive ratios.
The randomized optimal strategy.
[M.Y. Kao, J. Reif and S. Tate,
Searching in an unknown environment: an optimal randomized algorithm
for the cow-path problem.
Proceedings of Symposium on Discrete Algorithms (SODA '93), pp. 441-447,
ACM, 1993.]