Computer Science 6040/4040

Fall 2021

**Instructor: Elliot Anshelevich**

311 Lally Hall, 518-276-6491

**Time and Place:** Mondays and Thursdays,
12:00pm-1:50pm, Location TBD

**Office Hours:** TBD

**All announcements will be made on the class LMS:** https://lms.rpi.edu/

**Course Overview**

Algorithms with provable guarantees on the quality of their solutions are a powerful way of dealing with intractable problems. This course is an advanced course in approximation algorithms; it will cover fundamental techniques for designing approximation algorithms as well as more specialized topics. Possible topics include: semi-definite and linear programming, iterated rounding, metrics and cuts, primal-dual methods, online algorithms, and approximations in game theory, markets, and auctions. We will look at algorithms in a variety of settings; some of these may include social networks, graph partitioning, network design and routing, traveling salesman problems, and many applications in communication networks. Course Learning Objectives: Students who successfully complete this course will be able to analyze and design efficient approximation algorithms for a variety of computational problems. They will also be able to communicate their ideas in the form of precise algorithm descriptions and rigorous proofs.

**Pre-requisites and Books**

CSCI 4020 is a pre-requisite for this class. The course textbook is:

- Williamson/Shmoys: The Design of Approximation Algorithms

- Vijay Vazirani: Approximation Algorithms
- Hochbaum: Approximation Algorithms for NP-Hard Problems
- Motwani/Raghavan: Randomized Algorithms
- Kleinberg/Tardos: Algorithm Design
- Garey/Johnson: Computers and Intractability

- Nisan/Roughgarden/Tardos/Vazirani: Algorithmic Game Theory

- Karlin/Peres: Game Theory, Alive
- Roughgarden: Twenty Lectures on Algorithmic Game Theory
- Hartline: Mechanism Design and Approximation
- Easley/Kleinberg: Networks, Crowds, and Markets.
- Fudenberg/Tirole: Game Theory.
- Jackson: Social and Economic Networks.

**Homework, Exams, and Grading**

Although most of the lectures will be drawn from the textbooks, we will cover many topics that do not appear in the text, and the textbooks include material that we will not cover in class. You are responsible for the content of the lectures. If you miss a lecture make sure to get notes from another student, or ask the instructor about the topics covered. Students are encouraged to attend all classes. Your active in-class participation will be a substantial part of your learning process, and will be taken into consideration when final grades are determined.

Homeworks will be assigned every 1-2 weeks. Homework should be submitted on LMS as a printable pdf file. As with all assignments submitted on LMS, it is the student's responsibility to verify that the correct files successfully uploaded, and that the files can be read by the instructor. Late homeworks will not be accepted, except in case of a genuine emergency. An exception to this is that every student is allocated two late days, which allow the student to turn in the homework during the class following the due date (e.g., on a Monday instead of a Thursday). Any request to re-evaluate a grade must be made within one week of the return date of the homework or exam in question. You must explain why you think your grade should be changed in writing, and submit your request together with the original problem solution. The second grade will remain.

You are allowed (and encouraged) to discuss homework problems with other members of the class, and to formulate ideas together. However, everyone must write up their assignments separately, and include the names of everyone you discussed the assignment with. You may not copy (or near-copy) a solution from another student or another source; everything you turn in must be your own work. Failure to write the solution to a homework completely on your own will be considered a breach of academic integrity, and may result in the final grade being reduced by a letter and a 0-grade for the homework for both parties. You may not consult any sources except the ones specifically mentioned on the class webpage (this means no Internet, no papers that are not specifically mentioned on the webpage, etc). No collaboration is allowed during exams.

You are required to prove your statements, unless otherwise specified. If a homework or exam question asks you to design an algorithm for a certain task, then the answer must consist of a description of the algorithm (an English description is fine), as well as an analysis of its running time and a proof of its correctness.

There will be a take-home midterm exam (see class schedule for the date), as well as a non-take-home final exam during finals week. Unlike the homeworks, you must complete them entirely on your own. The final exam will be worth 30% of your grade, the midterm 20%, and the homework will be worth 50%. Final scores will correspond to the following letter grades: A/A-: 85-100; B+/B/B-: 70-85; final scores of less than 70 percent will result in a failing grade.