Instructor: Gregory Valiant (Office hours: Monday 4-5:30pm, Gates 470. Contact info: send email to my last name at stanford dot edu)
Ray Li (rayyli@stanford), Shashwat Silas (silas@stanford)
Greg: Monday 4-5:30pm, Gates 470
Ray: Friday 10:30-noon, Gates B26
Shashwat: Monday 9:20-10:50am, Huang Basement
Class Time/location: 1:30-2:50 Mon/Wed. Location: Thornton Center, 110 (starting Monday, 9/30).
Course description: Randomness pervades the natural processes around us, from the formation of networks, to genetic recombination, to quantum physics. Randomness is also a powerful tool that can be leveraged to create algorithms and data structures which, in many cases, are more efficient and simpler than their deterministic counterparts. This course covers the key tools of probabilistic analysis, and applications of these tools to understand the behaviors of random processes and algorithms. Emphasis is on theoretical foundations, though we will apply this theory broadly, discussing applications in machine learning and data analysis, networking, and systems.
Topics: Markov and Chebyshev inequalities, Chernoff bounds, random graphs, and expanders, moment generating functions, metric embeddings, the probabilistic method, Lovasz Local Lemma, Markov chains and random walks, MCMC, martingales, stopping times, Azuma-Hoeffding inequality, and many powerful and elegant randomized algorithms whose analyses rely on the above tools.
Prerequisites: CS 161 and STAT 116, or equivalents and instructor consent.
Grading: 65% problem sets, 35% in-class exam.
Problem Set Policies: Late problem sets will not be accepted, though your TWO lowest problem set scores will be dropped. We strongly encourage using LaTex to typeset your problem sets, and have a LaTex template that you may use. We will be using the Gradescope online submission system. You should receive an email saying that you've been enrolled in CS265/CME309 from Gradescope. If not, create an account on Gradescope using your Stanford ID and join CS265/CME309 using entry code 92EK55.
You are encouraged to find a partner, and hand in 1 problem set with both names. As always, collaboration and discussion of the problems is encouraged, though you must understand everything that you hand in, and the writeup that your partner and you hand in must be your own group's writing.
Week 1 (9/23, 9/25): Introduction, models of computation, randomized polynomial identity testing algorithm (Schwartz-Zippel), Karger's randomized min-cut algorithm.
Lecture notes Lecture 1. Models of randomized computation, and the Schwartz-Zippel randomized polynomial identity test.
Lecture notes Lecture 2. Karger's randomized min-cut algorithm, and analysis of Quicksort with random pivots.
Week 2 (9/30, 10/2): Randomized Primality Testing. This is what originally put randomized algorithms on the map back in the late 1970's, and modern cryptography as we know it would not be possible without the existence of fast randomized primality checking algorithms. We also discussed some non-crypto applications of the ability to efficiently choose random prime numbers, including succinct "fingerprints".
Lecture notes for this week: Lecture 3 and 4 Notes (combined). [These will be updated after Wednesday's class to include Lecture 4 material.]
Week 3 (10/7, 10/9): Markov's inequality, Chebyshev's inequality, moment generating functions and Chernoff bounds. Randomized routing.
Lecture notes Lecture 5. Markov's and Chebyshev's inequalities, and sampling-based median algorithm.
Lecture notes Lecture 6. Moment-generating functions, Chernoff bounds, and randomized routing on the hypercube.
Week 4 (10/14, 10/16): Balls in bins, the "Poissonization" technique, "power of two choices". Metric embeddings.
Lecture notes Lecture 7. Balls in bins, the "Poissonization" technique, "power of two choices".
Lecture notes Lecture 8. Introduction to Metric Embeddings, and Bourgain's low-distortion randomized embedding of any finite metric into L1.
Week 5 (10/21, 10/23): Metric embeddings continued, and one lecture on the "probabilistic method".
Week 6 (10/28, 10/30):Lovasz Local Lemma (and algorithmic version), and applications.
Week 7 (11/4, 11/6):Intro to Markov Chains, Mixing Times.
Week 8 (11/11, 11/13):Strong Stationary Times, and Coupling. Martingales, stopping times.
Week 9 (11/18):The Doob Martingale, Azuma-Hoeffding, and applications.
11/20: In-class Exam (in place of formal final exam)
Week 10 (12/2, 12/4):Crash course on coding theory, and final lecture on current research threads.