Book contents
- Frontmatter
- Contents
- List of Figures
- Preface
- Overview
- To the Teacher
- Notations and Conventions
- Main Definitions and Results
- 1 Computational Tasks and Models
- 2 The P versus NP Question
- 3 Polynomial-time Reductions
- 4 NP-Completeness
- 5 Three Relatively Advanced Topics
- Historical Notes
- Epilogue: A Brief Overview of Complexity Theory
- Appendix Some Computational Problems
- Bibliography
- Index
4 - NP-Completeness
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- List of Figures
- Preface
- Overview
- To the Teacher
- Notations and Conventions
- Main Definitions and Results
- 1 Computational Tasks and Models
- 2 The P versus NP Question
- 3 Polynomial-time Reductions
- 4 NP-Completeness
- 5 Three Relatively Advanced Topics
- Historical Notes
- Epilogue: A Brief Overview of Complexity Theory
- Appendix Some Computational Problems
- Bibliography
- Index
Summary
Overview: In light of the difficulty of settling the P-vs-NP Question, when faced with a hard problem H in NP, we cannot expect to prove that H is not in P (unconditionally), because this would imply P ≠ NP. The best we can expect is a conditional proof that H is not in P, based on the assumption that NP is different from P. The contrapositive is proving that if H is in P, then so is any problem in NP (i.e., NP equals P). One possible way of proving such an assertion is showing that any problem in NP is polynomial-time reducible to H. This is the essence of the theory of NP-completeness.
In this chapter we prove the existence of NP-complete problems, that is, the existence of individual problems that “effectively encode” a wide class of seemingly unrelated problems (i.e., all problems in NP). We also prove that deciding the satisfiability of a given Boolean formula is NP-complete. Other NP-complete problems include deciding whether a given graph is 3-colorable and deciding whether a given graph contains a clique of a given size. The core of establishing the NP-completeness of these problems is showing that each of them can encode any other problem in NP. Thus, these demonstrations provide a method of encoding instances of any NP problem as instances of the target NP-complete problem.
Organization. We start by defining NP-complete problems (see Section 4.1) and demonstrating their existence (see Section 4.2). […]
- Type
- Chapter
- Information
- P, NP, and NP-CompletenessThe Basics of Computational Complexity, pp. 96 - 141Publisher: Cambridge University PressPrint publication year: 2010