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.

- PRELIMINARIES
- Words and Languages
- K-adic Representation
- Partial Functions
- Graphs
- Propositional Logic
- Cardinality
- Elementary Algebra

- INTRODUCTION TO COMPUTABILITY
- Turing Machines
- Turing-Machine Concepts
- Variations of Turing Machines
- Church’s Thesis
- RAMs

- UNDECIDABILITY
- Decision Problems
- Undecidable Problems
- Pairing Functions
- Computably Enumerable Sets
- Halting Problem, Reductions, and Complete Sets
- S-m-n Theorem
- Recursion Theorem
- Rice’s Theorem
- Turing Reductions and Oracle Turing Machines
- Recursion Theorem, Continued
- References
- Additional Homework Problems

- INTRODUCTION TO COMPLEXITY THEORY
- Complexity Classes and Complexity Measures
- Prerequisites

- BASIC RESULTS OF COMPLEXITY THEORY
- Linear Compression and Speedup
- Constructible Functions
- Tape Reduction
- Inclusion Relationships
- Relations between the Standard Classes

- Separation Results
- Translation Techniques and Padding
- Relations between the Standard Classes--Continued
- Complements of Complexity Classes: The Immerman-Szelepcsenyi Theorem

- Additional Homework Problems

- NONDETERMINISM AND NP-COMPLETENESS
- Characterizing NP
- The Class P
- Enumerations
- NP-Completeness
- The Cook-Levin Theorem
- More NP-Complete Problems
- Additional Homework Problems

- RELATIVE COMPUTABILITY
- NP-Hardness
- Search Problems
- The Structure of NP
- Composite Number and Graph Isomorphism
- Reflection

- The Polynomial Hierarchy
- Complete Problems for Other Complexity Classes
- Additional Homework Problems

- NONUNIFORM COMPLEXITY
- Polynomial Size Families of Circuits
- Advice Classes

- The Low and High Hierarchies

- Polynomial Size Families of Circuits
- PARALLELISM
- Alternating Turing Machines
- Uniform Families of Circuits
- Highly Parallelizable Problems
- Uniformity Conditions
- Alternating Turing Machines

- PROBABILISTIC COMPLEXITY CLASSES
- The Class PP
- The Class RP
- The Class ZPP

- The Class BPP
- Randomly Chosen Hash Functions
- Operators

- The Graph Isomorphism Problem
- Additional Homework Problems

- INTRODUCTION TO COUNTING CLASSES
- Unique Satisfiability
- Toda's Theorem
- Results on BPP and Parity P

- Additional Homework Problems

- INTERACTIVE PROOF SYSTEMS
- The Formal Model
- The Graph Non-Isomorphism Problem
- Arthur-Merlin Games
- IP is included in PSPACE
- PSPACE Is Included in IP
- Additional Homework Problems

- List of Corrections of minor errors
- Publisher's Web page
- There is a Slovakian translationof this page created by Blahoslav Konopka and the Sciologness Team.
- There is an Estonian translation of this page created by Paula Nuculescu.
- There is a Finnish translation of this page created by Karla Valenzuela.
- There is a Polish translation of this page created by Natalie Harmann.
- Ukranian traslation of this page created by Patricia Motosan.
- Swedish translation of this page created by Weronika Pawlak.
- There is a Portuguese translation of this page created by Artur Weber & Adelina Domingos.
- There is a
Romanian translation
of this page courtesy of Sarah Richards of EWS Translation.

Steven Homer and Alan Selman