算法復雜性分界函數—多項式
以多項式作為分界函數?
一、常見算法大致分為兩類:
一類是多項式時間內可實現的
另一類需要指數時間(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完全問題的近似解法
- 使用動態規劃、回溯法或分支限界法求解
- 使用概率算法求解
- 使用啟發式算法求解:遺傳算法、模擬退火
算法復雜性分界函數—多項式