贪心算法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得整体最优解,通常可以获得近似最优解。
该算法存在问题:
1). 不能保证求得的最后解是最佳的;
2). 不能用来求最大或最小解问题;
3). 只能求满足某些约束条件的可行解的范围。
基本思想
子问题:同动态规划一样,也是问题能拆成子问题。
贪心:即只关注当前这一步,从所有选项里选取使当前最优的那个,不关注整体。
自顶向下:该算法是根据当前贪心做出的选择,迭代的来简化,得到规模小的问题。
算法步骤
找出最优解的性质,刻画结构;
递归定义最优值;
自顶向下的思路设计算法;——>找当下最优值然后分裂子问题
根据过程的信息构造最优解;
贪心算法并不能总求得问题的整体最优解。但对于某些问题,却总能求得整体最优解,这要看问题时什么了。只要能满足贪心算法的两个性质:贪心选择性质和最优子结构性质,贪心算法就可以出色地求出问题的整体最优解。即使某些问题,贪心算法不能求得整体的最优解,贪心算法也能求出大概的整体最优解。如果要求不是太高,贪心算法是一个很好的选择。最优子结构性质是比较容易看出来的,但是贪心选择性质就没那么容易了,
ACM总结四
最新推荐文章于 2022-09-03 08:37:55 发布