贪心算法

贪心算法(Greedy Algorithm),是一种在每一步选择中都采取在当前状态下最好或最优的选择,即做出局部最优选择,寄希望这样的选择能导致全局最优解

贪心算法不保证得到最优解,但是对很多问题确实可以得到最优解

贪心算法比动态规划简单很多,所以能用贪心算法解决的事,不该使用动态规划去解决

一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不特别精确的问题

利用贪心算法实现的有 活动选择问题(Activity Selection problem)Kruskal最小生成树(Kruskal's Minimum Spanning Tree)Prim最小生成树(Prim's Minimum Spanning Tree)Dijkstra最短路径(Dijkstra's Shortest Path)哈夫曼编码(Huffman Coding)

步骤细节:

1.创建数学模型来描述问题

2.把求解的问题分成若干个子问题

3.对每一子问题求解,得到子问题的局部最优解

4.把子问题的解局部最优解合成原来解问题的一个解。


上一篇: 硬币改变
下一篇: 活动选择问题
作者邮箱: 203328517@qq.com