1. (简答题) 简述动态规划的基本思想。
(1)动态规划算法与分治法类似,基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后在从这些子问题的解中得到原问题的解。
(2)与分治法不同的是,适合于用动态规划求解的问题,经分解得到的子问题往往不是相互独立的。若用分治法来解决这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。
(3)如果我们能够保存已经已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。
(4)用一个表来记录所有已解决子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。
这就是动态规划的基本思想,所以动态规划本质上是填表,可以简单理解为自顶向下的有缓存的递归(备忘录方案),当然也可以使用自底向上的循环解法。
2. (简答题) 试简述动态规划算法解最优化问题的4个步骤。
设计步骤如下
(1)找出最优解性质,并刻画其结构特征。
(2)递归的定义最优值。
(3)以自底向上的方式定义最优值。
(4)根据计算最优值时得到的信息,构造最优解。