算法设计技巧与分析(十一):近似算法(approximation algorithms)
文章目錄
- 近似算法(approximation algorithms)
- 差界(difference bounds)
- 困難結果:背包問題
- 相對性能界(relative performance bounds)
- 裝箱問題(the bin packing problem)
近似算法(approximation algorithms)
組合優(yōu)化問題不是最小化問題就是最大化問題,它由以下三部分組成:
1、一個實例(instances)集合D;
2、對于每個實例I屬于D,存在I的一個候選解的有限集S(I);
3、D中的一個實例I的每個解a屬于S(I),存在一個值f(a),稱為a的解值。
用OPT(I)表示最優(yōu)值f(a*),且它小于等于f(a)。
最優(yōu)化問題的一個近似算法A是一個多項式時間的算法,使得給出一個實例I屬于D,它輸出的某個解a屬于S(I),將用A(I)表示f(a)。
差界(difference bounds)
對于問題的所有實例I,由近似算法A可以得到也是最想得到的解A是使得|A(I)-OPT(I)|<=K,K是某個常數(shù)。
只有很少的NP難的最優(yōu)化問題,他們的差界是已知的。
困難結果:背包問題
對于背包問題,我們將證明不存在帶差界的背包問題的近似算法。
假設存在一個帶差界的求解背包問題的近似算法A:
相對性能界(relative performance bounds)
對于最小化問題,定義近似比(approximation ratio):
對于最大化問題,有:
裝箱問題(the bin packing problem)
給定尺寸為s1、s2、…、sn的物品u1、u2、…、un的集合,其中sj介于0和1之間,我們需要將這些物品包裝到單位容量的最小數(shù)量的箱子中。
下面介紹最先適配方法(First Fit)。
所有的箱子初始值為空,考慮把這些物品按照u1、u2、…、un的順序裝箱,為了裝物品ui,我們找到最小的序號j使得箱j最多裝了1-si的東西,并把物品ui加到箱j中。
設FF(I)標記在I中用FF啟發(fā)式方法裝物品所用箱子數(shù)目,設OPT(I)是最優(yōu)箱子數(shù)目:
由于不可能存在兩個半空的箱子:
總結
以上是生活随笔為你收集整理的算法设计技巧与分析(十一):近似算法(approximation algorithms)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用nlite自己diy操作系统
- 下一篇: 网络损伤仪可用于测试卫星通信