Study smarter with Fiveable
Get study guides, practice questions, and cheatsheets for all your subjects. Join 500,000+ students with a 96% pass rate.
In combinatorial optimization, you're constantly bumping up against problems that seem simple to state but are maddeningly difficult to solve efficiently. NP-Complete problems represent the heart of this challenge—they're the problems where no one has found a polynomial-time algorithm, yet if someone hands you a solution, you can verify it quickly. Understanding these problems isn't just theoretical: they appear everywhere from logistics and scheduling to network design and cryptography, and the techniques you learn to handle them form the backbone of algorithm design.
Here's what you're really being tested on: reduction relationships (how one problem transforms into another), problem structure (what makes graph problems different from subset problems), and approximation strategies (what to do when exact solutions are intractable). Don't just memorize problem definitions—know which problems reduce to which, what real-world scenarios each models, and why certain problems cluster together conceptually.
Every NP-Complete problem traces back to satisfiability. If you can solve SAT efficiently, you can solve them all—that's the power of Cook's theorem and polynomial-time reductions.
Compare: SAT vs. Subset Sum—both are decision problems asking "does a valid assignment exist?" but SAT operates on Boolean variables while Subset Sum operates on integers. Subset Sum's pseudo-polynomial algorithm makes it more tractable for small number ranges—a key distinction for exam questions about problem hardness.
These problems ask about visiting vertices or finding routes through graphs. The constraint is typically visiting nodes exactly once or finding optimal orderings—small changes in problem definition dramatically affect complexity.
Compare: TSP vs. Hamiltonian Cycle—Hamiltonian Cycle is the decision problem (does a tour exist?), while TSP is the optimization problem (what's the shortest tour?). On FRQs asking about problem relationships, note that solving TSP automatically solves Hamiltonian Cycle, but not vice versa.
These problems focus on properties of vertex and edge arrangements—finding subgraphs, covers, or partitions with specific characteristics.
Compare: Vertex Cover vs. Clique vs. Independent Set—these three problems are polynomial-time equivalent through complement operations. If an FRQ gives you a reduction question, remember: Vertex Cover in ↔ Independent Set in ↔ Clique in . Master one reduction, and you've essentially mastered all three.
These problems involve choosing subsets to satisfy constraints—either selecting items under capacity limits or covering elements with minimum redundancy.
Compare: Knapsack vs. Set Cover—Knapsack maximizes value under a capacity constraint (selection), while Set Cover minimizes subsets needed to achieve full coverage (covering). Both have practical greedy/DP approaches, but their approximation guarantees differ significantly—know which is which for algorithm design questions.
These problems ask about dividing vertices into groups to optimize some edge-based objective.
Compare: Maximum Cut vs. Graph Coloring—both partition vertices, but Max Cut optimizes edge crossings between exactly two groups, while Graph Coloring minimizes groups needed to separate all adjacent vertices. Max Cut has a famous SDP-based approximation; Graph Coloring's approximation is much harder.
| Concept | Best Examples |
|---|---|
| Foundational/Reduction Hub | SAT, Subset Sum |
| Path and Tour Problems | TSP, Hamiltonian Cycle |
| Graph Coloring/Partitioning | Graph Coloring, Maximum Cut |
| Covering Problems | Vertex Cover, Set Cover |
| Subgraph Detection | Clique, Independent Set |
| Selection Under Constraints | 0/1 Knapsack, Subset Sum |
| Good Approximations Exist | Vertex Cover (2x), Set Cover (ln n), Max Cut (0.878) |
| Pseudo-Polynomial Solvable | Knapsack, Subset Sum |
Which two problems are connected through graph complements? Explain how solving Clique in relates to solving Independent Set in .
Compare TSP and Hamiltonian Cycle: What's the key difference between them, and why does TSP admit approximation algorithms while Hamiltonian Cycle doesn't naturally?
Why is 3-colorability NP-Complete but 2-colorability polynomial? What structural property makes bipartite testing easy?
Identify two problems that are "weakly NP-Complete" and explain what pseudo-polynomial time means for their practical solvability.
FRQ-style: You need to prove a new problem is NP-Complete. Describe the two-step process, and explain why SAT is typically the starting point for reduction chains.