贪心算法的用法示例?

时间:2011-02-01 20:19:42

标签: algorithm greedy

贪婪算法有什么用?一个真实的例子?

10 个答案:

答案 0 :(得分:17)

最小生成树 - Prim的算法和Kruskal's算法

最短路径计算 - Dijkstra's algorithm

更多: (分数背包问题,霍夫曼编码,最优合并,拓扑排序)。

答案 1 :(得分:8)

任何最佳解决方案都是不可能的 - 或者非常非常困难。

贪婪算法在当前点采用最佳解决方案,即使如果您检查了所有备选方案,这不是最佳解决方案

答案 2 :(得分:8)

有些问题使得贪婪的解决方案实际上是最佳的,有时它们就是这样设计的。 一个有趣的例子是,许多国家的硬币值都是这样的,即返回变化的贪婪方法(即总是在你完成之前返回最大可能的硬币)。

答案 3 :(得分:7)

我很惊讶没有人指出huffman / shannon编码...

答案 4 :(得分:5)

  

贪婪算法有什么用?

贪心算法正在为每个阶段选择最佳/最佳解决方案。看wikipedia article

  

一个真实的例子?

最小生成树算法是贪婪算法

着名的Dijkstra's Algorithm也是贪心算法

答案 5 :(得分:2)

贪婪算法的真实例子是Interval Scheduling

例如,如果要最大化可以使用会议室的客户数量,可以使用区间调度算法。

答案 6 :(得分:0)

答案 7 :(得分:0)

  

贪婪方法的应用

Prim’s Algorithm Kruskal Algorithm

答案 8 :(得分:0)

  

贪婪算法的用途是什么?

我们使用贪婪算法来获得最优解,但是使用贪婪算法并不能解决所有问题。

最优子结构属性和贪婪选择属性是关键因素。如果我们可以证明问题具有这些属性,那么我们正在为它开发贪婪算法。

  

真实的例子吗?

  • 活动安排问题
  • 霍夫曼码
  • 硬币面额
  • 单源最短路径问题(Dijkstra)
  • 最小生成树(Prim算法,Kruskal算法)
  • 背包问题。

几乎所有可以使用动态方法解决的问题都可以通过贪婪方法解决。

答案 9 :(得分:0)

在这里,我列出了一些贪婪算法及其在现实世界中的潜在用例。

Dijkstra的算法

  • IP路由以先找到开放式最短路径。
  • 网络路由协议

进一步了解Dijkstra算法here

在现实世界中的应用

Prim的最小生成树算法

  • Cluster Analysis.

  • 实时面部跟踪和验证(即定位人脸) 在视频流中)。

  • 计算机科学避免网络循环的协议。

  • Entropy based image registration

  • 最大瓶颈路径。

  • 抖动(将白噪声添加到数字录音中,以便 减少失真)。

旅行商问题

  • 没有中间存储的作业车间计划

  • 集群数据数组

  • 车辆路线

图形-地图着色

  • 制定时间表/时间表

  • 数独

  • 移动无线电频率分配

您可以在此paper

中了解更多信息

Kruskal的最小生成树算法

  • 电视网络的形成

  • 游览操作

背包问题