贪心算法学习笔记

贪心算法

概念

维基:

贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。

步骤

1.建立数学模型来描述问题;
2.把求解的问题分成若干个子问题;
3.对每一子问题求解,得到子问题的局部最优解;
4.把子问题的局部最优解合成原来问题的一个解。

缺陷

  • 不能保证求得的最后解是最佳的;
  • 不能用来求最大或最小解问题;
  • 只能求满足某些约束条件的可行解的范围。

模板

贪心算法没有固定的模板,需要针对不同问题分析来建立不同的解决框架。大致思路如下。

//伪代码模拟贪心算法
while ([没有得到可以组成最终解的所有局部最优解])
{
      [利用决策,获得其中一个或多个局部最优解]
}
[通过已经获得的局部最优解构造最终解]

相关经典问题

旅行推销员问题

背包问题

posted @ 2020-10-24 23:43  Muphalem  阅读(167)  评论(0编辑  收藏  举报
/* 看板娘 */