Complexity Theory
Code  Completion  Credits  Range  Language 

NICPX  Z,ZK  5  3P+1C  Czech 
 Course guarantor:
 Ondřej Suchý
 Lecturer:
 Dušan Knop, Ondřej Suchý
 Tutor:
 Michal Opler, Ondřej Suchý
 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 (in)tractability of difficult problems.
 Requirements:

Knowledge of graph theory and graph algorithms in scope of BIEAG1, as well as formal languages, Turing machines, P and NP classes, and nedeterminism in scope of BIEAAG is assumed. Knowledge from BIEAG2, such as Hamilton cycles, TSP, approximation algorithms, etc. is highly beneficial.
 Syllabus of lectures:

1. Computational problems and models of computation, Turing Machine, Undecideability.
2. Time hierarchy, nondeterministic Turing Machine.
3. Class NP, the existence of an NPcomplete problem, Cook's theorem.
4. Strong and weak NPhardness, pseudopolynomial algorithms, class coNP, Ladner's theorem.
5. Oracle Turing Machine, relativization, BakerGillSolovay theorem.
6. Polynomial hierarchy, problems hard for classes of the hierarchy.
7. Space complexity, Class PSPACE, Savitch's Theorem, Logspace.
8. Boolean circuits, Circuit complexity, P/poly, circuits of bounded depth, paralelization of computation, Pcompleteness.
9. Probabilistic Turing Machine, Classes of randomized algorithms, error reduction, relations to P/poly and to Polynomial Hierarchy.
10. Optimalization problems, Approximation algorithms, Classes of approximability.
11. Probabilistically checkable proofs, PCP theorem, inaproximability of Vertex Cover and Independent Set.
12. Exponential Time Hypothesis (ETH), Strong ETH, their relations and implications.
13. Quantum Computation and relations to classical classes.
 Syllabus of tutorials:

1. Complexity of algorithms, simulation of models of computation in different model.
2. Nondeterminism, class NP.
3. Problems outside NP, various NPcomplete problems a reductions between them, problems in coNP.
4. Problems in PSPACE and various classes of the polynomial hierarchy, examples of circuits for various simple problems.
5. Amplification of success probability of randomized algorithms, examples of randomized algorithms.
6. Various approximation algorithms a proofs of inapproximability.
 Study Objective:

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

S. Arora, B. Barak, ''Computational Complexity: A Modern Approach''. Cambridge University Press, 2009. ISBN 0521424267.
Goldreich, O. Computational Complexity: A Conceptual Perspective. Cambridge University Press, 2008. ISBN 052188473X.
R. Motwani, P. Raghavan, ''Randomized Algorithms''. Cambridge University Press, 1995. ISBN 0521474655.
M. Mitzenmacher, E. Upfal, '' Probability and Computing: Randomized Algorithms and Probabilistic Analysis''. Cambridge University Press, 2005, ISBN9780521835404.
Christos H. Papadimitriou, “Computational Complexity”. Pearson, 1993. ISBN 9780201530827
D. P. Williamson, D. B. Shmoys: “The Design of Approximation Algorithms”, Cambridge university press, 2011. ISBN 9780521195270
V. V. Vazirani: Approximation Algorithms, Springer, 2001. ISBN 3540653678
 Note:
 Further information:
 https://courses.fit.cvut.cz/NICPX/
 Timetable for winter semester 2024/2025:

06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri  Timetable for summer semester 2024/2025:
 Timetable is not available yet
 The course is a part of the following study plans:

 Master specialization Computer Security, in Czech, 2020 (elective course)
 Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
 Master specialization Computer Systems and Networks, in Czech, 202 (elective course)
 Master specialization Management Informatics, in Czech, 2020 (elective course)
 Master specialization Software Engineering, in Czech, 2020 (elective course)
 Master specialization System Programming, in Czech, version from 2020 (elective course)
 Master specialization Web Engineering, in Czech, 2020 (elective course)
 Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
 Master specialization Computer Science, in Czech, 2020 (elective course)
 Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (elective course)
 Study plan for Ukrainian refugees (elective course)
 Master specialization System Programming, in Czech, version from 2023 (elective course)
 Master specialization Computer Science, in Czech, 2023 (PS, elective course)