1。 状态选择
所选择的状态需要能确定当前的情况,即需要具备无后向性。状态变量不局限于一个量,一般需由多个量组成。如典型的背包问题m[i, j];而且变量不一定是一个点,也可以是一个连续的区间, 如背包问题中的j是一个点,而i表示一个中间的区间。
2。状态转换子问题的递归
子问题的递归,一般有逐步减一式,或者是中间量遍历式。后者产生更多的转移状态。矩阵链乘等大多数问题属于后者。一些经典问题如生产,最短路径等属于前者。
对于中间量遍历, 在直接的状态递归无法决定产生最优子结构时, 往往需要引入新的辅助状态, 也就是我们说的二次递归.邮局问题就是一个典型的例子.
发表于 @ 2007年06月13日 23:09:00|评论(loading...)|编辑