- A problem is in class
P
if its solution may be found in polynomial time. - A problem is in class
NP
if its solution may be verified in polynomial time. - A problem in
P
is inNP
by definition, but the converse may not be the case. NP
-complete is a family ofNP
problems for which you know that if one of them has a polynomial solution then everyone of them has.- Examples of
NP
-complete problems: traveling salesman, knapsack, graph coloring. - Once you've reduced a problem to
NP
-complete, you know to give up on an efficient fast algorithm and to start looking at approximations. - For
NP
-complete problems, no polynomial-time algorithms are known for solving them (although they can be verified in polynomial time). - The most notable characteristic of
NP
-complete problems is that no fast solution to them is known. NP
-hard: non-deterministic polynomial time.