FI:IA012 Complexity - Course Information
IA012 ComplexityFaculty of Informatics
- Extent and Intensity
- 2/0. 2 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
- prof. RNDr. Ivana Černá, CSc. (lecturer)
- Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science - Faculty of Informatics
Contact Person: prof. RNDr. Ivana Černá, CSc.
Supplier department: Department of Computer Science - Faculty of Informatics
- Tue 16:00–17:50 D2
- The course expands on course IB107 Computability and Complexity.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- fields of study / plans the course is directly associated with
- there are 19 fields of study the course is directly associated with, display
- Course objectives
- Theory of computational complexity is about quantitative laws and limitations that govern computing. The course explores the structure of the space of of computable problems and develops techniques to reduce the search for efficient methods for the whole class of algorithmic problems to the search for efficient methods for a few key algorithmic problems. The theory classifies problems according to their computational complexity into feasible and unfeasible problems. Finally, the course tries to understand unfeasability can be coped with the help of techniques like randomization, approximation and parallelization. The main goal of the course is to provide a comfortable introduction to moder complexity theory. While choosing the relevant topics, it places premium on choosing topics that have a concrete relationship to algorithmic problems. Students should understand and analyze complexity issues of basic algorithmic problems and compare different computing approaches.
- Learning outcomes
- After enrolling the course students are able to:
- actively work with computational complexity of problems and algorithms,
- analyse upper and lower bounds of computational complexity,
- differentiate between tractable and untractable problems,
- define basic complexity classes and analyze their relationships,
- explain (NP) hardness and prove hardness of computational problems,
- describe limits of determicnistic, nondeterministic, alternating, randomized, and parallel computing paragigms.
- The structure and properties of time complexity classes. Relation between determinism and nondeterminism.
- The structure and properties of space complexity classes. Relation between determinism and nondeterminism. closure properties of space complexity classes.
- Unfeasible problems. Hierarchy of complexity classes. Polynomial hierarchy. Relativization. Non-uniform computational complexity.
- Randomized complexity classes and their structure. Approximative complexity classes and non-approximability.
- Alternation and games. Interactive protocols and interactive proof systems.
- Lower bounds techniques. Kolmogorov complexity.
- Descriptive complexity.
- required literature
- SIPSER, Michael. Introduction to the theory of computation. Boston: PWS Publishing Company, 1997. xv, 396 s. ISBN 0-534-94728-X. info
- recommended literature
- ARORA, Sanjeev and Boaz BARAK. Computational Complexity : a modern approach. 1st pub. New York: Cambridge University Press, 2009. xxiv, 579. ISBN 9780521424264. info
- SCHÖNING, Uwe and Randall PRUIM. Gems of theoretical computer science. Berlin: Springer, 1998. x, 320. ISBN 3540644253. info
- PAPADIMITRIOU, Christos H. Computational complexity. Reading, Mass.: Addison Wesley Longman, 1994. xv, 523 s. ISBN 0-201-53082-1. info
- Teaching methods
- Lectures, readings and class discusions. Students are supposed to solve problems on complexity.
- Assessment methods
- Lectures. Oral exam at the end of the term and individual project during the term.
- Language of instruction
- Further Comments
- Study Materials
The course is taught annually.
- Teacher's information