贪心算法的简单总结:
贪心算法就是每步都采取最优的做法,也就是说每步都选择局部最优解,最终得到的就是全局最优解
贪心算法并非适用于任何情况,但它却易于实现
这两天预习了一下动态规划的基本内容,没有做过具体题目还不知道具体细节,但根据网上的来总结一下:
动态规划:Dynamic Programming(此处“Programming”为“规划”,而非指程序),研究多步决策过程最优化问题的一种数学方法,英文缩写DP。在动态规划中,为了寻找一个问题的最优解(即最优决策过程),将整个问题划分成若干个相应的阶段,并在每个阶段都根据先前所作出的决策作出当前阶段最优决策,进而得出整个问题的最优解。
能采用动态规划求解的问题的一般要具有3个性质:
①最优化原理:如果问题的最优y所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。
②无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。
③有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没有这条性质,动态规划算法同其他算法相比就不具备优势)
解题步骤:
- 拆分问题
- 定义状态(并找出初状态)
- 状态转移方程