P,NP,NP-hard,NPC

來源:互聯網
上載者:User

P問題是一類問題,它們可以找到一個多項式複雜度的確定性演算法。
這意味著,在給定有限的資源(電腦)內,資源運用該演算法能在多項式時間內得到問題的正確解。

NP問題要比P問題更加廣泛,它定義為一類問題,它們可以找到多項式複雜度的非確定演算法。
P屬於NP,即如果一個問題可以找到多項式複雜度的確定性演算法,那一定有多項式複雜度的非確定性演算法。
然而NP屬於P卻並沒有證明,因為對於一個NP問題,我們只是找不到一個多項式複雜度的確定性演算法,但並不能說一定不存在。
當然這也就是說NP=P尚未被證明。

NP問題通常要比P問題難,它意味著有限的資源內找不到一個演算法能在多項式時間內解決。
於是在理論上把資源擴充到需要多少有多少。採用這樣一種辦法,用某種技術一步步地猜測,最後檢驗猜測結果,看是否是合格正確解。
由於這種辦法是猜出來的,因此每次運行過程都存在隨機性,並且由於資源數也是不確定的,因此這種辦法叫做非確定性演算法。這種演算法要對猜測的

最終結果進行檢驗,看是否符合,就是判斷yes或no的問題。因此非確定性演算法是決策性問題(decision problem)。
非確定演算法的過程中每一步猜測都可能有許多種可能,正是由於可能性太多,因此確定性演算法在多項式複雜度內完成才變得困難。然而非確定演算法是

在有無限多資源的基礎上的,因此在每一步的猜測上,可以分配有可能性個數那麼多的電腦來同時計算,因此每次猜測時間代價就是1.然後再繼續

進行下一步,每種可能性下又分出許多可能性,由於資源足夠分配,得到結果又只用時間代價1.演算法的運行過程可以用樹的形式來看。每猜一步就算一層。在一層中,總有一個節點是位於正確解的路徑的。因此只要樹的層數是多項式複雜度的,或者說到達正確解(並加以驗證)的層數是多項式複雜度的,那就說這

個非確定性演算法是多項式複雜度的。

更準確的說,產生解的過程是多項式複雜度的,驗證解的過程也是多項式複雜度的,那麼這個非確定性演算法是多項式複雜度的。

要構造一個非確定性演算法,通常來說產生隨機解的過程較簡單,關鍵在於產生多項式複雜度的驗證解的過程。因此非確定演算法的複雜度常常集中於驗證解過程。所以NP問題另一種解釋是能找到在多項式時間內驗證一個解的正確性的演算法的問題。

分析非確定性演算法的時間複雜度:

在這無數的並行計算中,我們只關心從開始節點到輸出正確結果的那個節點之間的正確解產生路徑。這段時間就是該非確定性演算法的已耗用時間,因為輸出正確解後一切計算都停止了。從分析演算法上直觀來看,可以把每一個猜測步驟的結果當作正確結果,每個產生猜測值的語句就相當於對應的指派陳述式,複雜度為O(1)。這個演算法執行完畢的時間就是該非確定性演算法啟動並執行時間。

 

NP-hard問題是一類問題,所有的NP問題都能多項式歸約到它。但NP-hard問題不一定是NP問題,如停機問題。所有NP問題都能通過多項式歸約將輸入轉化來做停機問題的輸出,最後得到同樣的yes/no結果。方法比如設定布爾變數為真使其迴圈就不會停機,為假就退出迴圈而停機。這樣多項式歸約演算法就構造好了。然而停機問題並不是NP問題因為它對於隨機的輸入是不可驗證的(以上構造輸入只是很小的真子集),也就是說驗證過程無法在多項式時間完成,所以不是NP問題。

NP-complete就是即是NP-hard又是NP的那類問題。由於NP-hard的歸約性質,如果NPC解決了,那所有的NP問題也就解決了。

 

NPC的證明:

Cook證明了滿足性問題是NPC的。我們證明NPC的方法只需要藉助已知NPC的力量而不必再像Cook一樣繁瑣的證明。

要證明Q問題是NPC的,首先要選擇一個已知的NPC問題P,通過一個多項式時間的變換函數T,將P的input轉化交給Q的input,如果P,Q的結果能產生同樣的yes和no(即有P<pQ,P能多項式規約到Q),那麼Q問題就是一個NP-hard問題。

原因是如果Q能有一個多項式時間的演算法,那麼Q+T也是多項式時間的,而這個整體與P產生了同樣的效果,即P可以有多項式時間的演算法。而原條件是P為NPC的,所以Q不存在多項式時間演算法。

然後再證明Q是NP的即可。

證明一個問題是NP的,要舉出其input,說明其驗證input的合法性和正確性的過程是多項式時間的,即可。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.