np就是non-deterministic polynomial的問題,也即是多項式複雜程度的非確定性問題。
假設p ≠ np的**。若p = np則三類相同。
而如果任何乙個np問題都能通過乙個
多項式時間演算法轉換為某個
np問題,那麼這個np問題就稱為np完全問題(non-deterministic polynomial complete problem)。np完全問題也叫做npc問題。
有些計算問題是確定性的,比如加減
乘除之類,你只要按照公式推導,按部就班一步步來,就可以得到結果。但是,有些問題是無法按部就班直接地計算出來。比如,找大
質數的問題。有沒有乙個公式,你一套公式,就可以一步步推算出來,下乙個質數應該是多少呢?這樣的公式是沒有的。再比如,大的合數
分解質因數的問題,有沒有乙個公式,把
合數代進去,就直接可以算出,它的因子各自是多少?也沒有這樣的公式。
這種問題的答案,是無法直接計算得到的,只能通過間接的「猜算」來得到結果。這就是非確定性問題。而這些問題的通常有個演算法,它不能直接告訴你答案是什麼,但可以告訴你,某個可能的結果是正確的答案還是錯誤的。這個可以告訴你「猜算」的答案正確與否的演算法,假如可以在
多項式時間內算出來,就叫做多項式非確定性問題。而如果這個問題的所有可能答案,都是可以在多項式時間
多流水線排程實際上是乙個np完全問題
內進行正確與否的驗算的話,就叫完全多項式非確定問題。
完全多項式非確定性問題可以用
窮舉法得到答案,乙個個檢驗下去,最終便能得到結果。但是這樣演算法的複雜程度,是
指數關係,因此計算的時間隨問題的複雜程度成指數的增長,很快便變得不可計算了。
人們發現,所有的完全
多項式非確定性問題,都可以轉換為一類叫做滿足性問題的
邏輯運算問題。既然這類問題的所有可能答案,都可以在多項式時間內計算,人們於是就猜想,是否這類問題存在乙個確定性演算法,可以在多項式時間內直接算出或是搜尋出正確的答案呢?這就是著名的np=p?的猜想。
解決這個猜想,無非兩種可能,一種是找到乙個這樣的演算法,只要針對某個特定np完全問題找到乙個演算法,所有這類問題都可以迎刃而解了,因為他們可以轉化為同乙個問題。另外的一種可能,就是這樣的演算法是不存在的。那麼就要從數學理論上證明它為什麼不存在。
P問題 NP問題 NP完全問題和NP難問題
在講p類問題之前先介紹兩個個概念 多項式,時間複雜度。知道這兩概念的可以自動跳過這部分 1 多項式 axn bxn 1 c 恩.就是長這個樣子的,叫x最高次為n的多項式.咳咳,別嫌我囉嗦。有些人說不定還真忘了啥是多項式了。例如第一次看到的鄙人 2 時間複雜度 我們知道在計算機演算法求解問題當中,經常...
P問題 NP問題 NP完全問題和NP難問題概念梳理
正規的問題是讓程式解決乙個問題 很顯然,p類問題是np類問題,p類問題的驗證程式可以這樣設計,顯然驗證程式屬於o 多項式 驗證程式 猜測解 演算法程式 問題解 return 問題解 猜測解p np問題其實 的就是p類問題和np類問題的關係,由前面我們知道p類問題是np類問題,但是我們仍不知道np類問...
演算法中的P問題 NP問題 NP完全問題和NP難問題
在討論演算法的時候,常常會說到這個問題的求解是個p類問題,或者是np難問題等等,於是我特地搜了這方面的資料,自己總結了下,估計研究演算法的大家應該都知道,要是我總結的 不對,歡迎一起 在講p類問題之前先介紹兩個個概念 多項式,時間複雜度。知道這兩概念的可以自動跳過這部分 1 多項式 axn bxn ...