This revised and expanded edition of Computability and Complexity Theory comprises essential materials that are the core knowledge in the theory of computation. The book is self-contained, with a preliminary chapter describing key mathematical concepts and notations and subsequent chapters moving from the qualitative aspects of classical computability theory to the quantitative aspects of complexity theory. Dedicated chapters on undecidability, NP-completeness, and relative computability round off the first edition, which focuses on the limitations of computability and the distinctions between feasible and intractable.
Substantial new content in this second edition includes:
*a chapter on nonuniformity studying Boolean circuits, advice classes and the important result of Karp-Lipton
*definitions and properties of fundamental probabilistic complexity classes
*a study of the alternating Turing machine and uniform circuit classes
*an introduction to counting classes including the results of Valiant and Vazirani and of Toda
*a thorough treatment of the proof that IP is identical to PSPACE
Topics and features:
*Concise, focused materials cover the most fundamental concepts and results in the field of modern complexity theory, including the theory of NP-completeness, NP-hardness, the polynomial hierarchy, and complete problems for other complexity classes
*Contains information that otherwise exists only in research literature and presents it in a unified, simplified manner; for example, about complements of complexity classes, search problems, and intermediate problems in NP, nonuniform and parallel complexity theory, probabilistic complexity classes, counting classes and interactive proof systems.
*Provides key mathematical background information, including sections on logic and number theory and algebra
*Supported by numerous exercises and supplementary problems for reinforcement and self-study purposes
With its accessibility and well-devised organization, this text/reference is an excellent resource and guide for those looking to develop a solid grounding in the theory of computing. Beginning graduates, advanced undergraduates, and professionals involved in theoretical computer science, complexity theory, and computability will find the book an essential and practical learning tool.