/*
贪心算法导引:
贪心算法总是做出在当前看来是最好的选择,也就是说,贪心算法并不从整体最优上加以考虑,所做的
选择只是在某种意义上的局部最优选择。
---------------------------------------------------------------------------------------------
虽然贪心算法不是对所有问题都能得到整体最优解,但对范围相当广的许多问题能产生最优解,如最小生
树问题,图的最短路径问题等。在一些情况下,即使贪心算法不能得到整体最优解,但其最终结果却是最优
解的很好的近似解。
*******************************************************************************************
针对一个问题,如何判断它是否可以用贪心算法来解决?这取决于这个问题是否具有两个重要的性质:
贪心选择性质和最优子结构性质。1-->贪心选择性质
贪心选择性质是指,所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。
(动态规划算法通常以自底向上的方式解各子问题,贪心算法则通常以自顶向下的方式进行,以迭代的
方式做出相继的贪心选择,每做一次贪心选择,就将所求问题简化为规模更小的子问题。通过每一步的贪心选择
最终可以得到问题的整体最优解。
2-->最优子结构性质
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题的最优子结构性质是该问题
可用动态规划算法或贪心算法求解的关键特征。
**************************************************************************************
动态规划算法与贪心算法的最大不同在于:
动态规划是从全局的最优角度去做出选择,进而得到最优解。
而贪心算法是以局部的角度去做最优的选择,进而每一步的贪心选择,来得到整体的最优解。
*/
Nearth==>算法设计与分析/第四章/贪心算法(理论)
最新推荐文章于 2021-12-30 20:50:25 发布