CS 261: Optimization and Algorithmic Paradigms

Autumn 2023-24

TTh 3:00-4:20pm, 200-205
No recordings available; attendance is not mandatory, but please don't sign up for this class if you anticipate missing several lectures since it will be hard for you to stay up to date with the class.

INSTRUCTOR
Ashish Goel
ashishg@stanford.edu, 650 814 1478
Office Hours:
Wed 10-11am in person, Huang 359, starting week 2
Wed 11-11:30am zoom, starting week 2

TEACHING ASSISTANTs
Prasanna Ramakrishnan, pras1712@stanford.edu , OH Th 4:30-6:00 in person, Gates 498
Sahasrajit Sarmasarkar sahasras@stanford.edu , OH Tu 4:30-6 in person, Gates B12
Please use the email cs261-aut2324-staff@lists.stanford.edu for the fastest response time.

Please sign on to Gradescope and Ed Stem for HW submission and for the course forum respectively (use these sign-in links). Please use the forum often, since your questions may get answered by other students and other students may also benefit from answers by the course staff.

TOPICS
The first half of the class will use Linear Programming as a lens to study several classical algorithmic problems: max-flow, matchings, min-cost flow and applications, convex optimization, sequential decision making, and approximation algorithms. We will then spend some time discussing sketching, an increasingly useful tool in algorithms design, getting an introduction to Bayesian decision making, and exploring approximation algorithms. We will also discuss special topics like stable marriages and market equilibria.

Traditionally, algorithms classes emphasize running time, memory usage, and approximation ratios. But increasingly, algorithms are used to inform the design of complex socio-economic systems. While a bulk of this class will still primarily use traditional metrics for evaluating algorithms, we will also pay special attention to modeling aspects of algorithms design, and how algorithmic analysis can be used to provide insight into the performance of the underlying socio-economic system, along dimensions such as revenue, incentive-compatibility, efficiency, and robustness.

We will use a mix of new notes by Aaron Sidford , old notes by Tim Roughgarden (under notes and handouts below), notes made for an earlier version of the class (under notes and handouts below), and new notes. But the notes will not a substitute for attending lectures.

Feel free to check out an earlier version of this class for an approximate preview of the notes and exercises.

From the Course Bulletin

Algorithms for network optimization: max-flow, min-cost flow, matching, assignment, and min-cut problems. Introduction to linear programming. Use of LP duality for design and analysis of algorithms. Approximation algorithms for NP-complete problems such as Steiner Trees, Traveling Salesman, and scheduling problems. Randomized algorithms. Introduction to online algorithms.

Prerequisite: 161 or equivalent.


REQUIREMENTS
The course requirements will be:
  1. 60% of your grade will be based on 6 HW sets (released 10/5 10/12 10/19 11/2 11/9 11/16 and due 10/14 10/21 10/28 11/11 11/18 11/28). You will be asked to do the HWs in groups of 2 or 3. Let us know if you need help forming a group.
  2. 20% of your grade will be based on an in class midterm on 10/31.
  3. The remaining 20% of your grade will be based on a project that you can do in groups of 2 or 3. Project topics handed out -- 10/12; Project topics and groups due -- 10/26; Preliminary report 1 (survey + problem statement) due -- 11/16; Preliminary report 2 (almost all the material) due -- 11/30; Final report due -- 12/8. There is no page limit or page requirement for the final report. You can opt for a take-home final exam in lieu of the project if you prefer.
  4. The take-home exam will be a 120 minute exam that you can take during any 135 minute slot (to allow 5 minutes to download and 10 minutes to scan and upload the exam) between 5pm Dec 8 and 5pm Dec 10. Someone from the course staff will monitor Ed Stem in real time from 5-9pm on 12/9 and noon-3pm on 12/10, so those would be specially good slots.
  5. You can use up to a total of 4 late days across all HWs and project milestones, and any partially used day counts as a full day. You can use upto two late days for any one occurrence.
  6. If you have OAE extensions, please let the instructor know.
  7. We might also provide occasional exercise sets, which will be an important part of the learning of the class, but not graded. You don't have to turn these in, but please do catch us during office hours or after class to ask any questions or discuss your answers.

NOTES AND HANDOUTS (needs sign in; always under development)

AUDITORS
Please sign in to the mailing list cs261-aut2324-guests@lists.stanford.edu at mailman (and also let us know). Also, sign on to Ed Stem if you are a Stanford student using the links provided above.