1. 程式人生 > >算法復雜性分界函數—多項式

算法復雜性分界函數—多項式

定律 實現 研究 color 行操作 回路 提高 uri 計算機系

以多項式作為分界函數?

一、常見算法大致分為兩類:

  一類是多項式時間內可實現的

  另一類需要指數時間(O(cn))

  

二、多項式時間算法與計算模型無關

  算法的研究依賴於計算模型。在不同類型計算模型上實現算法,計算時間不同。

  廣義Church-Turing命題:不同計算模型上的計算時間有多項式時間關系。

  多項式與多項式的復合函數是多項式,因此,多項式算法與計算模型無關。

問題分類

一、判定問題

  解只有兩種,yes或no

  例:給定圖G=(V,E),問該圖是否有哈密爾頓圈。

二、優化問題

  例:給定圖G=(V,E),假設邊的費用為自然數。求改圖的最短哈密爾頓回路。

三、問題轉換

  優化問題可轉換為相應的判定問題求解。

是否所有的難解問題通過並行計算使其在多項式內可解?

  關於並行算法:當將一個問題分解到多個處理器上解決時,由於算法中不可避免地存在必須串行的操作,從而大大地限制了並行計算機系統的加速能力。

  阿達爾定律:串行執行操作僅占全部操作1%,解題速度最多只能提高一百倍。

  阿達爾定律告訴我們,對於有些難解問題,即使提高計算機運行速度,也不能在多項式時間內驗證。即並非所有的難解問題都屬於NP類。如,漢諾塔問題:推測階段給出一種盤子移動方法;驗證階段需要2n步驗證該解的正確性。

P類和NP類問題的差別

主要差別在於:

  P類問題可以用多項式時間的確定性算法進行判定或求解。

  NP類問題可以用多項式時間的確定性算法來驗證它的解。

結論:

  P?NP

猜測:

  NP≠P?

解決NP=P?的途徑

  解決這個猜想,有兩種可能:

  一種是找到一個這樣的算法,只要針對某個特定NP完全問題找到一個多項式算法,即可證明NP=P。

  另一種可能,就是這樣的算法是不存在的。需要從數學理論上證明它為什麽不存在。

NP完全問題的近似解法

  • 使用動態規劃、回溯法或分支限界法求解
  • 使用概率算法求解
  • 使用啟發式算法求解:遺傳算法、模擬退火

算法復雜性分界函數—多項式