贪心算法
贪心算法是使所做的选择看起来都是当前最佳的,期望通过所做的局部最优选择来产生出一个全局最优解
贪心算法是通过做一系列的选择来给出某一问题的最优解,对算法中的每一个决策点,做一个当时最佳的选择
贪心算法的步骤:
1 决定问题的最优子结构
2 设计出一个递归解
3 证明在递归的任一阶段,最优选择之一总是贪心选择,那么,做贪心选择总是安全的
4 证明通过做贪心选择,所有子问题(除一个以外)都为空
5 设计出一个实现贪心策略的递归算法
6 将递归算法转换成迭代算法
也可以根据如下步骤设计贪心算法:
1 将优化问题转化成这样的一个问题,即先做出选择,再解决剩下的一个子问题
2 证明原问题总是有一个最优解是做贪心选择得到的,从而说明贪心选择的安全
3 说明在做出贪心选择后,剩余的子问题具有这样的一个性质,即如果将子问题的最优解和我们所做的贪心选择联合起来,可以得出原问题 的一个最优解
最优子结构:
如果它的一个最优解包含了其子问题的最优解,则称该问题具有最优子结构

浙公网安备 33010602011771号