Computers and Intractability: A Guide to the Theory of NP-Completeness by Michael R. Garey and David S. Johnson — book cover
Algorithms · Computational complexity · Computer algorithms

Computers and Intractability: A Guide to the Theory of NP-Completeness by Michael R. Garey and David S. Johnson — Summary, Key Ideas & Quotes

1979339 pages3-min Big ideas
Rate it

A glimpse inside

Illustration for Computers and Intractability: A Guide to the Theory of NP-Completeness
Defining NP-Completeness

At the heart of the book is a rigorous explanation of NP-completeness—a class of problems for which no efficient (polynomial-time) solution is known, but for which proposed solutions can be quickly checked. The authors clarify the distinction between P (problems solvable quickly) and NP (problems verifiable quickly), and introduce the concept of NP-complete problems as the hardest problems in NP. If any NP-complete problem can be solved efficiently, then all problems in NP can be.

Reductions: The Language of Hardness

A central methodological tool in the book is the idea of reductions—transforming one problem into another in a way that preserves computational difficulty. Garey and Johnson systematically show how reductions are used to prove that new problems are NP-complete, building a web of relationships that map the landscape of computational hardness.

See all 6 key ideas →
Get smart in 3 min
6 key ideas, distilled
  1. 1Defining NP-Completeness
  2. 2Reductions: The Language of Hardness
  3. 3The Catalog of NP-Complete Problems
  4. 4Implications for Algorithm Design
  5. 5Historical and Philosophical Context

Popular quotes from Computers and Intractability: A Guide to the Theory of NP-Completeness

Virtually all the known NP-complete problems are 'essentially' equivalent, in the sense that a polynomial solution to any one of them would yield polynomial solutions to all the others.

Frequently asked

The definitive guide to NP-completeness and computational complexity.