P是一類可以通過確定性圖靈機(以下簡稱 圖靈機)在多項式時間(
Polynomial time)內解決的問題集合。
NP是一類可以通過非確定性圖靈機(
Non-deterministic Turing Machine)在多項式時間(
Polynomial time)內解決的決策問題集合。
P是
NP的子集,也就是說任何可以被圖靈機在多項式時間內解決的問題都可以被非確定性的圖靈機解決。
接下來說說
NP 里最難得問題
NP-complete。
其定義如下,
如果一個決策問題 L 是
NP-complete的,那么L具備以下兩個性質:
1) L 是
NP(給定一個解決
NP-complete的方案(solution,感興趣的讀者可以思考一下solution 和 answer的區別),可以很快驗證是否可行,但不存在已知高效的方案 。)
2)
NP里的任何問題可以在多項式時間內轉為 L。
而
NP-Hard只需要具備
NP-complete的第二個性質,因此
NP-complete是
NP-Hard的子集。
這四者的關系如下圖(假設P!=NP):
