CS 222 Fall 2007, Design and Analysis of Efficient Computer Algorithms.
Dan Gusfield
UC Davis
Running list of topics covered in lecture
1. September 28: A formal definition of worst-case running time of an algorithm; assymptotic notation;
Merge-Sort and its analysis by setting up and solving (finding a closed form solution) of
a recurrence relation.
2. October 1: Counting all the inversions in a permutation in O(n log n) time. See Section 5.3 of
the text. We gave a more complete proof of correctness than in the book, proving explicitly that
there was no double counting between levels of the recursion, and no over or under counting
at a single level of the recursion.
3. October 3: Finding the closest pair of points on the plane by divide and conquer. See Section 5.4
4. October 5: Unweighted interval scheduling by a greedy algorithm. Weighted interval scheduling
by dynamic programming.
5. October 8: Traceback for weighted interval scheduling. Weighted sequence
alignment and weighted edit distance by DP.
6. October 10: Shortest path algorithms.
7. October 12: Network flow. The start of the Ford-Fulkerson algorithm.
8. October 15: Network flow. Continuation of the Ford-Fulkerson algorithm. The Max-Flow
Min-Cut Theorem.
9. October 17: Proof of the Max-Flow Min-Cut Theorem for integer capacities, based on the
FF algorithm. Bipartite matching. Start of the Preflow-Push algorithm.
10. October 19: Continuation of the Preflow-Push algorithm. Proof that if f is a preflow and
h is a compatible node labeling, then there is no s-t path in the augmentation graph Gf defined from
f. Details of the Preflow-Push algorithm.
11.October 22: Time analysis of the Preflow-Push algorithm. Bounding the number of relabels and saturating pushes.
12. October 24: Finish of the time alanysis for preflow-push. Bounding the number of non-saturating pushes. Reducing
the time bound by picking the node with maximum height among the nodes with excess.
13. October 26: Midterm
14. Oct. 29 Use of network flow in end of the season elimination problems. Extension to other scoring systems beyond baseball.
15. Oct. 31 Introduction to Reductions and NP
16. Nov. 2 NP, NP-C, co-NP
17. Nov. 5 NP, NP-C, co-NP
18. Nov. 7 dealing with NP-hard problems: special cases - Greedy, yet optimal Node Cover on a tree, Weighted node cover via DP. on a tree.
19. Nov. 9 fixed parameter tractability: weighted node cover when there are at most k nodes in the node cover.
20. Nov. 14 Bounded error approximation bounds: unweighted node cover via maximal matching; Steiner string problem.
21. Nov. 16 Approximation algorithms: Steiner string problem. Disjoint paths in a graph.
22. Nov. 19 Disjoint paths in a graph. Non-approximability of the TSP problem.
23. Nov. 21 Linear-time String Matching. The Z-algorithm
24. Nov. 26 Deterministic Global Min-Cut without network flow
25. Nov. 28 Randomized Global Min-Cut
26. Nov. 30 Constant-Time Least Common Ancestor algorithm - almost completed
27. Dec. 3 Constant-Time Least Common Ancestor algorithm - finished, Introduction to Tree Decomposition.
28. Dec. 5 Hashing - lecture by Chip Martel
29. Dec. 7 Tree Decomposition and Tree Width.