贪心算法适用条件_贪心算法总结

贪心算法

1.基本思路:

即从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。

该算法存在问题:

1. 不能保证求得的最后解是最佳的;

2. 不能用来求最大或最小解问题;

3. 只能求满足某些约束条件的可行解的范围。

求解:去逼近目标,每一步都是最优解,最终得到最优解的集合。

停止:不能再继续前进。最优解得出不是最佳(这个似乎很简单啊),最大最小解问题不行(什么是最大最小解),只能求满足某些约束条件的可行解

贪心策略一旦经过证明成立后,它就是一种高效的算法。

先得知道什么时候才能用它

2.贪心算法适用的问题(前提)

实际上,贪心算法适用的情况很少。

贪心算法的证明围绕着:整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。

3.框架

从问题的某一初始解出发;

While(朝着给定的总目标前进一步)

{

利用一些可行的决策,求出可行解的一个解元素;

}

有所有解元素组合成问题的一个可行解;

问题:如何判断是否可以用贪心;

严格的证明 可使用

有反例就是 不能用

贪心算法的一个充分必要条件:矩阵胚拟理

通过题目理解贪心

1.来吃

HDOJ.1257 最少拦截系统

我感觉这个例子非常好的解释贪心。

你可能感兴趣的:(贪心算法适用条件)