2.1 动态规划的基本思想
动态规划算法与分治法类似,其基本思想是将待求解问题分解
成若干个子问题,先解子问题,然后从这些子问题的解得到原问题的
解。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到
的子问题往往不是互相独立的。若用分治法解这类问题,则分解得
到的子问题数目太多,以至于最后解决问题需要耗费指数时间,然
而不同子问题的数目常常只有多项式量级。在用分治法求解时,有
些子问题被重复计算了许多次,如果能够保存已解决的子问题的答
案,而在需要时再找出已求得的答案,就可以避免大量重复计算。
从而得到多项式时间算法。为了达到这个目的,可以用一个表来记
录所有已解决的子问题的答案,不管该子问题以后是否被用到,只
要他被计算过,就将结果填入表中,这就是动态规划的基本思想。
具体的动态规划算法是多种多样的,但是它具有相同的填表格式。
2.2 动态规划的基本步骤
动态规划算法适用于解最优化问题。通常可以按以下步骤设计
动态规划算法:
(1)找出最优解的性质,并刻画其结构特征。
(2)递归地定义最优值。
(3)以自底向上的方式计算出最优值。
(4)根据计算最优值时得到的信息,构造最优解。
步骤(1)~(3)是动态规划算法的基本步骤。在只需要求出最优值
的情形,步骤(4)可以省去。若需要求问题的最优解,则必须执行步骤
评论0
最新资源