Course description: This course will cover the theoretical foundations for using machine learning in algorithm design. Algorithm design has classically been studied either on worst-case inputs (worst-case analysis), or random inputs (average-case analysis). However, for many problems, typical instances are neither worst-case nor uniform random, and one would instead like to use past data to design an algorithm that will perform well on new instances from a given domain. The use of machine learning for algorithm design has a long history in AI and there have been substantial recent developments in Theory. This course will cover fundamental theoretical topics in this area including statistical and online models for data-driven algorithm design, analytical tools for proving generalization bounds and regret bounds, analysis of learning-augmented algorithms (algorithms with predictions), and non-worst-case models such as smoothed analysis, perturbation stability, and semi-random input models.
Prerequisites: Intro to Machine Learning (or equivalent) and Algorithms (or equivalent). This is a proof-oriented course.
Evaluation: Grades will be based on 4 homework assignments (60%), a course project (15%), class participation (10%), and a final (15%). Each student will be asked to help with grading one of the assignments as part of the class participation component.
Textbook: There is no single textbook for this course, although we will refer to several chapters of the book Beyond the Worst-Case Analysis of Algorithms (edited by Tim Roughgarden). Please see the "Recommended test/readings" section below for some useful references.