定义
贪婪算法(又称贪心算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。
贪婪法是一个不追求最优解,只希望得到较为满意的解的方法。 因为它省去了为找最优解而穷尽所需的时间,所以贪婪法一般可以快速 得到满意的解。贪婪法在求解过程的每一步都选取一个局部最优的策略, 把问题规模缩小,最后把每一步的结果合并起来形成一个全局解。
步骤:
- 建立数学模型来描述问题,给定一个目标
- 把求解的问题分成若干个子问题,在每个阶层给出最优。
- 把子问题的解局部最优解合成原来解问题的一个解。
案例
找零钱,背包(限一定重量的背包,如何装的最多)
特点:
- 不能保证最后的解是最优的;
- 不能用来求最大最小解
- 只能瞒住某些约束条件的可行解的范围