标签:贪心算法 抉择 mst 如何 条件 递推算法 生成树 状态转移方程 简单
贪心算法
定义:在每一步选择中都进行当前状态下的最优解, 从而希望导致结果是最好算法。
贪心算法在最优子结构问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。
举例:最小生成树的算法 (Prim MST、Kruskal MST、Dijkstra’s algorithm)
相比于动态规划
相同:均为递推算法;均由局部最优解来推导全局最优解
不同:
贪心:做出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一步之前的最优解则不做保留。
动态规划:全局最优解一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解。动态规划的关键是状态转移方程,即如何由已经求出的局部最优解来推导全局最优解。边界条件:即最简单的可以直接得出局部最优解。
如何区分:反例。当前最优解改变,是否影响以后解(抉择过程)。多个状态多个过程。
标签:贪心算法 抉择 mst 如何 条件 递推算法 生成树 状态转移方程 简单
原文地址:https://www.cnblogs.com/shuaizhang/p/11904298.html