6.S978 Graphs, Linear Algebra, and Optimization -- Fall 2015Instructor: Aleksander Mądry (firstname.lastname@example.org), 32-G666
Office hours: Fridays 11-12
Time and place: Tuesdays and Thursdays 2:30-4 pm in 24-307
Units: 3-0-9 (H level)
Class mailing list: http://lists.csail.mit.edu/mailman/listinfo/6s978 (Attention: MIT's anti-spam system likes to junk the signup confirmation request emails.) Prerequisites
This course will provide a tour through the ideas and techniques that underlie the emerging theme of developing fast graph algorithms via convex optimization and linear algebra methods. The main focus will be on presenting how these ideas and techniques unfold in the context of fundamental graph problems, such as the maximum flow problem. However, we will also explore connections to certain core questions in convex optimization.The list of topics that we will touch upon along the way includes:
- Basics of convex optimization: gradient descent method, multiplicative weight update method, constrained optimization, interior-point methods
- Elements of spectral graph theory: random walks, graph Laplacians, electrical flows
- Fast algorithms for linear system solving
- Advanced graph algorithmic concepts: sparsification, low-stretch spanning trees, cut-based graph decompositions, oblivious routing
- There will be no class on Tuesday, October 13, as this is the "MIT Monday".
- There will be no class on Tuesday, September 15. (Prof. Jonathan Kelner will be giving the lecture on Thursday, September 17.)
- Please subscribe to the class mailing list. (Attention: MIT's anti-spam system likes to junk the signup confirmation request emails.)
- The first lecture will be on Thursday, September 10.
The final project can take several forms:
- Making a theoretical contribution, such as solving an open problem (does not need to be very difficult), bringing a new perspective on an existing theoretical question.
- Writing a (short) survey, based on a few papers, that covers a topic that is related to -- but not really covered in -- the class. (See below for some topics suggestions.)
- Implementing one of the algorithms presented in the class and evaluate its performance in practical scenarios.
- Developing a way to relate one of the concepts covered in the class to your PhD research. This connection should be new and, ideally, not too obvious, but it does not need to lead to any improvements.
Project proposal: Prepare a one-page project proposal that discusses, in a clear manner, the topic you chose and email it to Aleksander by November 20, 2015. Feel free to consult Aleksander when choosing the topic.
Final project: Please submit the final project write-up by December 20, 2015. The write-up should be up to five pages long. Keep in mind that the quality of presentation is as important as the write-up's scientific content.
Some survey topic suggestions:
- Nesterov's accelerated gradient descent.
- Solving Laplacian systems via coordinate gradient descent/Kaczmarz method.
- Computing matchings with random walks.
- Constructing linear-size spectral sparsifiers.
- Spectral partitioning.
- Generating random spanning trees.
- Thursday, September 10: Introduction: graph algorithms and convex optimization. The maximum flow problem, convexity in optimization, (sub)gradients and local/global optimality; Draft notes.
- Thursday, September 17: First-order methods for constrained optimization. Projected sub-gradient descent; Draft notes.
- Tuesday, September 22: First-order methods for constrained optimization (continued). Projected gradient descent; Draft notes.
- Thursday, September 24: First-order methods for constrained optimization (finish). Smoothing; Fast linear system solving. Electrical flows and Laplacian systems; Draft notes.
- Tuesday, September 29: Fast linear system solving (continued). Strong convexity and the gradient descent method, (pseudo-)condition number; Draft notes.
- Thursday, October 1: Fast linear system solving (continued). Conjugate gradient descent algorithm, approximation theory and iterative linear system solving, Chebyshev polynomials, spectrum of a Laplacian matrix; Draft notes.
- Tuesday, October 6: Fast linear system solving (continued). Preconditioning, preconditioning Laplacian systems using tree Laplacians, low-stretch spanning trees, effective resistance; Draft notes.
- Thursday, October 8: Fast linear system solving (finish). Spectral sparsification, ultra-sparsifiers, recursive preconditioning;
- Thursday, October 15: Decision making under uncertainty. Regret minimization, (Randomized) weighted majority, learning from expert advice framework, multiplicative weights update method; Draft notes.
- Thursday, October 22: LP solving with multiplicative weights update method. LP feasibility checking, "feasibility on average" oracles, lifting "feasibility on average" to "worst-case" feasibility with multiplicative weights update method, solving the maximum flow problem via shortest path computatons; Draft notes.
- Tuesday, October 27: Computing maximum flows with electrical flows. Draft notes.
- Thursday, October 29: Computing maximum flows with electrical flows (finish). Draft notes.
- Tuesday, November 3: Gradient descent method for general norms. Algorithm and convergence analysis, applying l_inf-norm variant of gradient descent method to the maximum flow problem; Draft notes.
- Thursday, November 5: Oblivious routing. Electrical flow-based routing, tree-based routing, oblivious routing using convex combination of trees; Draft notes.
- Tuesday, November 10: Oblivious routing (continued). Capturing cut structure of a graph with convex combination of trees, the general max flow min cut gap, oblivious algorithms for cut-based minimization problems;
Grading: The grade will be based on (probably, 2-3) problem sets, scribe notes (each student should do her/his fair share) and a final project (description to be posted shortly). Class participation (e.g., interaction during the lecture, asking good questions) can also (positively) influence your grade.Scribe notes: There should be one scribe in charge of taking detailed notes during each lecture and then typing them in LaTeX. These notes will be posted on the course website.
To start, take a look at www.latex-project.org and play with our template.
- To reserve a slot, email Aleksander (email@example.com) with your top three preferences among the slots that are still shown as available below.
- Signup early so as to get the date that accommodates your individual constraints best. Making later changes will still be possible provided you let Aleksander know at least 48 hours in advance of the date you originally committed to.
- Thu 9/10: Dimitris T.
- Tue 9/15: NO CLASS (Aleksander is out of town)
- Thu 9/17: Jonathan W.
- Tue 9/22: Tal W.
- Thu 9/24: Jarosław B.
- Tue 9/29: Ehimwenma N.
- Thu 10/1: Christina L.
- Tue 10/6: Mathieu D.
- Thu 10/8: Aleksander M.
- Tue 10/13: NO CLASS (Monday schedule)
- Thu 10/15: Aleksander M.
- Tue 10/20: NO CLASS (FOCS)
- Thu 10/22: Zhenyu L.
- Tue 10/27: Slobodan M.
- Thu 10/29: Amy O.
- Tue 11/3: Mina K.
- Thu 11/5: Jack M.
- Tue 11/10: Guha B.
- Thu 11/12: Devendra S.
- Tue 11/17: Slobodan M.
- Thu 11/19: Francisco U.
- Tue 11/24: Devendra S.
- Thu 11/26: NO CLASS (Thanksgiving)
- Tue 12/1: Aleksander M.
- Thu 12/3: Aleksander M.
- Fri 12/4: Aleksander M.
- Make sure to send Aleksander an initial draft of your notes within 24 hours of the lecture you were scribing for. This way: (a) the notes can be disseminated quickly (making all your colleagues happy); (b) preparing the notes while the lecture is still fresh in your mind is easier (making you happy/ier).
- Send a more polished version later. Feel free to schedule a meeting with Aleksander to get feedback on your initial draft. (This is a good opportunity for improving your technical writing skills.) Only the final polished version will be graded.
The target audience of these notes is you and your colleagues a couple of weeks after the lecture, when you already have forgotten what the lecture was about. Therefore, while scribing the notes you should strive to present, in a succinct, readable, and technically correct (but not too formal) way, all the important points, concepts and results presented in the lecture.
A couple of more concrete suggestions:
- Start by briefly summarizing the main topics discussed in the lecture;
- Try to use full sentences/prose - avoid bullet points;
- Make sure to also include the provided motivation, illustrative examples and intuitions related to the presented concepts/algorithms/proofs.
- If there is a simple figure that you feel would be helpful in understanding something, especially if I drew it during the lecture, try to include it. I recommend LaTeXDraw as a tool for preparing figures in LaTeX, it has a pretty good and expressive GUI and gets the job done quickly.
- Make sure that all the formal arguments are correct and do not have any gaps in reasoning - if something in the argument is unclear to you, just email Aleksander for clarification.
- Please spell check your notes and polish the grammar/language.