P NP NPC NP Hard問題的區別

2021-10-04 14:07:33 字數 746 閱讀 7623

衡量程式的好壞不是用特定的資料量來衡量,而是資料的規模變大到幾百倍後,程式執行的時間是否相同。

舉例:資料增大兩倍,時間增大4倍,那麼屬於o(n^2)的複雜度。

分類

乙個問題可以找到乙個在多項式時間內解決的演算法

指在多項式時間內驗證乙個解的問題/猜出乙個解。

(類似於存在性問題,比如問a到b是否有一條長度為100的路)

顯然,所有的p問題都是np問題,但p=np是關注的焦點。

規約:問題a可規約為問題b,即指可以用b的解法來解a,或者說問題a可以變為問題b。

舉例:一元一次方程可以規約為一元二次方程。原因在於只要加上係數為0的二次項即可。

意義:b的時間複雜度 > a的時間複雜度;具有傳遞性

不斷提公升時間複雜度,存在一類(許多個)np問題,能夠讓所有的np問題轉化為它。即np-c問題。

當想要表達乙個問題不存在多項式的高效演算法時,就說這個問題屬於npc問題。

npc問題兩個要求

是乙個np問題

所有的np問題能規約到它

那麼如果乙個npc問題找到多項式解法,所有的np問題就能用這個演算法解決了。因此正是由於npc的存在,所以p≠np。

(如果證明了p=np,那麼證明乙個解和驗證乙個解一樣容易)

只滿足npc問題的第二條

放寬了條件,比npc問題更難解決。

參考

P NP NPC NP hard問題的區別

p問題 能找到乙個演算法在多項式時間解決的問題叫p問題。np問題 經常有人把np問題作為p問題的補集,這種看法是錯誤的。np問題指的是在多項式時間內能驗證乙個解是不是正確的。那麼顯然,p問題在多項式時間內能得到正確的解,當然也就能驗證乙個解是否正確,所以p問題是屬於np問題的一部分。npc問題 當中...

問題的問題

有些問題是人出的,或者人造成的 而有些問題是 上帝 出的。我們可以說成是人題和天題。人題一般都是可以解決的,而天題,人根本就找不到答案。人題的解決不會給我們帶來快樂,而天題帶給我們的只是苦惱和困惑。人從出生到死亡,一直都處於迷失和困惑中,因為大部分的東西他都不知道是怎麼回事。是的,他可以不知道,同樣...

問題背後的問題

這兩天,和同事在一起討論問題,告訴她我以前走過的彎路 看到了幾個表面現象,就誤以為可以下結論了。其實,往往事情並非那麼簡單,需要不斷問自己 我真的發現問題的實質了嗎?以前,lg常恨恨地對我說 最討厭你那副自以為一眼把人看到底的清高樣子了 我聽了總是不以為然,我就以為早已把身邊這傢伙看得透透的了,所以...