贪心算法
贪心算法又称贪婪算法是指,在问题求解的过程中。总是做出当前看来最好的选择。也就是说只考虑问题的局部最优解,并不考虑全局最优解。
贪心算法不是对所有问题都能得到整体最优解,关键的贪心策略的选择,选择贪心算法必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
基本要素
贪心选择
贪心选择是指所求问题的整体最优解可以通过一系列局部最优的选择。贪心选择是采用从顶向下、以迭代的方法做出相继选择的性质,每做一次贪心选择就将所求问题简化为一个规模更小的子问题。对于一个具体问题,要确定它是否具有贪心选择的性质,我们必须证明每一步所做出的贪心选择最终能得到问题的最优解。通常可以首先证明问题的一个整体最优解,是从贪心选择开始的,而且做了贪心选择之后,原问题简化为一个规模更小的类似子问题。然后,用数学归纳法证明,通过每一步贪心选择,最终可得到问题的一个整体最优解。
最优子结构
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。运用贪心策略在每一次转化时都取得了最优解。问题的最优子结构性质是该问题可用燃心算法或动态规划算法求解的关键特征,贪心算法的每一次操作都对结构产生直接影响,而动态规划则不是,贪心算法对每个子问题的解决方案都做出选择,不能回退。
基本思路
思想
贪心算法的基本思路是从问题的某一个厨师解出发一步一步的进行,根据某个优化测度,每一步都要确保能获得局部最优解,每一步只考虑一个数据,它的选取应该满足局部优化的条件。若下一个数据和部分最优解连在一起不在是可行解时, 就不把该数据添加到部分解中,或者不在添加算法停止,
贪心算法,一种在问题求解过程中始终追求局部最优解的策略。本文深入探讨了贪心算法的基本概念,包括其核心特性:贪心选择与最优子结构。通过实例说明如何在问题求解中应用贪心策略,以及如何判断一个特定问题是否适合使用贪心算法。
6916

被折叠的 条评论
为什么被折叠?



