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
Preface
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
The quest for efficiency is ancient and universal, as time and other resources are always in shortage. Thus, the question of which tasks can be performed efficiently is central to the human experience.
A key step toward the systematic study of the aforementioned question is a rigorous definition of the notion of a task and of procedures for solving tasks. These definitions were provided by computability theory, which emerged in the 1930s. This theory focuses on computational tasks, considers automated procedures (i.e., computing devices and algorithms) that may solve such tasks, and studies the class of solvable tasks.
In focusing attention on computational tasks and algorithms, computability theory has set the stage for the study of the computational resources (like time) that are required by such algorithms. When this study focuses on the resources that are necessary for any algorithm that solves a particular task (or a task of a particular type), it is viewed as belonging to the theory of Computational Complexity (also known as Complexity Theory). In contrast, when the focus is on the design and analysis of specific algorithms (rather than on the intrinsic complexity of the task), the study is viewed as belonging to a related area that may be called Algorithmic Design and Analysis. Furthermore, Algorithmic Design and Analysis tends to be sub-divided according to the domain of mathematics, science, and engineering in which the computational tasks arise.
- Type
- Chapter
- Information
- P, NP, and NP-CompletenessThe Basics of Computational Complexity, pp. xiii - xviPublisher: Cambridge University PressPrint publication year: 2010