The course provides students with knowledge of basic as well as selected advanced topics in computability and complexity. The first part deals with decision problems, languages, and decidability of problems. The second part is devoted to the results of complexity theory. The students are acquainted with selected topics of time and space complexity (classes of languages/problems P, NP, NP-complete, PSPACE, PSPACE-complete) and further advanced topics, e.g., relativization, problems decidable in sublinear space, probabilistic algorithms, etc. 1. Formal models of computation Turing machines, formalized computation, languages recognizable by Turing machines, languages decided by Turing machines, Turing-computable function, Church-Turing thesis. Variants of Turing machines: machine with multiple tapes. Universal Turing machine. Equivalence of various computation models. 2. Languages and problems The relationship between languages and (decision) problems. Partial recursive and recursive languages, decision problems. Diagonalization. Turing-undecidable languages. Turing-unrecognizable language. Selected undecidable problems: acceptance problem, halting problem, Post correspondence problem. Relationship of partial recursive and recursive languages to languages from the Chomski hierarchy. 3. Recursion theorem and further results Rice theorem, recursion theorem, and their applications. Further models of computation: Post machines, non-deterministic Turing machines, probabilistic Turing machines, fuzzy Turing machines. Decidability and undecidability of (logical) theories. 4. Introduction the the complexity theory Asymptotic complexity of algorithms. Big-O, small-o, big-theta notation. Time complexity. Classes P, NP. P-NP problem. Polynomial-time reducibility. Class of NP-complete problems and its importance. Selected NP-complete problems, basic methods to prove NP-completeness, Cook-Levin theorem. Applications of hard problems. 5. Space complexity and further issues Classes PSPACE, NPSPACE, time and space constructibility, Savitch theorem. PSPACE-complete problems. Problems solvable in sublinear space, classes L, NL, and co-NL. Time and space hierarchy theorems. Relativization. Probabilistic algorithms, alternating Turing machines and complexity.
|
-
Arora S., Barak B. (2009). Computational Complexity: A Modern Approach. Cambridge Univ. Press.
-
Gruska J. (1997). Foundations of Computing. International Thompson Computer Press.
-
Hopcroft J. E., Motwani R., Ullman J. D. (2006). Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Boston.
-
Kozen D. C. (1997). Automata and Computability. Springer.
-
Kozen D. C. (1991). The Design And Analysis of Algorithms. Springer.
-
Kozen D. (2006). Theory of Computation. Springer-Verlag, London.
-
Kučera, L. (1989). Kombinatorické algoritmy. SNTL Praha.
-
Leeuwen van, J. (1994). Handbook of Theoretical Computer Science, Vol. A: Algorithms. The MIT Press.
-
Lewis H. R., Papadimitriou C. H. (1994). Computational Complexity. Reading (Mass.), Addison Wesley.
-
Sedgewick S., Flajolet P. (1996). Analysis of Algorithms. Addison-Wesley.
-
Sipser M. (2013). Introduction to the Theory of Computation (Third Edition). Cengage Learning, Boston, MA, USA.
|