1、动态规划算法的定义

其实道理上来说动态规划算法和分治法是相类似的,其实都是将基本待求解的问题分解成若干个子问题,先求解子问题,然后再从这些子问题中得到原问题的解。与分治法的不同点在于使用动态规划求解的这类问题的子问题往往不是互相独立的,若果是使用分治法解这类问题,则分解得到的子问题数目太多。

 2、比较分析

我们在使用分治法求解时,有些子问题已经被重复计算了许多次。要是我们提前可以保存已经解决的子问题的答案,在我们自己需要的时候找出已经求得的答案,那么这样就可以避免大量的重复计算。为了解决这个问题我们可以使用一个表来记录所有已经解决的子问题的答案。不管后面子问题是否被使用到,只要它被计算过了,就把它的结果填入到表里面。

3、设计动态规划算法的步骤

 (1)找出最优解的性质,并且刻画其结果特征;

(2)递归的定义最优值;

(3)以自底向上的方式计算出最优质值;

(4)根据计算最优值时得到的信息,构造最优解。