P問題 NP問題 NP完全問題和NP難問題概念梳理

2021-09-11 07:02:54 字數 1331 閱讀 1921

正規的問題是讓程式解決乙個問題

很顯然,p類問題是np類問題,p類問題的驗證程式可以這樣設計,顯然驗證程式屬於o(多項式)。

驗證程式(猜測解):

演算法程式->問題解

return 問題解==猜測解

p=np問題其實**的就是p類問題和np類問題的關係,由前面我們知道p類問題是np類問題,但是我們仍不知道np類問題是不是p類問題。為什麼這個意義很大呢?

舉個例子,位元幣的工作量證明很明顯是np問題,驗證解只需要雜湊一下。

位元幣的工作量證明隱含著p≠n

pp\neq np

p̸​=np

的看法。對於工作量證明這個np問題,認為位元幣礦工的求解方法只有遍歷nonce值(在這個前提下,位元幣系統才是安全的)。如果這個前提成立,工作量證明就是p≠n

pp\neq np

p̸​=np

的例子。因為該演算法只有遍歷的求解演算法,其不是p類問題,同時由前面知道它是np類問題。

如果,p=n

pp=np

p=np

,那麼礦工可以多項式方式求解出工作量證明的解,那麼位元幣系統不再安全。

注意:雖然大部分人都趨向於p≠n

pp\neq np

p̸​=np

,但這只是個猜想,目前還沒得到證明。p=n

pp=np

p=np

問題可以說是電腦科學理論的皇冠。圖靈獎頒給證明人,應該算是圖靈獎的榮幸。

npc問題是在探索p=n

pp=np

p=np

問題過程中發現的一類問題。我們發現所有的np問題可以在多項式時間內歸約於npc問題。目前,所有的npc問題沒有找到多項式的解,如果找到了,則證明了p=n

pp=np

p=np

。注意,這裡有個容易混淆的地方,雖然所有的np問題都可以歸約於npc問題,而npc問題目前無多項式的解,但並不意味的所有的np問題都沒有多項式的解。邏輯是這樣的,o(n

p)

<=o

(npc

)o(np)<=o(npc)

o(np

)<=o

(npc

)而不是o(n

p)=o

(npc

)o(np)=o(npc)

o(np)=

o(np

c)。即,某些np問題在歸約的過程中變得更加複雜,如p類問題。

npc問題滿足兩個條件:

nph問題只滿足上面中的乙個條件:

因此,nph問題不一定是np問題,所以它的範圍比npc要廣。

P問題 NP問題 NP完全問題和NP難問題

在講p類問題之前先介紹兩個個概念 多項式,時間複雜度。知道這兩概念的可以自動跳過這部分 1 多項式 axn bxn 1 c 恩.就是長這個樣子的,叫x最高次為n的多項式.咳咳,別嫌我囉嗦。有些人說不定還真忘了啥是多項式了。例如第一次看到的鄙人 2 時間複雜度 我們知道在計算機演算法求解問題當中,經常...

演算法中的P問題 NP問題 NP完全問題和NP難問題

在討論演算法的時候,常常會說到這個問題的求解是個p類問題,或者是np難問題等等,於是我特地搜了這方面的資料,自己總結了下,估計研究演算法的大家應該都知道,要是我總結的 不對,歡迎一起 在講p類問題之前先介紹兩個個概念 多項式,時間複雜度。知道這兩概念的可以自動跳過這部分 1 多項式 axn bxn ...

演算法中的P問題 NP問題 NP完全問題和NP難問題

在討論演算法的時候,常常會說到這個問題的求解是個p類問題,或者是np難問題等等,於是我特地搜了這方面的資料,自己總結了下,估計研究演算法的大家應該都知道,要是我總結的 不對,歡迎一起 在講p類問題之前先介紹兩個個概念 多項式,時間複雜度。知道這兩概念的可以自動跳過這部分 1 多項式 axn bxn ...