动态规划
一、动态规划的基本要素
(1)最优子结构性质
(2)重叠字问题性质
二、掌握设计动态规划算法的步骤
找出最优接的性质,并刻画其结构特征
递归地定义最优值
以自底向上的方式计算出最优值
根据计算最优值得到的消息,构造最优解
三、算法总体思想
动态规划算法与分治法类似,其基本思想也是讲待求解问题分解成若干个子问题
但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。
如果能够保存已解决的子问题答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式的时间算法。
总结:动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,但分解后的子物体往往不是相互独立的。
四、Divide-and-conquer技术的问题
子问题是相互独立的
如果子问题不是相互独立的,分治算法将重复计算公共子问题,效率很低。
五、Dynamic Programming特点
把原始问题划分成一系列子问题
求解每个子问题仅一次,并将结构保存在一个表中,以后用到时直接存取,不重复计算,节省计算时间
自底向上地计算
五、动态规划的适用范围
一类最优化问题:可分为多个相关子问题,子问题的解被重复利用。
六、最优化问题
给一组约束条件和一个代价函数,在解空间中·搜索具有最小或最大代价的最优解。
很多最优化问题可分为多个子问题,子问题相互关联,子问题的解被重复使用