# Advanced Algorithms, ETH Zurich, Fall 2023

- Instructor: Bernhard Haeupler, Maximilian Probst and Lengler Johannes
- Teaching Assistants: Antti Roeyskoe, Yassir Akram, Raphael Steiner, Jie-Ming Li, Patryk Morawski, Raghu Ravi, and Ge Chio
- Units: 3V+2U+3A, 9 Credits
- Lecture Time & Place: Wednesday 13:15-14:00 and 16:15-18:00, CAB G61
- Exercise Session Time & Place: Thursday 16:15-18:00 CAB H52, ETZ K91, LFV E41
- Office Hours: By appointment/email
- Final Exam: 13.12.2023
- Moodle: Advanced Algorithms 2023 on Moodle
- Prerequisite: Sufficient comfort with both (A) Algorithm Design & Analysis and (B) Probability & Basic Inequalities.

For instance, having passed the course Algorithms, Probability, and Computing (APC) is highly recommended, though not required formally.

If you're not sure whether you're ready for this class or not, please try the preliminary problem set. - Other Links: Information on the Course Catalogue of ETH Zurich

Grading: Two graded homeworks 40% (due dates: 25.10.2023 and 29.11.2023), and a 3-hour final exam 60% (the final exam will be an end-of-semester exam on 13.12.2023).

Homeworks, Problem Sets, and Exercise Sessions: During the semester, we will provide some specially-marked graded homeworks. Each of these graded homeworks will account for 20% of your grade.
You should submit your solutions, which __must be typeset in LaTeX__, via moodle. We will send you more detailed instructions via email.
Moreover, we will regularly have other problem sets, roughly one per lecture. You do not need to hand in their solutions.
However, we recommend that you try to solve all of these problems on your own, and seek help from the assistants, if needed. These problem sets will be discussed during the exercise sessions.
The exercise sessions are an indispensable part of the course -- the material covered in them will be included in the final exam and we strongly recommend attending them.

## Lecture Notes:Here are the for this course. Please keep in mind that the lecture notes may be updated throughout the semester.
lecture notes |

## Topic List (13 lectures, in 3 blocks)

The following shows the schedule of the course in the 2023 edition. The precise schedule and content will be updated throughout the semester.

**Hollow bullet points**indicate additional sources and optional material not covered during the lecture.

**Only material that both appears in the lecture notes and is covered in the lectures is part of the exam!**

### Block 1: Approximation and Online Algorithms

- (20.09) Lecture 01: Greedy Algorithms and PTAS --- Set Cover, Knapsack, Bin Packing
- Set Cover (Section 1.1.1 but not 1.1.2)
- Knapsack (Section 2.1)
- Bin Packing, 2-approximation (Section 2.2.1)
- Bin Packing, 3/2-approximation (not part of exam)

- Chapters 1-2, 8-10 in Vazirani's Book on Approximation Algorithms
- Chapters 1-3 in Williamson & Shmoys's Book on Approximation Algorithms
- Lecture 13 of Demaine and Karger (6.854 Advanced Algorithms, MIT, Fall 2003)
- Lectures 1-3 of Svensson (Approximation Algorithms and Hardness of Approximation, EPFL, Spring 2013)

- (27.09) Lecture 02: FPRAS --- Bin Packing, DNF Counting, Network Reliability
- Chapters 8-10 in Vazirani's Book on Approximation Algorithms
- Chapter 3 in Williamson & Shmoys's Book on Approximation Algorithms
- Lectures 12-13 of Demaine and Karger (6.854 Advanced Algorithms, MIT, Fall 2003)
- Lecture 3 of Svensson (Approximation Algorithms and Hardness of Approximation, EPFL, Spring 2013)

- (4.10) Lecture 03: Rounding Linear Programs --- Vertex Cover, Set Cover, Integral Multicommodity Flow
- Chapters 14 of Vazirani's Book on Approximation Algorithms
- Chapter 5.11 in Williamson & Shmoys's Book on Approximation Algorithms
- Section 4.3 in Motwani & Raghavan's Book
- Lectures 9 & 10 of Checkuri (CS 583, Approximation Algorithms, UIUC, Spring 2011)

- (11.10) Lecture 04: Online Algorithms and Competitive Analysis --- Ski Rental, Paging
- Lectures 19 & 20 of Demaine and Karger (6.854 Advanced Algorithms, MIT, Fall 2003)
- Lecture 22 of Karger (6.854 Advanced Algorithms, MIT, Fall 2005)
- Lectures 14 and 15 of Blum (15-854 Approximation and Online Algorithms, CMU, Spring 2000)
- Lecture 22 of Gupta (15-850, Advanced Algorithms, CMU, Spring 2017)
- Chapters 1 to 4, 10 of Borodin and El-Yaniv's Book on Online Computation and Competitive Analysis
- Lecture 3 of Azar (0368.4041 Online and Approximation Algorithms, Tel Aviv University, Spring 2016)
- A survey by Irani on Competitive Analysis of Paging
- A survey by Koutsoupias on the k-Server Problem from 2009

### Block 2: Streaming, Sketching and Sparsification

- (18.10) Lecture 05: Connectivity via Graph Sketching
- Lectures 13 and 16 of Indyk (6.895 Sketching, Streaming and Sublinear Space Algorithms, MIT, Fall 2007)
- The 2012 paper of Ahn, Guha, and McGregor
- Survey by McGregor

- (25.10) Lecture 06: Frequent Elements, Approximate Counting, and Distinct Elements, and Moment Estimations
- Chapter 10 of the Lecture Notes (the case k>2 in Chapter 10.3 is not part of the exam).

- Lectures 5 & 6 of Karger (6.854 Advanced Algorithms, MIT, Fall 2016)
- Lecture 7 of Krauthgamer and Naor (Randomized Algorithms, Weizmann Institute, Fall 2015)
- The 1996 paper of Alon, Matias, and Szegedy
- The Lecture Notes by Shachar Lovett give an alternative way to prove that ax+b mod n is 2-independent
- See this Tutorial by Mikkel Thorup for provably good, practical hash functions

- (1.11) Lecture 07: Distance-Preserving Graph Sparsification, i.e., Spanners
- Lectures 6 and 7 of Vassilevska Williams (CS 267, Graph Algorithms, Stanford, Spring 2016)
- The 1999 paper of Aingworth, Chekuri, Indyk, and Motwani
- The 2013 paper of Chechik
- The 2003 paper of Baswana and Sen

- (8.11) Lecture 08: Cut-Preserving Graph Sparsification
- The 1996 paper of Benczur and Karger
- Lecture 5 of Krauthgamer and Naor (Randomized Algorithms, Weizmann Institute, Fall 2015)
- Lecture 13 of Bansal (2WO08, Graphs and Algorithms, Eindhoven Univ. of Tech, Spring 2015)

### Block 3: Selected Topics: Embeddings, Oblivious Routing, Multiplicative Weights

- (15.11) Lecture 09: Distance-Preserving Tree Embedding and Buy-at-Bulk Network Design
- The 1996 paper of Bartal
- The 2003 paper of Fakcharoenphol, Rao, and Talwar
- Sections 8.5 & 8.6 in Williamson & Shmoys's Book on Approximation Algorithms
- Lecture 14 of Gupta (15-859M, Randomized Algorithms, CMU, Spring 2011)
- Lectures 23 of Checkuri (CS 598, Approximation Algorithms, UIUC, Spring 2009)

- (22.11) Lecture 10: L1 Metric Embedding and Sparsest Cut
- Chapter 21 of Vazirani's Book on Approximation Algorithms
- Lectures 3 of Gupta and Ravi (15-859, Algorithmic Applications of Metric Embeddings, CMU, Fall 2003)
- Lectures 13 of Svensson (Approximation Algorithms and Hardness of Approximation, EPFL, Spring 2013)
- Lectures 19 of Gupta (CS 15-854B, Advanced Approximation Algorithms, CMU Spring 2008)
- Lectures 20 & 21 of Checkuri (CS 598, Approximation Algorithms, UIUC, Spring 2009)
- The 1995 paper of Linial, London, and Rabinovich
- A survey by Indyk on algorithmic applications of embeddings from 2001

- (29.11) Lecture 11: Cut-Preserving Tree Embedding, Oblivious Routing, and Balanced Cut
- Chapters 15.2 and 15.3 in Williamson & Shmoys's Book on Approximation Algorithms
- The 2008 paper of Raecke
- The 2009 paper of Anderson and Feige

- (06.12) Lecture 12: Multiplicative Weight Updates, Approximating Covering/Packing LPs, and Constructive Oblivious Routing
- Lectures 16 and 17 of Gupta (15-859(E): Linear and Semidefinite Programming, CMU, Fall 2011)
- Lecture 4 of Vazirani and Rao (CS270, Algorithms, UC Berkeley, Spring 2011)
- Survey by Arora, Hazan, and Kale
- The 2008 paper of Raecke

- (13.12) Exam

- (20.12) Lecture 13: Fun Lecture

### Additional Material:

**Basic Probability Inequalities:**Please make sure that you are comfortable with the basics of probability, e.g., Linearity of Expectation, Markov, Chebyshev, and Chernoff/Hoeffding. You might find the following handout of Avrim Blum and Anupam Gupta (15-859 Randomized Algorithms, CMU, Spring 2011) useful.