📜  贪婪算法简介

📅  最后修改于: 2020-12-10 06:39:01             🧑  作者: Mango

贪婪算法介绍

“贪婪方法可从许多选项中找到,但您必须选择最佳选项。”

在这种方法中,我们必须从许多现有方法中找出最佳方法/选项。

在这种方法/方法中,我们专注于第一阶段并确定输出,而不考虑未来。

此方法可能会或可能不会提供最佳输出。

贪婪算法通过做出在特定时刻看起来最好的最佳选择来解决问题。可以使用贪婪算法确定许多优化问题。某些问题没有有效的解决方案,但是贪婪算法可能会提供接近最佳的解决方案。如果问题具有以下两个属性,则贪心算法将起作用:

  • 贪婪选择属性:通过创建局部最优解可以达到全局最优解。换句话说,可以通过创建“贪婪”选择来获得最佳解决方案。
  • 最优子结构:最优解包含最优子解。换句话说,最优解子问题的答案是最优的。

例:

  • 机器调度
  • 小背包问题
  • 最小生成树
  • 霍夫曼密码
  • 作业排序
  • 活动选择问题

实现贪婪算法的步骤是:

  • 可行:这里我们检查它是否满足所有可能的约束条件,以获得至少一种解决我们问题的方法。
  • 局部最优选择:在这种情况下,选择应该是从当前可用的最优选择
  • 不可更改:一旦做出决定,在任何后续步骤中,该选项都不会更改。