基本知识点:
适用于最优化问题的算法往往包含一系列步骤,每一步都有一组选择。对很多最优化问题来说,采取动态规划方法来决定最佳选择就有点“杀鸡用牛刀”了,一般只要采用另一些更简单有效的算法就行了。
贪心算法是使所做的选择看起来都是当前最佳的,希望通过所做的局部最优来产生一个全局最优解。
贪心算法是通过做一系列的选择来给某一问题的最优解。更一般地,可以根据如下的步骤来设计贪心算法。
1)将优化问题转换成这样的一个问题,即先做出选择,再解决剩下的一个子问题。
2)证明原因问题总是有一个最优解是做贪心选择得到的,从而说明贪心选择的安全。
3)说明在做出贪心选择后,剩余的子问题具有这样一个性质,即如果子问题的最优解和所做的贪心选择联合起来,可以得出原问题的一个最优解。
性质:
贪心的关键特点是贪心选择性质:一个全局最优解可以通过局部最优(贪心)选择来达到。