一般演算法效率的度量方法就是速度,即乙個演算法花了多少時間產生結果。然而有些問題,目前還並不知道有效的解法,則稱之為難題。當然,難題們也擁有不同的難度。
p: 能在多項式時間內解決的問題(我可以在一定時間內算出正確答案)
np: 不能在多項式時間內解決或不確定能不能在多項式時間內解決,但能在多項式時間驗證的問題(也許算不出答案,但給我乙個答案我可以在一定的時間內驗證它是不是正確)
np-hard:np難問題,所有np問題在多項式時間內都能約化(reducibility)到它的問題(即它比所有np都難,但它本身卻不一定是np問題)
npc: np完全問題,所有np問題在多項式時間內都能約化(reducibility)到它的np問題,即解決了此npc問題,所有np問題也都得到解決(需要滿足兩點:1,是np-hard問題 2,是np問題)
則四種問題的關係可以用下圖表示:
那為什麼還要區分npc和np-hard呢,因為已經有人確實證明了npc問題的存在。
關於P NP NPC和NP Hard問題
1 p問題 p中包含的是能在多項式時間內解決的問題,此類問題的時間複雜度不超過o 2 np問題 np中包含的是能在多項式時間內驗證某個解是否正確的問題。比如 1 所有的p問題都是np問題,因為我們總能在多項式時間內驗證給定的某個解是否正確。2 對於某些不屬於p問題的問題,如3 cnf可滿足性問題,給...
P NP NPC和NP hard問題的理解
1 p polynomial 問題 可以在以多項式表達的時間內按部就班的按照步驟求出確切解的問題,也就是說它的計算複雜度是乙個多項式。我們通常用的o n o logn o n2 等等類似的都是這類問題。2 np non deterministicpolynomial 問題 有些計算問題是確定性的,比...
P NP NPC與NP hard問題的定義
p問題 指的是能在多項式時間內解決的問題。np問題 指的是能在多項式時間內驗證的問題。在此,我們可以看出所有的p問題都屬於np問題,但是p是否等於np呢,至今還未得到驗證,即既證明不了p np,也證明不了p ne np。npc問題 np完全問題 是指np問題中最難的一類問題。證明乙個問題是否是npc...