Material Covered
The list is intended as a guide. Dates may not exactly match the times
the material was discussed; some of the topics were not taught, but mentioned
as things you have learned, or should read on your own.
If you notice something missing, or something listed as "covered" that
wasn't, please let us know.
1/8 Introduction. Informal Notes on testing whether a graph is Eulerian. Intro to Stable Matching.
1/10 Stable Matching (Section 1.1). REMINDER: I assume you know all of
Chapters 2 and 3!!
1/13 Greedy Algorithms (Chapter 4). Knapsack problems (llustration), Interval Scheduling Problems (Sections 4.1 and 4.2 of the text).
1/15 Minimum Spanning Trees--Prim and Kruskal Strategies. Shortest Paths -- Dijkstra (Sections 4.4, 4.5)
1/17 Implementation issues. Heaps (Section 2.5). Union-Find Structures. (Section 4.6).
1/20 No class. MLK Day
1/22 Divide and Conquer. Recursion and recurrence relations. Mergesort. Integer Multiplication. Divide into equal parts. (Sections 5.1, 5.5 -- 5.2 covered in 271000)
1/24 Dynamic Programming. Weighted Interval Scheduling. Memoization.Subset Sum and Knapsack. (Sections 6.1, 6.2, 6.4)
1/27 Dynamic Programming. Sequence Alignment. Sequence Alignment in small space (Sections 6.6, 6.7)
1/29 Shortest Paths. (Section 6.8)
1/31 MIDTERM 1
2/3 Network Flows: Definitions, Ford-Fulkerson (Section 7.1)
2/5 Network Flow: MaxFlow MinCut Theorem and proof of correctness of
Ford-Fulkerson (Sections 7.2, 7.3)
2/7 Applications of Network Flow: Biprtite Matching, Edge-Disjoint Paths (Sections 7.5, 7.6)
2/10 More Applications of Max-Flow: Circulations. Circulations with Lower Bounds, Baseball Elimination (Sections 7.7 and 7.12)
2/12 Linear Programming. (Chapter 29 of Cormen) Standard and slack forms.
Reducing combinatorial problems to LP
2/14 LP: the simplex algorithm. (section 29.3 Cormen)
2/17 LP: deciding feasibility and getting an initial feasible solution for
simplex. Definition of dual problem.
2/19 LP duality. Proof of Weak Duality Theorem. Consequences. Strong
Duality Theorem andclassification of LP problems and their duals. (no proof
of Strong Duality in class)
2/21 Second Midterm
2/24 Intuition about duality. (Matousek-Gaertner example). Price
interpretation via dimensional analysis2/26 NP
2/26 The class NP. Good (polynomial length) certificates. Examples of
problems in NP: Vertex Cover, Independent Set.
2/28 More NP-complete problems. Polynomial time reductions.
3/3 3-SAT reduces to 3D Matching. The Garey ad Johnson lists.
3/5 Circuit Satisfiability problem. It is NP-complete. Proof that Circuit
Satisfiability reduces to 3-SAT (therefore zillions of NP-complete problems.)
co-NP. Informal discussion of what to do with NP-completeness in real life:
restrictions, approximation algorithms, local search, etc.
3/7 Probabilistic Algorithms (Chapter 13). Section 13.1
(contention resolution -- we saw the 2-process version in class and did not
spend time on the complete analysis, but you should look at it.) I assume you
know the material in 13.3 (linearity of expectation). We covered Section 13.4,
the 7/8 randomized approximation algorithm to MAX 3-SAT
3/10 Randomized algorithm for Median (Section 13.5) Quicksort uses the
same trick and the same analysis.
3/12 Hashing (section 13.6). General talk (you're not responsible for it)
on concepts: streaming algorithms, quantum algorithms.