Course Meeting Times
Lectures: 2 sessions / week, 1.5 hours / session
Prerequisite
18.06 Linear Algebra or 18.700 Linear Algebra.
Description
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).
Project
For the course project you will:
- Work on a problem and/or experimentally evaluate an algorithm;
- Write a short report and present your findings to class.
Students can work individually or in pairs.
Projects should be set up by the day after session #5.
Grading
ACTIVITY | PERCENTAGE |
---|---|
Exam I | 25% |
Exam II | 25% |
Project (20% for Research + 6% for Presentation) | 26% |
Assignments | 24% |