算法:贪婪算法

时间:2020-12-24 09:49:53

定义

贪婪算法(又称贪心算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。

贪婪法是一个不追求最优解,只希望得到较为满意的解的方法。 因为它省去了为找最优解而穷尽所需的时间,所以贪婪法一般可以快速 得到满意的解。贪婪法在求解过程的每一步都选取一个局部最优的策略, 把问题规模缩小,最后把每一步的结果合并起来形成一个全局解。

步骤:

  • 建立数学模型来描述问题,给定一个目标
  • 把求解的问题分成若干个子问题,在每个阶层给出最优。
  • 把子问题的解局部最优解合成原来解问题的一个解。

案例

找零钱,背包(限一定重量的背包,如何装的最多)

特点:

  • 不能保证最后的解是最优的;
  • 不能用来求最大最小解
  • 只能瞒住某些约束条件的可行解的范围