贪心算法的本质:
- 它是解决问题的策略上“目光短浅”,只根据当前已有信息就做出选择,而且一旦做出选择,不管将来有什么结果,这个结果都不会发生改变。换言之,贪心算法并不是从整体最优考虑,而是在某种意义上的局部最优。注意有时得到的结果并不是最优解,而是最优解的近似解。
如何使用贪心算法呢?
(1)贪心策略
- 首先要确定贪心策略,选择当前看上去最好的一个方案。例如,挑选苹果,如果你认为个大的是最好的,那你每次都从苹果堆中拿一个最大的,作为局部最优解。贪心策略就是选择当前最大的苹果;再例如另外一种贪心策略是选择当前最红的苹果。因此根据求解目标不同,贪心策略也会不同。
(2)局部最优解
- 根据贪心策略,一步一步得到局部最优解。例如,第一次选一个最大的苹果放起来,记为a1,第二次再从剩下的苹果中选择一个最大的苹果放起来,记为a2,以此类推下去。
(3)全局最优解
- 把所有的局部最优解合成为原来问题的一个最优解(a1,a2,…an