This revised and extensively expanded edition of Computability and Complexity Theory comprises essential materials that are core knowledge in the theory of computation. The book is self-contained, with a preliminary chapter describing key mathematical concepts and notations. Subsequent chapters move from the qualitative aspects of classical computability theory to the quantitative aspects of complexity theory. Dedicated chapters on undecidability, NP-completeness, and relative computability focus on the limitations of computability and the distinctions between feasible and intractable. Substantial new content in this edition includes:
a chapter on nonuniformity studying Boolean circuits, advice classes and the important result of Karp─Lipton.
a chapter studying properties of the fundamental probabilistic complexity classes
a study of the alternating Turing machine and uniform circuit classes.
an introduction of counting classes, proving the famous results of Valiant and Vazirani and of Toda
a thorough treatment of the proof that IP is identical to PSPACE
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.