基本思想
将待求解问题分解成若干个子问题,经分解得到的子问题往往不是互相独立的。先求解子问题,然后从这些子问题的解构造得到原问题的解。
解题步骤
- 分析最优解的性质,刻画最优解的结构特征——考察是否适合采用动态规划法。
- 递归地定义最优值(即建立递归式或动态规划方程)。
- 以自底向上的方式计算出最优值,并记录相关信息。
- 根据计算最优值时得到的信息,构造出最优解。
基本要素
- 最优子结构性质
子问题重叠性质
递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题出现多次,这种性质称为子问题的重叠性质。
在应用动态规划时,对于重复出现的子问题,只需在第一次遇到时就加以解决,并把已解决的各个子问题的解储存在表中,便于以后遇到时直接引用,从而不必重新求解,可大大提高解题的效率。自底向上的求解方式