CS271 RANDOMNESS & COMPUTATION: Fall 2022
INSTRUCTOR: Alistair Sinclair
(sinclair@cs; 677 Soda)
LECTURES: Tuesday, Thursday 9:30-11:00 in 310 Soda
OFFICE HOURS: Monday 1:00-2:00, Thursday 11:00-12:00 in 677 Soda
READER: Pranav Trivedi
OFFICE HOUR: Wednesday 12:00-1:00 in 1044 Evans
HW4 has been graded. Solutions are posted below, and you can view your corrected submissions
on Gradescope. This concludes the course! Thanks for your participation.
Grades will be posted before the end of next week. If you haven't already done so, please
take a moment to fill out the course evaluation. Thanks and best wishes.
is a zoom link for today's lecture, for use by those who don't want to cross a picket line.
- (11/29) Lecture Note 26 is posted below; you now have all the information you need
to complete HW4, which is due this coming Friday, Dec 2.
- (11/28) Lectures resume tomorrow (Nov 29). Please remember that the deadline for HW4
is this coming Friday, Dec 2. Please also take a few moments to fill out the online
course evaluation by logging in to course-evaluations.berkeley.edu. I very much value your feedback on the class.
- (11/18) Lecture Notes 24 and 25 are posted below.
is a zoom link for tomorrow's lecture, for use by those who don't want to cross a picket line.
- (11/15) Homework 4 is posted below, and is due by 5pm on Friday, Dec. 2.
This is the last homework, and is slightly shorter than the previous ones.
However, you are advised as usual not to leave it until the last few days.
You already have all the material needed to complete this homework, except
for the last problem (Q4), which will require material from Lectures 25 and 26.
As always, you are encouraged to work in pairs or small groups but please be
sure to write up your solutions on your own.
One of the most remarkable developments in Computer Science over the
past 50 years has been the realization that allowing computers to toss
coins can lead to algorithms that are more efficient, conceptually
simpler and more elegant than their best known deterministic counterparts.
Randomization has since become such a ubiquitous tool in algorithm design
that any kind of encyclopedic treatment in one course is impossible.
Instead, I will attempt to survey several of the most widely used
techniques, illustrating them with examples taken from both algorithms
and random structures. A tentative course outline,
just to give you a flavor of the course, is the following:
- Elementary examples: e.g., checking identities, fingerprinting and
pattern matching, primality testing.
- Moments and deviations: e.g., linearity of expectation, universal hash
functions, second moment method, unbiased estimators, approximate counting.
- The probabilistic method: e.g., threshold phenomena in random graphs
and random k-SAT formulas; Lovász Local Lemma.
- Chernoff/Hoeffding tail bounds: e.g., Hamilton cycles in a random
graph, randomized routing, occupancy problems and load balancing,
the Poisson approximation.
- Martingales and bounded differences: e.g., Azuma's inequality,
chromatic number of a random graph, sharp concentration of Quicksort,
optional stopping theorem and hitting times.
- Random spatial data: e.g, subadditivity, Talagrand's inequality,
the TSP and longest increasing subsequences.
- Random walks and Markov chains: e.g., hitting and cover times,
probability amplification by random walks on expanders, Markov chain
Monte Carlo algorithms.
- Miscellaneous additional topics as time permits: e.g., statistical
physics, reconstruction problems, rigorous analysis of black-box optimization
Mathematical maturity, and a solid grasp of undergraduate material
on Algorithms and Data Structures, Discrete Probability and
Combinatorics. If you are unsure about the suitability of your
background, please talk to me before committing to the class.
As this is a graduate class, students are responsible for filling
in any gaps in their knowledge as needed.
The class is over-subscribed, with some students on the waitlist or
waiting for access codes. Due to room capacity constraints, and for the safety
and comfort of all, please do not attend lectures unless you are
officially registered for the class: you may instead follow the class using the lecture
notes. Students will be admitted from the waitlist, or given access codes,
if and when others drop the class.
If you decide to drop the class, please do so as soon as possible
so that another student may take your place.
There is no required text for the class, and no text that covers
more than about one third of the topics. However, the following
books cover significant portions of the material, and
are useful background references.
- Noga Alon and Joel Spencer, The Probabilistic Method (3rd ed.),
- Svante Janson, Tomasz Łuczak and Andrzej Ruciński, Random Graphs,
- Geoffrey Grimmett and David Stirzaker, Probability and Random
Processes (3rd ed.), Oxford Univ Press, 2001.
- Michael Mitzenmacher and Eli Upfal, Probability and Computing:
Randomized Algorithms and Probabilistic Analysis (2nd ed.), Cambridge Univ Press, 2017.
- Rajeev Motwani and Prabhakar Raghavan, Randomized Algorithms,
Cambridge Univ Press, 1995.
Notes for most or all lectures will be posted on this web page shortly
after each lecture. The notes will cover most, but not necessarily all
of the material presented in class.
The major (and probably the only) component will be a small number of sets
of homework problems distributed through the semester. These homeworks will
be fairly substantial. You are encouraged to read the lecture notes and do the exercises
sprinkled through them as we go along, as these will ensure that you absorb
the material in real time and should make the homeworks more manageable.
You are strongly encouraged to solve the homework problems on your own,
or in consultation with classmates. If you find it necessary to consult
other sources, these must be acknowledged. In all cases, it is essential
that you write up your homework solutions entirely on your own.