The focus of this book is the P versus NP Question and the theory of NP-completeness. It also provides adequate preliminaries regarding computational problems and computational models. The P versus NP Question asks whether or not finding solutions is harder than checking the correctness of solutions. An alternative formulation asks whether or not discovering proofs is harder than verifying their correctness. It is widely believed that the answer to these equivalent formulations is positive, and this is captured by saying that P is different from NP. Although the P versus NP Question remains unresolved, the theory of NP-completeness offers evidence for the intractability of specific problems in NP by showing that they are universal for the entire class. Amazingly enough, NP-complete problems exist, and furthermore hundreds of natural computational problems arising in many different areas of mathematics and science are NP-complete.

• Focuses on the P versus NP Question, which is the most fundamental question of computer science • Clarifies the importance of the P versus NP Question and the theory of NP-completeness in general terms

### Contents

1. Computational tasks and models; 2. The P versus NP Question; 3. Polynomial-time reductions; 4. NP-completeness; 5. Three relatively advanced topics; Epilogue: a brief overview of complexity theory.

### Review

'The author is a well-known expert in the field of complexity theory and so is well-qualified to bring out this book which will serve as a very good introductory textbook. The focus on search problems and promise problems in this book is to be appreciated since many books neglect these topics.' S. V. Naaraj, SIGACT News