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.