📜  DAA-贪婪方法

📅  最后修改于: 2021-01-12 03:32:52             🧑  作者: Mango


在所有算法方法中,最简单直接的方法是Greedy方法。在这种方法中,决策是基于当前可用信息进行的,而无需担心将来当前决策的影响。

贪婪算法会逐个构建解决方案,以这种方式选择下一部分,从而立即获得收益。这种方法永远不会重新考虑以前的选择。该方法主要用于解决优化问题。贪婪方法在大多数情况下易于实现并且非常有效。因此,可以说,贪婪算法是一种基于启发式的算法范式,它在每一步都遵循局部最优选择,希望找到全局最优解。

在许多问题中,尽管它在合理的时间内给出了近似(接近最佳)的解,但它并没有产生最优解。

贪婪算法的组成部分

贪婪算法具有以下五个组成部分-

  • 候选集-从该集创建解决方案。

  • 选择函数-用于选择要添加到解决方案中的最佳候选者。

  • 可行性函数-用于确定是否可以使用候选人为解决方案做出贡献。

  • 目标函数-用于为解决方案或部分解决方案分配值。

  • 解决方案函数-用于指示是否已达成完整解决方案。

应用领域

贪婪方法用于解决许多问题,例如

  • 使用Dijkstra算法找到两个顶点之间的最短路径。

  • 使用Prim的/ Kruskal算法等在图中找到最小生成树。

贪婪方法失败的地方

在许多问题中,贪婪算法无法找到最优解,而且它可能会产生最差的解。使用此方法无法解决旅行推销员和背包问题。