NP is when given a candidate, we can check correctness in polynomial time. NP-Hard problems that are at least as hard as the hardest NP problems: no known polynomial-time algorithm
For engineers, we trade a solution quality for time/memory/evaluations
So problem formulation and heuristics become very important!!
These labels are scaling warnings:
- combinatorial explosion: the number of candidates grows super fast
- search trees blow up
- evaluation is often the bottleneck
- budgets dominate over reaching the optimal solution
Engineering Takeaway
NP if someone hands you a candidate solution, you can verify it efficiently NP-hard no known polynomial-time algorithm NP-complete problems that are both in NP and NP-hard (they are the “frontier”)
NP-hardness makes problem formulation and Heuristics design first-class engineering decisions rather than afterthoughts
