INSTRUCTOR: Alistair Sinclair (sinclair@cs)
TIME: Tuesday, Thursday 9:30-11:00
PLACE: Online (Zoom)
OFFICE HOURS: Monday 1:00-2:00, Tuesday 11:00-12:00 Online


  • (9/15/20) The note for Lectures 5 and 6 have been posted below. Please notify me of any errors or typos you find.

  • (9/8/20) The note for Lecture 4 has been posted below.

  • (9/3/20) Please recall that the lectures and Piazza forum are open only to Berkeley students enrolled in the class, or others by permission. Please contact me if you are not able to enroll. If you wish to audit the class, please enroll S/U.

  • (9/3/20) The third lecture note has been posted below. You are strongly encouraged to read the notes and do the exercises after each lecture..

  • (9/1/20) The second lecture note has been posted below. (The second half of the note will be covered at the start of the next lecture.) You are strongly encouraged to read the notes after each lecture and check the details (some of which are pointed out as exercises in the text). Again, please let me know about any typos or errors.

  • (8/27/20) The first lecture note has been posted below. (The second half of the note will be covered at the start of the next lecture.) Please let me know about any typos, errors or explanations that can be improved in the notes and I'll be happy to fix them. Please also be sure to read the enrollment policies in today's post (#7) on Piazza.

  • (8/3/20) Welcome to the course! Please be sure to sign up for the class Piazza forum at https://piazza.com/berkeley/fall2020/cs294180, where you can ask questions about the class and where Zoom links for lectures and office hours will be posted.


    Partition functions are a class of polynomials with combinatorial coefficients that count weighted combinatorial structures. Originally introduced in statistical physics, they have more recently found widespread application in combinatorics, theoretical computer science, statistics and machine learning, and have become a vibrant research area in their own right. This course will cover algorithmic and complexity theoretic aspects of partition functions, as well as their connections to physical and combinatorial phase transitions. A large portion of the class will be devoted to the Markov chain Monte Carlo method, which remains the most widely applicable algorithmic tool in the area. The course will also cover more recent deterministic algorithms based on correlation decay and geometry of polynomials. The class is open to graduate students and exceptionally well-prepared undergraduates (with the permission of the instructor). Prerequisites include a solid background in algorithms and complexity theory and appropriate mathematical sophistication.

    Tentative List of Topics

  • Counting, partition functions and Markov random fields.
  • The complexity class #P and #P-completeness. Approximate counting and approximating partition functions. Relationship between counting and random sampling.
  • Polynomial time examples: spanning trees and matchings in planar graphs.
  • Basis of the Markov chain Monte Carlo (MCMC) method: ergodicity, stationary distributions, reversibility, mixing times.
  • Coupling of Markov chains; applications to graph colorings and statistical physics. Dobrushin uniqueness condition.
  • Functional analysis for mixing times: spectral gap and log-Sobolev inequalities. Connection to multicommodity flows. Applications to approximating the permanent, and counting the bases of a matroid.
  • Lower bounds: conductance and isoperimetric inequalities.
  • Correlation decay and spatial mixing in statistical physics and MRFs; deterministic approximation algorithms; application to independent sets (hard-core model).
  • Hardness of approximation based on non-uniqueness of the Gibbs measure.
  • Geometry of polynomials: approximation algorithms based on absence of complex zeros. Lee-Yang theorems and connection to phase transitions. Applications to the Ising model, graph colorings etc.


    There is no textbook for the class; most of the material is drawn from research papers, and references will be given as we go along. The primary written resource for the class will be detailed lecture notes, which will be posted on this web page shortly after each class. I will provide many of these, but will ask students to take turns at scribing some of the lectures as necessary (working individually or in pairs).


    The main requirement of the class is following the lecture material via Zoom and lecture notes. Assessment will be based on some combination of (i) an end-of-semester project (involving presentation of and/or incremental work on a research paper); (ii) homeworks; (iii) scribe notes; and (iv) Zoom classroom attendance/participation. The exact combination will depend on the enrollment and composition of the class. Further details will be circulated early in the semester. Workload (beyond keeping up with the material) is not expected to be particularly heavy.