贪心算法

贪心算法是使所做的选择看起来都是当前最佳的,期望通过所做的局部最优选择来产生出一个全局最优解

贪心算法是通过做一系列的选择来给出某一问题的最优解,对算法中的每一个决策点,做一个当时最佳的选择

贪心算法的步骤:

  1 决定问题的最优子结构

  2 设计出一个递归解

  3 证明在递归的任一阶段,最优选择之一总是贪心选择,那么,做贪心选择总是安全的

  4 证明通过做贪心选择,所有子问题(除一个以外)都为空

  5 设计出一个实现贪心策略的递归算法

  6 将递归算法转换成迭代算法

也可以根据如下步骤设计贪心算法:

  1 将优化问题转化成这样的一个问题,即先做出选择,再解决剩下的一个子问题

  2 证明原问题总是有一个最优解是做贪心选择得到的,从而说明贪心选择的安全

  3 说明在做出贪心选择后,剩余的子问题具有这样的一个性质,即如果将子问题的最优解和我们所做的贪心选择联合起来,可以得出原问题    的一个最优解

最优子结构:

  如果它的一个最优解包含了其子问题的最优解,则称该问题具有最优子结构

posted @ 2013-11-20 07:46  褐色键盘  阅读(155)  评论(0)    收藏  举报