Title: Complexity theory
Description: Complexity theory is the theory of determining the necessary resources for the solution of algorithmic problems and, therefore, the limits of what is possible with the available resources. An understanding of these limits prevents the search for non-existing efficient algorithms. This textbook considers randomization as a key concept and emphasizes the interplay between theory and practice: New branches of complexity theory continue to arise in response to new algorithmic concepts, and its results - such as the theory of NP-completeness - have influenced the development of all areas of computer science. The topics selected have implications for concrete applications, and the significance of complexity theory for today's computer science is stressed throughout.
Subjects: Algorithms, Computational complexity, Computer science, Coding theory, Computer software, Logic design, Algorithm Analysis and Problem Complexity, Coding and Information Theory, Logics and Meanings of Programs, Mathematical Logic and Formal Languages