Lecture 3: Planning by Dynamic Programming
1.利用动态序列或时间分量去最优化一个问题的程序
它是解决复杂问题的一种方法,通过分解子问题,解决子问题,组合子问题的解来实现
2.动态编程是解决包含以下属性问题的解决办法:
1)最优子结构
最优应用原则和最优解能被分解成子问题
2)覆盖子问题
子问题出现多次
子问题的解可以被缓存和重复利用
3)MDP满足以下两个属性
贝尔曼等式给出了递归分解形式
值函数存储和重复利用可行解
3.DP通常用作以下问题:
时序算法、字符串算法(序列对比)、图算法(最短路径)、图模型(Viterbi algorithm)、生物信息学(晶格模型)
4.策略迭代评估