两大性质
1.最优子结构
2.子问题重叠性质
最优子结构
定义
问题的最优解包含着其子问题的最优解。这种性质称为最优子结 构性质。
证明
首先假设由问题的最优解导出的子问题的解不是最优的。
然后再设法说明在这个假设下可构造出比原问题最优解更好的解,从 而导致矛盾。
利用问题的最优子结构性质,以自底向上的方式从子问题的最优 解逐步构造出整个问题的最优解。 最优子结构是问题能用动态规划算法求解的前提
重叠子问题
递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。
特点:动态规划算法正是利用了这种重叠子问题的性质,对每个子问题只解一次,而后将其保存在一个表格中再次需要时直接调用
时间复杂性:通常不同的子问题个数随问题的大小呈多项式增长 因此用动态规划算法只需要多项式时间,从而获得较高的解题效率
备忘录方法
备忘录方法的控制结构与直接递归方法的控制结构相同,区别在于备忘录方 法为每个解过的子问题建立了备忘录以备需要时查看,避免了相同子问题的重复求解
备忘录方法VS动态规划
备忘录方法:计算次序自顶向下,且当部分子问题可不必求解时好
动态规划:计算次序自底向上 ,当一个问题的所有子问题都至少要解一次时好