启发式算法greedy heuristic、贪心算法

一般来说,我们碰到一个需要解决的问题,第一步是建立一个问题的模型,通过给出优化目标、约束条件、决策变量等方式来对问题从数学层面进行描述。然后我们就可以通过所学的线性规划、凸优化等方式对问题进行求解了。而通过上述方式求的的解,一般会是全局的最优解。而数学模型的复杂程度,会导致该问题的求解无法在多项式时间内完成,随着求解问题规模的增大,算法耗费的时间开始以指数,甚至更高的阶次飞增,也就是一般所谓的NP-Hard问题(给出的定义并不确切)。

这时候,我们就会想,能不能通过用精度换复杂度的方式,来得到一种新的算法。这种算法的求解精度并不能一定保证,但是其求解的时间复杂度却可以得到保证呢?这就是启发式算法提出的最初想法吧。准确来讲,启发式算法是相对于最优化算法提出的。一个问题的最优化算法是求的该问题每个实例的最优解。启发式算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花费下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。

而贪心算法也是我们平常接触到的几大常见算法之一。它主要是说,在对问题求解时,总是做出在当前情况下,看起来是最好的选择。也就是说,并不从整体最优上进行考虑,而是某种程度上的局部最优解。适用与局部最优策略能够导致产生全局最优解的问题~~~

    原文作者:贪心算法
    原文地址: https://blog.csdn.net/yiqingyang2012/article/details/65643688
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞