Time: |
Monday 16:00-17:40, even Thursdays 08:00 - 10:40 |
Location: |
东下院 103 (Dongxiayuan 103) | Teacher: |
Dominik Scheder |
Teaching Assistant: |
Li Jiajun, Liu Zhengyang |
Textbook: |
Algorithms by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani |
Office hours: |
To be announced. In the meantime, just contact me by email. |
Grading: |
40% homework assignment (including presentations), 60% graded final exam |
Homework: |
Every other week I will hand out homework assignment problems. The students will work on them in small groups (3-4 people) and hand them in the following week. Each group is required to make at least one short presentation of their problem solution during the semester. |
Contents: |
Contents of this class are: Classical
algorithms and algorithmic design paradigms (e.g. divide and conquer,
greedy algorithms, dynamic programming); maximum flow and minimum cut;
Linear programming (duality, simplex, applications). We will also
discuss some important data structures and how to use them in
algorithms. Depending on the time frame, we will teach more advanced
topics like randomized, approximation, exponential, and streaming
algorithms. |
Week | Date | # | Topic | Material and Assignments |
Week 1 | Monday 2015-09-14 | 1 | Introduction, Mergesort, Karatsuba Multiplication. | slides of the first lecture |
Week 2 | Monday 2015-09-21 | 2 | Recursion with look-up table. Dynamic programming. Greedy algorithms: Kruskal's algorithm for finding the minimum spanning tree. Cut property. Running time of Kruskal's algorithm. | |
Week 2 | Thursday 2015-09-24 | 3 | Data structures needed for Kruskal's algorithm: Union find. | |
Week 3 | Monday 2015-09-28 | 4 | Union find: Path compression, log*(n) upper bound. Greedy ln(n) approximation algorithm algorithm for Set Cover. | First homework assignment. Here is the .tex version. |
Week 4 | Monday 2015-10-05 | 5 | No class: National Holiday! | |
Week 4 | Thursday 2015-10-08 | 6 | Shortest paths in graphs; Introduction to network flows. Residual networks. | Assignment 1 due. |
Week 5 | Monday 2015-10-12 | 7 | Network flows, residual networks, capacity of cuts. Ford-Fulkerson method. Maximum flow = minimum cut. Edmonds-Karp algorithm and proof of termination. | |
Week 6 | Monday 2015-10-19 | 8 | Dinic' algorithm. Better running time on unit capacity networks. Matchings: Algorithm and Hall's theorem. | Assignment 2 handed out. I posted some links to lecture notes on Maximum Flow on the
news page. I maded some slides on why the Edmonds-Karp algorithm terminates after O(nm) iterations. |
Week 6 | Thursday 2015-10-22 | 9 | Presentation: Dumb Ways to Die: Fibonacci Heaps. Wallace: Counting the number of spanning trees. |
|
Week 7 | Monday 2015-10-26 | 10 | Presentation: Group "Empty": Stoer-Wagner algorithm for global mincut in undirected graphs. Second half: Hall's theorem, König's theorem, Mirsky's and Dilworth's theorem for partially ordered sets. |
Assignment 2 due. I made some notes on Hall's and König's theorem. |
Week 8 | Monday 2015-11-02 | 11 | Introduction to linear programming. Upper bounds via linear combinations of inequalities; via an economic interpretation. Formal dualization. Dualization of LPs in general form (inequality and equality constraints, non-negative and unrestricted variables). The Weak Duality Theorem. | Assignment 3 handed out. |
Week 8 | Thursday 2015-11-05 | 12 | Practical applications of linear programming: How to write certain problems as an LP. Theoretical applications: LP relaxations, minimum vertex cover, integrality gap, LP is exact for bipartite graphs. | I made some notes on Integer programs, relaxations, integrality gap, at the example of Vertex Cover. |
Week 9 | Monday 2015-11-09 | 13 | Integrality gap is 1 for Maximum matching on bipartite graphs. Existence of optimal solutions. First steps towards Strong LP Duality: Farkas Lemma (statement, no proof). | Assignment 3 due. |
Week 10 | Monday 2015-11-16 | 14 | From Farkas Lemma to strong LP dualiy. LP complementary slackness theorem. Towars a proof of Farkas Lemma using Fourier-Motzkin elimination. | Assignment 4 handed out on Wednesday, November 18. There is a small typo / ambiguity in the homework file. I corrected it (see the red text in the file). A bonus exercise |
Week 10 | Thursday 2015-11-19 | 15 | Proof of Farkas Lemma using Fourier-Motzkin elimination. | Assignment 4 due on Thursday, November 26. |
Week 11 | Monday 2015-11-23 | 16 | Outlook of the remainder of the term. Karger's randomized mincut algorithm. We had a poll about the topics for the rest of the term. You can see the results here. |
I also wrote a ``short'' (15 page) note on linear programming. |
Week 12 | Monday 2015-11-30 | 17 | Short review of probability theory: Expectation, variance, independence. Application to hashing: Two-wise independent hash functions. | |
Week 12 | Thursday 2015-12-03 | 18 | Streaming algorithms: Estimating the number of distinct tokens. | Homework 5 handed out on Saturday, 2015-12-05. It is due on Friday, 2015-12-11 |
Week 13 | Monday 2015-12-07 | 19 | Streaming algorithms: More precise estimate of number of distinct tokens. | |
Week 14 | Monday 2015-12-14 | 20 | Group Spicy Chicken: Zero-Sum Games | |
Week 14 | Thursday 2015-12-17 | 21 | Presentation group "Vegetable" on Push-relabel algorithms for maximum flow. | |
Week 15 | Monday 2015-12-21 | 22 | Presentations:
|
Assignment 6 handed out on Wednesday 2015-12-23. |
Week 15 | Monday 2015-12-28 | 23 | Presentation: Sky big on Edmonds' blossom algorithm for maximum cut | Assignment 7 due. |
Week 16 | Thursday 2015-12-31 | 24 |