CS 254 -- Computational Complexity -- Spring 2010
[general info]
[lecture notes] [homeworks] [midterm and
project]
what's new
general information
Instructor: Luca
Trevisan, Gates 474, Tel. 650 723-8879, email trevisan at stanford dot edu
TA: Rita Ren, email rren at stanford dot edu
Classes are Mondays-Wednesdays, 12:50-2:05, In Building 380, room 380F
Office hours:
- Luca: Thursdays, 11am-noon, or by appointment, Gates 474
- Rita: Thursdays, 4-6pm, Gates B26A
References: the main reference for the course will be
lecture notes. New
lecture notes will be distributed after each lecture. A recommended
textbook is
Another very good book, which covers only part of the topics of the
course is
About this course: Computational Complexity theory looks
at the computational resources (time, memory, communication, ...)
needed
to solve computational problems that we care about, and it is
especially
concerned with the distinction between "tractable" problems, that we
can
solve with reasonable amount of resources, and "intractable" problems,
that are beyond the power of existing, or conceivable, computers. It
also
looks at the trade-offs and relationships between different "modes" of
computation (what if we use randomness, what if we are happy with
approximate,
rather than exact, solutions, what if we are happy with a program that
works only for most possible inputs, rather than being universally
correct,
and so on).
This course will roughly be divided into two parts: we will
start with "basic" and "classical" material about time, space, P versus
NP, polynomial hierarchy and so on, including moderately modern
and
advanced material, such as the power
of randomized algorithm, the complexity of counting problems, and the
average-case
complexity of problems. In the second part,
we will focus on more research oriented material, to be chosen among: (i) PCP and
hardness of approximation; (ii) lower bounds for proofs and circuits; and (iii)
derandomization and average-case complexity; (iv) quantum complexity theory.
There are at least two goals to this course. One is to demonstrate the
surprising connections between computational problems that can be discovered by
thinking abstractly about computations: this includes relations between learning
theory and average-case complexity, the Nisan-Wigderson approach to turn
intractability results into algorithms, the connection, exploited in PCP theory,
between efficiency of proof-checking and complexity of approximation, and so on.
The other goal is to use complexity theory as an "excuse" to learn
about several tools of broad applicability in computer science such
as expander graphs, discrete Fourier analysis, learning, and so on.
- 03/29. Introduction.
- 03/31. P vs NP, deterministic hierarchy theorem.
- Notes [pdf] [html]
- Arora-Barak 2.1, 2.5, 3.1
- 04/05. Boolean circuits, BPP.
- Notes [pdf] [html]
- Arora-Barak 6.1, 6.5, 7.1, 7.2, 7.3, 7.4
- 04/07. Error-reduction for randomized algorithms, Adleman's theorem, definition of polynomial hierarchy.
- Notes [pdf] [html]
- Arora-Barak 7.4, 7.5, 5.1, 5.2
- 04/12. More on the polynomial hiearchy, BPP in Sigma2.
- 04/14. Karp-Lipton theorem, sketch of Kannan's theorem,
definition of #P, Valiant-Vazirani (statement).
- Notes [pdf] [html]
- Arora-Barak 6.4, 17.1, 17.2, 17.4.1
- 04/19. Valiant-Vazirani (proof).
- Notes [pdf] [html]
- Arora-Barak 17.4.1
- 04/21. Approximate counting with an NP oracle.
- Notes [pdf]
- this result is not covered in Arora-Barak
- 04/26. PCP Theorem (introduction and definitions)
- Notes [in preparation]
- Arora-Barak 11.1, 11.2
- 04/28. PCP Theorem (equivalence of two formulations and some applications)
- Notes [in preparation]
- Arora-Barak 11.3, 11.4
- 05/03. PCP Theorem (2CSP and overview of the proof)
- Notes [in preparation]
- Arora-Barak 22.1, 22.2.1
- 05/05. PCP Theorem (reduction to bounded-degree case)
- Notes [in preparation]
- Arora-Barak 22.A (page 491)
- 05/10. PCP Theorem (amplification)
- 05/12. Inapproximability of Metric Steiner Tree
- 05/17. Parity not in AC0: approximating circuits by polynomials
- 05/19. Parity not in AC0: parity is not approximable by polynomials
- 05/24. Natural Proofs and pseudorandomness
- 05/26. One-way functions and pseudorandom generators.
Tentative plan:
- Lecture 1: Introduction, P vs NP problem, deterministic
hierarchy theorem
- Lecture 2: Relativization, boolean circuits
- Lecture 3: BPP, Adleman's theorem
- Lecture 4: Polynomial hierarchy, BPP in Sigma2
- Lecture 5: Karp-Lipton and Valiant-Vazirani
- Lecture 6: Approximate counting
- Lecture 7: Space complexity: L, NL, NL-completeness, Savitch
- Lecture 8: Random walks, undirected connectivity in RL
- Lecture 9: Expanders, zig-zag product, and Reingold's algorithm
- Lecture 10: PCP theorem: statement and applications
- Lecture 11: Dinur's proof: amplification
- Lecture 12: Dinur's proof: range reduction
- Lecture 13: More applications to inapproximability
- Lecture 14: Parity not in AC0 (Razborov-Smolensky)
- Lecture 15: Pseudorandom generators and derandomization
- Lecture 16: Goldreich-Goldwasser-Micali construction of pseudorandom functions
- Lecture 17: Natural proofs
- Lecture 18: Quantum complexity theory: the model and Grover search
- Lecture 19: Quantum complexity theory: search lower bounds
homeworks
- Problem set 1 out Apr 14, due Apr 22
- Problem set 2 out May 12, due May 21
exams
The midterm is due May 6
See the project page for information
on the final project.