NP,NPC,NPhard問題說明

2021-09-24 20:18:21 字數 779 閱讀 7670

np,npc,nphard問題說明

p問題是初始問題,所有這類問題都可以用乙個確定性演算法在多項式時間內求出解。

np問題,能夠多項式時間求得解,或者多項式時間內判斷是否是正確的,p包含於np

npc問題,全部np問題在多項式時間內,可以約化到的問題,npc包含於np

nph問題,npc問題在多項式時間內,可以約化到的問題,npc包含於nph,但npc與np和p無必然聯絡

示例問題參考: 約化

如果能找到乙個變化法則,對任意乙個 a 程式的輸入,都能按照這個法則變換成 b 程式的輸入,使兩程式的輸出相同,那麼問題 a 可以約化為問題 b 。約化具有傳遞性。

多項式時間

多項式時間指的是乙個演算法的複雜度,要演算法的複雜度不是指數或者階乘型,o(1)到o(n^m)(m為常數)任意組合都算是多項式級的複雜度,它們的規模n都出現在底數字置;而o(2ⁿ),o(n!)型 複雜度,就是非多項式級的。總有:指數時間 > 多項式時間 > 線性時間 > 常數時間。

常見多項式時間複雜度的關係為:o(1)常見非多項式時間複雜度關係為:o(

根據np完全問題和np困難問題的定義可以發現,np完全問題a的定義中,除了要求對於所有別的判定問題a』 ∈np,都有a』 ∝a,還要求a∈np,而np困難問題不一定是np問題,所以可以看出np完全問題是np困難問題的子集,所以np完全問題一定都是np困難問題。

np困難問題中包含的一些問題是既不屬於np也不屬於p類問題的,乙個典型的例子就是第k個最重子集問題。

通俗理解NP,NPC,NP Hard問題

我們把解決一類問題的方法或過程,稱之為演算法。而演算法有乙個很重要的指標就是時間複雜度o。因為我們最終是要通過計算機來執行這些演算法的,而計算機的算力再高也終究是個有限值,因此如果乙個演算法的時間複雜度很高,那麼當輸入的資料量十分龐大時,計算機處理的時間就會無法想象地增長。通過時間複雜度的概念就可以...

php json encode奇怪問題說明

json encode 只支援utf 8格式這個就不多說了 複製 如下 array array 0 array sale unit detail id 13 price 740程式設計客棧000 geometric lat 51.50348620 geometric lng 0.01710900 1...

bindService使用示例及問題說明

問題 用bindservice繫結乙個service,程式執行bindservice後,conn並未執行onserviceconnected介面 說明 bindservice用於繫結乙個服務。這樣當bindservice intent,conn,flags 後,就會繫結乙個服務。這樣做可以獲得這個服...