CS810: Introduction to Complexity Theory (Models and Formalisms of Computation)

Professor:       Jin-Yi Cai, 4393 CS, 262-3158, jyc@cs.wisc.edu.
Time and Place:  Tuesday and Thursday, 1:00 to 2:15, 1289 COMP S\&ST
Office Hours:    Thursday, 2:15 to 3:30, or by appointment.
Text:             We will use our own notes 
  • Lectures in Computational Complexity (an incomplete book) pdf file. TA (part-time): Dalibor Zeleny 3367 CS, dalibor@cs.wisc.edu
  • Course Description

    This course is a first year graduate level introduction to Computational Complexity Theory.

    We will start with a review of some topics from a typical undergraduate course in Theory of Computing, including such concepts as Turing machines, recursive functions, computability and incomputability, and the Church-Turing thesis.

    We then consider time and space bounded computation; deterministic and non-deterministic time classes and space classes, LOGSPACE, NL, P, NP, PSPACE, etc; Savitch's theorem, Immerman-Szelepcsenyi Theorem, Cook-Levin Theorem, NP-completeness and P-completeness, Karp's problems. We will also introduce randomized complexity classes ZPP, RP, BPP; polynomial time hierarchy; Sipser-Lautemann Theorem, interactive proofs, Arthur-Merlin Games, LFKN protocol and Shamir's Theorem (with a proof by Shen, using "diagram chasing"), probabilistically checkable proofs; non-uniform complexity, Karp-Lipton Theorem, graph non-isomorphism problem; circuit lower bounds, bounded depth circuits; Counting problems and Valiant's theory, Permanent and determinant problem. If time permit we may also discuss other topics such as pseudorandom generators and hardness versus randomness, or dichotomy theorems.

    Recommended Background

    CS520 or equivalent is highly recommended, although a student with a strong undergraduate mathematics background can handle the material well and can make up any missing background from CS 520 without too much difficulty. (More concretely, it is more important to have the ability to reason rigorously at the level prepared for by CS520, or some equivalent course, than the particular topics from CS520. Although some familiarity with Finite Automata and Turing Computability etc are certainly helpful, they are not essential. For a student who is strong in undergraduate mathematical background, the needed background can be picked up quickly. )

    Related Texts

    Homework and Exams

    Your grade will be based on scribbing and problem sets and on a final take-home exam or a project. Feel free to work in groups on problem sets, but all writeups should be done on your own.