CS 466/666, Fall 2011
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.
For a few topics, I will be writing lecture notes. This is very
much work in progress, and no promises are made when these notes
will be ready.
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.
- Intro (Lecture 1)
What this course is about, on the example of vertex-cover
[Notes in PDF].
- 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)
QuickSelect. Randomized QuickSelect.
Worst-case linear time selection.
[CLRS, Chapter 10]
Lower bounds for selection.
[Notes in PDF].
Randomized algorithms: Las Vegas and Monte Carlo. Some probability review.
Randomized Selection algorithm by Floyd and Rivest. Analysis. [MU]
- Perfect matchings (Lecture 7)
Briefest sketch of standard approaches. Solving via Tutte-matrix.
Monte-Carlo method for multivariate polynomial identities.
[MR, Section 7.3 and 7.2, or CMU web page]
- Linear programming. (Lecture 8)
Motivation. Simple algorithm in 2D. Randomized
algorithm. Analysis in 2D. Generalization to higher dimension.
[BCKO, Chapter 4, or MR, Section 9.10.1]
- MST and Union/Find (Lecture 9-12)
MST problem.
Boruvka's algorithm. Karger's Las Vegas algorithm, with
improvement by Kleitman-Tarjan [MR, Chapter 10]
Analysis by T. Chan [Chan's paper]
Kruskal's algorithm. [CLRS, Chapter 23]
Union/Find Problem. List approaches and analysis.
Tree approaches and analysis. Path compression. [CLRS, Chapter 21]
Sketch of analysis
[Notes in PDF].
Least Common Ancestor problem. Solution via Union/Find.
MST verification via LCA [paper by Buchsbaum et al.; or CLRS, Problem 21-3]
- Dealing with NP-hard problems (Lecture 13)
The Max3Sat Problem. What to do with NP-hard problems.
The Vertex Cover problem. Related problems.
2-approximation for VC. Does
not mean 2-approximation for IS. [V, Section 1.1.1]
Greedy-algorithm for VC/SC. [V, Chapter 2]
- Travelling Salesman (Lecture 15)
Problem and typical restrictions.
Heuristics. [no reference]
Hardness of approximation.
MST-heuristic. Christofides' algorithm. [V, Chapter 3]
- SAT and MAX-SAT (Lecture 16-17)
1/2-approximation
by random assignment. Derandomization. [MU, Section 6.2 and 6.3 covers
this for MaxCut, which is very similar]
Formulation as IP. Randomized rounding. 3/4 approximation. [MR, Section 5.2]
2-SAT is polynomial [P, Chapter 9]
- Hardness of Approximation (Lecture 18-19)
Gap-preserving reductions. HC to TSP. Max3SAT to IndependentSet.
Gap-introduction reduction from SAT to Max3SAT (no proof.) APX-hardness
of Max3SAT. APX-hardness of IndependentSet [V, Chapter 29]
- Independent set and Vertex Cover (Lecture 19-21)
Special case for independent set: Hexagonal 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.
[Notes in PDF].
Fixed-parameter tractable algorithm for VC [notes from a course at MIT]
- Online algorithms. (Lecture 21)
The laptop idling (ski rental) problem. Online problems: definition,
competetive ratio. Simple strategies and how they compare.
[S. Albers, Energy-Efficient Algorithms, CACM 2010]
- Bin packing. (Lecture 22)
First fit and best fit. Example where they
are 1.7-competetive. Analysis of 2-competetive.
Theorem: They are always 1.7-competetive. No proof [D.S. Johnson et al., Worst-Case Performance Bounds for Simple One-Dimensional Packing Algorithms. SICOMP, Volume 3, Issue 4. 1974.]
Lower bound on any online algorithm Yao's refined first fit
strategy (sketch only). [A.C.Yao,
New Algorithms for
Bin Packing, J. ACM 27 (2), 1980.]
- The lost cow problem. (Lecture 23)
Simple strategies and competetive ratios. [Notes from MIT course].
The randomized optimal strategy.
[
M.Y. Kao, J. Reif and S. Tate,
Searching in an unknown environment, SODA '93]
- The MTF-heuristic. (Lecture 24)
Definition. Not competetive in general. 4-competetiveness with
strategies that only swap neighboring items.
[Notes by R. Fiebrink, p.7/8]
Conclusion of course. What to know for the final. What courses one could
take after this one. What to know after the final. [PDF of slides]