贪心算法

特性

作出的是局部最优的,但不必定是总体最优。算法

每每比动态规划效率高,虽然可能求不到最优解,可能会求得最优解的近似解。排序

性质

贪心选择性质

总体最优解可经过一系列局部的最优选择来达到资源

是自顶向下的(与动态规划相反)效率

最优子结构性质

与动态规划相同im

要证实贪心算法的正确性就要证实是否知足这两个性质集合

例子

  • 背包问题

固定的重量条件下,装下的物品尽量总价值最大。兼容

不是0-1背包,是能够装的数量x(0<=x<=1)。动态规划

这样的背包的贪心策略是每次选择单位价值最大的物品装进去。时间

  • 活动安排问题

对于共享一个资源的一系列活动,要在固定时间内,尽可能安排多的活动。生成

把活动按结束时间从早到晚排序,策略是每次选择结束时间最先的且与上一个选中的活动兼容的活动。

  • 最优装载

要求:在固定总重量的条件下,不一样重量的系列箱子,装尽量多的箱子。

策略:每次选择最轻的箱子。

  • 单源最短路径

要求:求图中对于给定源点v,它到其它点的最短路径

策略:每次选择不在已选择集合而且到源点距离最近的点

  • 最小生成树MST

MST性质:图分裂成两个集合,则这两个集合的最小连通的边必定会出如今最小生成树

  1. Prim——最近顶点

每次选择在两个集合(已选择集合和未选择集合)之间的最短边

  1. Kruskal

每次选择全部边的最短边。

 

 

  • 多机调度

要求:m个机器尽量短的时间内完成n个做业

策略:最长做业优先

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息