动态规划
动态规划求解规律:
动态规划能解决的问题,需要满足“一个模型三个特征”。
一个模型
多阶段决策最优解模型
动态规划能解决的问题都可以抽象成“多阶段决策最优解模型”。即求解问题的过程可以分为多个阶段,每个阶段对应多个状态,从所有阶段状态中选择一组最优解序列,可以得到所求。
三个特征
最优子结构:
问题的最优解,可以通过子问题的最优解求得。
无后效性:
求解当前阶段的状态时,只需关心前一阶段的状态,而不需要关心前一阶段的状态怎么来的;
前阶段的状态一旦确定,就不再受后阶段决策的影响。
重复子问题:
不同决策序列,到达某一状态时,会产生重复解。
动态规划求解方法
状态转移表法
能用动态规划求解的问题,都可以用回溯法暴力求解。
一般求解步骤为:
回溯法暴力求解;
画状态树;
确定重复子问题(确定是否符合动态规划特征);
画状态转移表;
确定每个阶段的状态;
翻译成代码。
状态转移方程法
一般求解步骤为:
找最优子结构;
确定动态转移方程;
翻译成代码:递归加备忘录;或者迭代递推。
Last updated
Was this helpful?