P問題 NP問題和NPC問題

2021-08-30 21:31:13 字數 1842 閱讀 4477

p就是能在多項式時間內解決的問題;

np就是能在多項式時間驗證答案正確與否的問題。

p是否等於np實質上就是在問,如果對於乙個問題我能在多項式時間內驗證其答案的正確性,那麼我是否能在多項式時間內解決它?

再說說np-hardness和np-completenes. 這裡涉及乙個概念,不妨稱為問題之間的歸約。可以認為各個問題的難度是不同的,表現形式為,如果我可以把問題a中的乙個例項轉化為問題b中的乙個例項,然後通過解決問題b間接解決問題a,那麼就認為b比a更難。通過對歸約過程做出限制可以得到不同型別的歸約。

這裡的「問題」一般形式化為判定問題,如:三班是否有同學刷知乎。

p: 我能在多項式時間內判定三班是否有同學刷知乎。

np: 我能在多項式時間內判定你給定的某個人(如:王二)是否證明了這個問題(王二在三班且王二刷知乎)。

也就是說,對於乙個判定性問題,如果其能在多項式時間內得到判定,則是p的;如果能在多項式時間內驗證乙個證據(上文中的王二)是否證明出此問題,則其是np的。

這裡又要說道歸約上了。如果a能用多項式次的b解決,稱a能多項式歸約到b。

比如說現在問題a為判定二年級是否有人刷知乎, 那我可以把這個問題規約到問題b:判定每個班級是否有人刷知乎。 只要對二年級所有的班級做一邊問題b,就能得到a的結果,如果這個次數是輸入規模的多項式級別,我們認為a可以多項式規約到b。

np問題有很多種,但若所有的np問題都能多項式歸約到問題x,x為np hard,進一步如果x是np的,稱x是np complete的。而事實上,的確所有的np問題都可以規約到某一些np問題,這類問題也就是經常出現的np complete問題,比如tsp(旅行商)問題。

一般情況下非判定問題都可以轉化為多項式時間次數的判定問題,所以p和np的計算複雜度概念可以適用於幾乎所有演算法問題。現在可以知道,由於所有的np問題都可以多項式規約到某乙個np complete問題,所以只要乙個np complete問題能在多項式時間內得到解決,那麼所有的np問題都可以在多項式時間內得到結局了。目前常見的計算機問題幾乎都是np的(多項式時間內能驗證結果,大部分演算法問題都滿足),也就是說,如果能多項式解決某乙個np complete問題,幾乎所有的演算法問題都能在多項式解決了,excited!

首先這些p和np都是用來描述解決乙個問題需要的時間和它輸入規模之間的關係...

p問題:

乙個問題可以在多項式(o(n^k))的時間複雜度內解決

例如:n個數的排序(不超過o(n^2))
np問題:乙個問題的解可以在多項式的時間內被證實或證偽

例如:典型的子集求和問題,給定乙個整數集合求是否存在乙個非空子集它的和為零。如給定集合s=,很明顯子集能滿足問題,並且驗證該解只需要線性時間複雜度就能被證實。
np-hard問題:任意np問題都可以在多項式時間內歸約為該問題。歸約的意思是為了解決問題a,先將問題a歸約為另乙個問題b,解決問題b同時也間接解決了問題a。

例如,停機問題。
npc問題:既是np問題,也是np-hard問題。

例如,sat問題(第乙個npc問題)。該問題的基本意思是,給定一系列布林變數以及它的約束集,是否存在乙個解使得它的輸出為真。
相互關係:顯然,所有p問題都是np問題,反之則不一定。npc問題是np問題的子集,也是p問題和np問題的差異所在。如果找到乙個多項式內能被解決的npc問題的解決方法,那麼p=np。

P問題 NP問題 NPC和NPhard問題

p問題是指的存在多項式時間複雜度演算法去求解的問題,那麼什麼是多項式時間複雜度呢?乙個多項式 我們知道氣泡排序的時間複雜度是o n 2 這就是乙個多項式時間複雜度的演算法。p問題是指的存在多項式時間複雜度演算法去求解的問題,當然這都是對於計算機來說的。通常對於普通的問題,我們力求時間複雜度能控制在o...

P問題 NP問題 NPC問題和NPH問題

理解p問題需要了解的知識 多項式 時間複雜度。多項式 ax n bx n 1 c,就是在數學上經常見到的式子。時間複雜度 指執行演算法所需要的計算工作量,它定性描述該演算法的執行時間。時間複雜度常用大o表述,例如o n 2 代表其時間複雜度為n 2。p問題 存在多項式時間演算法的問題。p polyn...

NP問題和NPC問題

什麼叫做np問題,什麼叫做npc問題?首先說明一下問題的複雜性和演算法的複雜性的區別,下面只考慮時間複雜性。演算法的複雜性是指解決問題的乙個具體的演算法的執行時 間,這是演算法的性質 問題的複雜性是指這個問題本身的複雜程度,是問題的性質。比如對於排序問題,如果我們只能通過元素間的相互比較 來確定元素...