Lecturer: Santosh Vempala.
The course will present a thorough introduction to the fundamental algorithmic techniques of Discrete Mathematics - Linear and Convex Programming, Flow & Matching Theory, Randomization, and Approximation. We will tackle a variety of optimization problems by applying these techniques to find efficient algorithms.
Topics include:
How fast can a maximum matching be found in a graph?
Why is the maximum flow equal to the minimum cut?
What is duality and how to make use of it?
Is optimization reducible to random sampling?
Is there a strongly polynomial-time algorithm for linear programming?
How to find a short traveling salesman tour?
How to find disjoint flow paths?
Format:
In addition to 3 hours of lectures each week, students will have
regular assignments, and two in-class exams.
There will also be a course project which can be either
theoretical (e.g. write a report, solve an open problem) or
practical (e.g. evaluate an algorithm).
Tentative schedule and lecture notes
Santosh Vempala