前言
大家好,越努力,越幸运,我是程序猿小猿。本篇文章小猿将跟您分享算法设计与分析中的近似算法,希望对您有所帮助。
一、近似算法的引入
1、Cook论题:一个问题是实际可计算的当且仅当它在图灵机上经过多项式步骤得到正确的结果。
(1)、易解问题
(2)、难解问题
2、从验证的角度,将难解问题分加P类问题和NP类问题。
3、迄今为止,所有的NP完全问题都还没有多项式时间算法。对于这类问题,通常可采取以下几种解题策略:
(1)、只对问题的特殊实例求解
(2)、用动态规划法或分支限界法求解
(3)、用概率算法求解
(4)、只求近似解
(5)、用启发式方法求解
本篇文章主要讨论解NP完全问题的近似算法。
二、近似算法的基本思想
1、放弃求解最优解,用近似最优解代替最优解,以此换取:
(1)、算法设计上的简化
(2)、时间复杂性的降低
2、近似算法是可行的
(1)、问题的输入数据是近似的;
(2)、问题的解允许有–定程度的误差;
(3)、近似算法可在很短的时间内得到问题的近似解。
三、近似算法的性能
1、衡量近似算法性能的标准:
(1)、时间复杂性必须是多项式阶的。这是近似算法的基本目标。
(2)、解的近似程度。这是近似算法的重要目标。
2、若一个最优化问题的最优值为c*,求解该问题的一个近似算法求得的近似最优值为c,则将该近似算法的近似比定义为
3、在通常情况下,该性能比是问题输入规模n的一个函数ρ(n),即
4、近似算法的相对误差λ定义为:
λ表示一个近似最优解与最优解相差的程度。
若问题的输入规模为n,存在一个函数ε(n), 使得:
ε(n)称为近似算法的相对误差界。且有:
通过近似比和相对误差这两个标准评价一个近似算法的优劣!
四、近似算法示例
1、顶点覆盖问题
2、TSP问题
3、装箱问题
…
总结
知识点总结
1、近似算法放弃求最优解,用近似解代替最优解,以换取算法设计上的简化和时间复杂性的降低。
2、近似算法通常采用两个标准来衡量性能:
(1)、算法的时间复杂性
(2)、解的近似程度
近似比η
相对误差λ
相对误差界ε(n)
结语
对近似算法的介绍就到这里啦,希望这篇文章能给予你一些帮助,感谢各位人才的:点赞、收藏和评论,我们下次见。