- 基本思想
贪心法是从问题的某一个初始解出发,在每一个阶段都根据贪心算法来作出当前的最有决策,即可能快的求最优解。当达到某一步无法进行,算法终止。即通过局部的最优解,达到全局的最优解。
注意贪心算法是根据策略逐步构造问题的解。如果选择贪心策略不同,得到的算法就不同,因此,该算法的关键在于贪心策略的选择。
贪心法具有高效性和不稳定性,因为可以迅速的获得一个解,但解却不一定是最优解,也可能是最优解的近似解。 - 基本要素
一般的,凡是经过数学归纳法证明均可采用贪心求解,但是需要证明后才能真正求出最优解。
贪心问题一般要有两个重要性质:最优字结构性质和贪心选择性质。即一个问题可以分解为各个子问题解决,而通过各个子问题的最优解可递推到原问题的最优解;同多一系列的逐步局部最优选择是全局最优解,其中每次所作出的选择可以依赖与以前的选择,但不依赖将来作出的选择。
Greedy ( A , n ) //A[n-1]即为A的n个输入的集合
{
for ( i = 0 ; i < n ; i++ ) //分解原问题
{
x=select ( A ) //依据贪心策略分别求得局部最优解
if ( x属于solution ) //判别是否满足条件
solution = union ( solution ,x ); //最优解的合并
}
return ( solution ); //逐个完成局部最优解
}