1. 近似算法的基本概念
很多實際應用問題都是NP-完全問題,這類問題很可能不存在多項式時間算法。一般而言,NP-完全問題可采用以下三種方式處理。如果問題的輸入規模較小,則可以利用搜索策略在指數時間內求解問題。如果輸入規模較大,既可以利用隨機算法在多項式時間內“高概率”地精確求解問題,也可以考慮在多項式時間內求得問題的一個“近似解”。
近似算法是指能夠在多項式時間內給出優化問題的近似優化解的算法,近似算法不僅可用於近似求解NP-完全問題,也可用於近似求解復雜度較高的P問題。
2. 近似算法的性能分析
近似算法的性能分析包括時間復雜度分析、空間復雜度分析和近似精度分析,其中時間(空間)復雜度的分析同精確復雜度相同。近似精度分析是近似算法特有的,它主要用於刻畫近似算法給出的近似解相比於問題優化解的優劣程度。目前,存在三種刻畫近似精度的度量,即近似比、相對誤差界和1+ε近似。
近似比(性能比):設A是一個優化問題的近似算法,A具有近似比(ratio bound) p(n), 如果max{C/C*, C*/C} ≤ p(n)。其中n是輸入大小,C是A產生的解的代價,C*是優化解的代價。近似算法的性能比不會小於1,一個能求得精准最優解的算法性能比為1,一般情況下性能比大於1.近似算法的性能比越大,它求得的近似最優解越差。
相對誤差:對於任意輸入,近似算法的相對誤差定義為|C - C*|/C*,其中C是近似解的代價,C*是優化解的代價。
相對誤差界:一個近似算法的相對誤差界為ε(n),如果|C-C*|/C* ≤ ε(n)。近似算法的性能比p(n)與相對誤差界ε(n)之間有如下關系:ε(n)<=p(n)-1.
近似模式:一個優化問題的近似模式是一個以問題實例I和ε>0位輸入的算法。對於任意固定的ε,近似模式是一個(1+ε)-近似算法。一個近似模式A(I,ε)稱為一個多項式時間近似模式,如果對於任意ε>0, A(I,ε)的運行時間是|I|的多項式。一個近似模式稱為完全多項式時間近似模式,如果它的運行時間是關於I/ε和輸入實例大小n的多項式。
以下參考北大屈老師近似算法課件:
參考:北大《算法設計與分析》公開課
王曉東《算法設計與分析》第二版
https://blog.csdn.net/jingyi130705008/article/details/78435318