📅  最后修改于: 2021-01-12 03:32:52             🧑  作者: Mango
在所有算法方法中,最简单直接的方法是Greedy方法。在这种方法中,决策是基于当前可用信息进行的,而无需担心将来当前决策的影响。
贪婪算法会逐个构建解决方案,以这种方式选择下一部分,从而立即获得收益。这种方法永远不会重新考虑以前的选择。该方法主要用于解决优化问题。贪婪方法在大多数情况下易于实现并且非常有效。因此,可以说,贪婪算法是一种基于启发式的算法范式,它在每一步都遵循局部最优选择,希望找到全局最优解。
在许多问题中,尽管它在合理的时间内给出了近似(接近最佳)的解,但它并没有产生最优解。
贪婪算法具有以下五个组成部分-
候选集-从该集创建解决方案。
选择函数-用于选择要添加到解决方案中的最佳候选者。
可行性函数-用于确定是否可以使用候选人为解决方案做出贡献。
目标函数-用于为解决方案或部分解决方案分配值。
解决方案函数-用于指示是否已达成完整解决方案。
贪婪方法用于解决许多问题,例如
使用Dijkstra算法找到两个顶点之间的最短路径。
使用Prim的/ Kruskal算法等在图中找到最小生成树。
在许多问题中,贪婪算法无法找到最优解,而且它可能会产生最差的解。使用此方法无法解决旅行推销员和背包问题。