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.