Complexity Theory
Code  Completion  Credits  Range  Language 

MICPX  Z,ZK  5  3P+1C  Czech 
 Lecturer:
 Tutor:
 Supervisor:
 Department of Theoretical Computer Science
 Synopsis:

Students will learn about the fundamental classes of problems in the complexity theory and different models of algoritms and about implications of the theory concerning practical (un)solvability of difficult problems.
 Requirements:
 Syllabus of lectures:

1. Models of computation.\r
2. Algorithmic undecidability.\r
3. Nondeterminism, the class NP, the existence of an NPcomplete problem.\r
4. NPcomplete problems.\r
5. Problem P=NP, relativization, classes coNP and NP intersection coNP.\r
6. The class PSPACE, Savitch theorem, hierarchy in PSPACE.\r
7. PSPACEcomplete problem (quantified formulae and games), complete problem for the hierarchy classes.\r
8. Circuit and algebraic complexity.\r
9. Randomized algorithms, complexity classes of randomized algorithms (classes BPP, ZP, RP).\r
10. Oneway functions, pseudorandom sequences, discrete logarithm, cryptography.\r
11. Interactive proofs, probabilistically verifiable proofs, expanders, gap problem, PCP theorem, nonaproximability of 3SAT.\r
 Syllabus of tutorials:

1. Mutual simulations of computational models.
2. [2] NPcomplete problems and their reductions.
3. Particular problems in coNP and NP intersection coNP.
4. [2] Complete problems for PSPACE and different classes of the hierarchy in PSPACE.
5. [2] Examples of circuits for different simple problems, bounded fanin.
6. [3] Examples of different MonteCarlo and Las Vegas algorithms.
7. Examples of pseudorandom sequences ans simple facts about their (non)predictability.
8. Amplification of a success probability, examples of randomized algorithms.
9. Expanders and random walks, Markov chains and their mixing.
 Study Objective:

Provide a theoretical background for deciding whether a given problem is, according to our present knowledge, solvable and what kind of computational methods could be used.
 Study materials:

1. Arora, S., Barak, B. ''Computational Complexity: A Modern Approach''. Cambridge University Press, 2009. ISBN 0521424267.
2. Goldreich, O. ''Computational Complexity: A Conceptual Perspective''. Cambridge University Press, 2008. ISBN 052188473X.
3. Motwani, R., Raghavan, P. ''Randomized Algorithms''. Cambridge University Press, 1995. ISBN 0521474655.
 Note:
 Further information:
 https://courses.fit.cvut.cz/MICPX/
 No timetable has been prepared for this course
 The course is a part of the following study plans:

 Master branch Knowledge Engineering, in Czech, 20162017 (elective course)
 Master branch Computer Systems and Networks, in Czech, 20162019 (elective course)
 Master branch Design and Programming of Embedded Systems, in Czech, 20162019 (elective course)
 Master branch Web and Software Engineering, spec. Info. Systems and Management, in Czech, 20162019 (elective course)
 Master branch Web and Software Engineering, spec. Software Engineering, in Czech, 20162019 (elective course)
 Master branch Web and Software Engineering, spec. Web Engineering, in Czech, 20162019 (elective course)
 Master program Informatics, unspecified branch, in Czech, version 20162019 (VO)
 Master branch System Programming, spec. System Programming, in Czech, 20162019 (elective course)
 Master branch System Programming, spec. Computer Science, in Czech, 20162017 (compulsory course of the branch)
 Master branch Knowledge Engineering, in Czech, 20182019 (elective course)