Def: 若有兩個問題Q1和Q2,其解集合分別為L1和L2:
如果Q1可以多項式時間轉化成Q2 (即:L1 ≤pL2 或 Q1 ≤pQ2),則
{存在一個函數 f(x) /*此函數不一定是實質的數學公式,也可能是一個虛的概念或意涵*/
{此函數 f(x) 為polynomial-time computable
{該函數 f(x) 使得對所有x而言,x∈L1 若且唯若 f(x)∈L2 (x∈L1 ⇔ f(x)∈L2)
為何要做Reduce?
Q1 reduce 成Q2,表示Q1問題可以由處理Q2問題的演算法所解決。
Q1之Input Reduce Q2之Input 解Q2之Algo.
Q2之Output Reduce Q1之Output 即:f(x)
即: x∈L1 ⇔ f(x)∈L2
前述定義隱含一些概念:
Q1問題可以由處理Q2問題的演算法所解決。若Q2問題有一個有效 率的演算法,可以在多項式時間內將Q2問題給解掉,表示Q1問題 也一定可以在多項式時間內被解掉。
因此,函數 f(x) 必須是要 polynomialpolynomial--time computabletime computable。
{ 這是因為解Q1問題的時間相當於 “函數f(x)的轉換時間 + 解Q2問題之 演算法的解題時間” 所構成。
{ 若轉換時間過長,則解Q2問題之演算法就算是再快,也無助於加速 對Q1問題之求解。
可表示成 L1 ∝ L2 或 Q1 ∝ Q2
Q1 ∝ Q2的意義:
Q2問題比Q1問題難 (雖然兩者是同一類型的問題)
若Q2有解,則Q1就有解
想要証明Q1和Q2一樣難,則需証出Q1 ≤pQ2 且Q2 ≤pQ1
若Q1 ∝ Q2且Q2 ∝ Q3,則Q1 ∝ Q3 (遞移性)
範例:假設現在有下列兩個問題:
Q1: 一台電梯中有4個人,其中是否有三個人彼此互相認識?
Q2:有一個4個頂點之無向圖G=(V,E),其中是否存在一個三角形?
証明Q1 ∝ Q2。
有一個函數f,使得:
{ 人i → 頂點vi
{ 人i 和 人j 互相認識 → (vi, vj)∈E
{ 人i 和 人j 互不認識 → (vi, vj)∉E
說明此函數f 為polynomial time computable
{ 因為轉換後的圖G=(V,E),是以相鄰矩陣表示,該矩陣的大小為 |V|2。若要 將該矩陣填滿值則需時 O(|V|2)。
{ ∴函數f為Polynomial time computable
說明該函數f(x)使得對所有x而言,x∈L1 ⇔ f(x)∈L2
P:
是一群Decision Problem的集合,這些問題皆可利用Deterministic Algorithm於Worst Case的情況下,在Polynomial TimePolynomial Time的複雜度內 被解決。被解決
NP:
所謂 “NP” 是指Non-deterministic與Polynomial兩個單字的簡寫
這類的問題只要給個解答,可以在Polynomial Time的複雜度內很快 地驗證驗證 (Verify)(Verify) 出這個解答是否正確。
{ 由於決定性演算法為非決定性演算法的一個特例,且容易找到答案也 會容易驗証答案。因此,P可視為NP的一個特例。
{ P⊂NP (99)
{ P=NP (??)
NP-hard:
是一群Decision Problem的集合。當 Q ∈ NP-hard 若且唯若所有屬 於NP的Decision Problem Q’ (∀Q’∈NP) 皆可多項式時間轉化多項式時間轉化成Q (Q’∝Q)
此類問題至今仍未找到一個多項式複雜度的決定性演算法,且一 般相信沒有多項式複雜度的決定性演算法存在。
NP-complete:
是一群Decision Problem的集合。 若某一個問題Q屬於NP-complete,則滿足以下兩個條件:
{ Q屬於NPNP
{ Q屬於NP-NP-hardhard
一般而言,理論學家相信上述問題之集合圖示如下:
NP-hard與NP-complete的關係:
所有NP-complete問題都是NP-hard問題 (如:旅行推銷員問題);
但是NP-hard問題不見得是NP-complete問題 (如:程式停止問 題,它不是NP問題)
NP-complete ⊆ NP-hard
如果有一個NP-hard問題能夠找到多項式複雜度的決定性演算法,
則所有NP-complete問題也都存在多項式複雜度的決定性演算法。
NP NP-hard
P
NP-complete
Nearly all of the decision problems are NP problems.
In NP problems, there are some problems which have polynomial algorithms
polynomial algorithms. They are called P problemsP problems.
Every P problemEvery P problem must be an NP problemmust be an NP problem.
There are a large set of problems which, up to now, have no no polynomial algorithms
polynomial algorithms.
Summary
Some important properties of NP-NP-complete problemscomplete problems:
Up to now, no NP-complete problem has any worst case polynomial algorithm.
If any NP-complete problem can be solved in polynomial time, NP = PNP = P.
If the the decision version of an optimization problemdecision version of an optimization problemis NP-is NP-completecomplete, this optimization problem is calledoptimization problem NP-NP-hardhard.
We can conclude that all We can conclude that all NPNP--completecomplete and and NPNP--hardhard problems must be
problems must be difficult problemsdifficult problems because
They do not have polynomial algorithms at present.
It is quite unlikely that they can have polynomial algorithms in the future.