Planning by Dynamic Programming

Dynamic Programming

动态规划:将大问题化解为小问题,通过求解子问题,最终得到大问题的求解方式

  • 最优子结构
  • 重复子问题
  • 马尔可夫属性对该问题比较符合

动态规划在马尔可夫决策过程中经常是作为规划的作用

  • 在预测方面:
    在这里插入图片描述
  • 在控制方面:
    在这里插入图片描述

策略迭代

利用贝尔曼方程进行策略的迭代,从而最优化策略

例子1

在一个格子迷宫中,左上角和右下角为灰色格子,走入后获得reward为0,其他格子则为-1。第一次迭代过后,为初值,第二次迭代中,-1.7其实是-1.75进行了舍弃。比如[0][1]号格子:向上,向右,向下,都是获得reward=-1,而向左为0。所以,(0±1±1±1)/4±1=-1.75。在第三次迭代中,[0][2]个格子中,向左获得-0.7的reward,向右和向下和向上都是获得-1的reward。所以,(-0.7±1±1±1)/4±2=-2.925取整等于-2.9。
在这里插入图片描述在这里插入图片描述
policy改进
在这里插入图片描述
策略迭代的整体算法思想是:先通过value function计算出 V π V_\pi ,然后利用贪心算法得到policy的改进,得到 π \pi' ,从而不断的迭代,得到最后的最优policy
在这里插入图片描述

例子2

在这里插入图片描述
States:两个地点,每个地点有最多20辆车
Actions:两个地点一夜之间最多可以移动5辆车
Reward:获得的钱数
Transitions:汽车的归还和需求是随机的
在这里插入图片描述
图中每个5,4,3等等的条状区域表示针对区域内某个点,需要从A点移动到B点的车辆数为对应的数字
与上一个迷宫问题有点类似,也是先随机定义一个policy然后利用value值进行更新改进,直到q函数计算得到结果是最大的 V π ( s ) V_\pi(s) 则满足停止条件,所得到的最后policy是最优的policy
在这里插入图片描述

  1. 任意一个最优策略可以分成两部分:
    • 最优的下一步action
    • 在下一个 S S' 状态空间中也有最优的策略
  2. 得到的一个最优化准则:
    1. 所有的未来的状态,从 S S 是可达的
    2. π \pi policy达到最优值,根据value function,从 S S S S'

值迭代

如果我们知道子问题的答案,那么就可以通过值迭代的方法得到上一步的value function,也就是说值迭代的方法是从最终奖励开始的,并且采用逆向的方式构建
在这里插入图片描述与policy迭代不同的是,值迭代只是不断地更新value function,最终获得的value function即拥有最优的policy
瞬时的value function可能并不能代表一个明确的policy

总结

在这里插入图片描述


拓展

三个简单的ideas对于异步动态规划:

  1. 替代动态规划
  2. 优先级变化
  3. 实时动态规划
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/JasonSparrow_1/article/details/85721783