Complexity Theory
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
NI-CPX | 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 BIE-AG1, as well as formal languages, Turing machines, P and NP classes, and nedeterminism in scope of BIE-AAG is assumed. Knowledge from BIE-AG2, 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, non-deterministic Turing Machine.
3. Class NP, the existence of an NP-complete problem, Cook's theorem.
4. Strong and weak NP-hardness, pseudopolynomial algorithms, class coNP, Ladner's theorem.
5. Oracle Turing Machine, relativization, Baker-Gill-Solovay 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, P-completeness.
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. Non-determinism, class NP.
3. Problems outside NP, various NP-complete 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 978-0201530827
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/NI-CPX/
- Time-table 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 - Time-table for summer semester 2024/2025:
- Time-table 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)