Description
This excerpt from a book about computational complexity explains that the P-versus-NP question asks whether or not it is harder to find solutions to problems than it is to verify their correctness. The theory of NP-completeness offers evidence that many problems in NP are universal for the entire class of problems, meaning that they can be solved by any algorithm that can solve problems in NP.
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.