Planning by Dynamic Programming

本文介绍了动态规划,它将大问题化解为小问题,在马尔可夫决策过程中常作规划用。阐述了策略迭代,利用贝尔曼方程迭代优化策略,还给出两个例子;也介绍了值迭代,从最终奖励逆向构建价值函数。最后提及异步动态规划的三个简单思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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_\piVπ,然后利用贪心算法得到policy的改进,得到π′\pi'π,从而不断的迭代,得到最后的最优policy
在这里插入图片描述

例子2

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

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

值迭代

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

总结

在这里插入图片描述


拓展

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值