COURSE OUTLINE

Session 5

Decidability and halting problem:

Definition of decidability, examples of decidable languages, decidability and recognisability, halting problem, diagonalization, an example of an unrecognizable language.

Decidability and halting problem:

Definition of decidability, examples of decidable languages, decidability and recognisability, halting problem, diagonalization, an example of an unrecognizable language.

Session 6

Reductions; further undecidable problems:

Different types of reductions. Examples of undecidable problems from formal language theory. Introduction to descriptive complexity theory.

Session 8

Cook-Levin’s theorem:

The proof of Cook-Levin Theorem. Reduction from SAT to 3SAT.

Session 7

Time complexity; classes P and NP:

Time complexity classes, definitions of classes P and NP, examples of problems in P and NP, NP-completeness, polynomial-time reductions, extended Church-Turing thesis.

Session 9

Further NP-complete problems:

NP-completeness proofs for combinatorial optimization problems, such as Vertex Cover, Independent Set, Clique, Traveling Salesman, Knapsack, etc.

Session 10

Polynomial hierarchy:

Time and space hierarchy theorems. Oracles. Alternating Turing machines. Polynomial-time hierarchy. Examples of complete problems for various levels of hierarchy.

Session 11

Space complexity:

Definition of the classes L, NL and PSPACE. Relationship between time and space complexity. Savitch’s theorem. Proof that NL=coNL. Examples of PSPACE-complete and NL-complete problems.

Session 12

Approximation complexity:

Definition of the approximation ratio and approximation algorithms. Complexity class APX. Examples of approximation algorithms for NP-hard optimization problems.

Session 13

Randomized algorithms and interactive proofs:

Probabilistic Turing machines. Classes BPP, RP, ZPP. Interactive proofs. Arthur-Merlin games; Graph non-isomorphism. IP=PSPACE. PCP theorem: statement and proof ideas.

Session 14

Complexity of counting: #P

-The class #P. The proof that Permanent is #P- complete. Further examples of hard counting problems. Approximate solutions to hard counting problems. Satisfiability with unique solutions.

Session 15

Communication complexity:

Definition of communication complexity. Methods of proving lower bounds: fooling set and other approaches. Applications: equality, disjointness, parity, inner product.

Session 1

Finite automata and regular languages:

Definition of a finite automaton, formal languages, examples of languages that can be recognized by a finite automaton, regular languages, closure under regular operations.

Session 2

Non-determinism; equivalence between regular expressions and NFA:

Definition of a non-deterministic finite automaton, examples of languages that can be recognized by a non-deterministic finite automaton, equivalence between DFA and NFA, regular expressions, pumping lemma.

Session 4

Turing machines:

Definition of a Turing machine, examples of Turing machines, non-determinism, Church-Turing thesis, equivalence of different variants of Turing machines.

Session 3

Pushdown automata and context-free grammars:

Definitions of context-free grammars and pushdown automata, examples, equivalence between context-free languages and languages recognizable by PDA, pumping lemma for PDA, role of determinism.