帕累托最优生活例子_【强化学习与最优控制】笔记(二)随机性问题的动态规划...
0 写在前面的
上周我更新了第一篇关于强化学习与最优控制的笔记,整体反响还不错。我打算大约一周更新一篇文章。不得不说这本教材写得还真是蛮好的,推荐大家购买纸质版的(这个是影印版的,比英文原本要便宜不少),因为电子版的内容不是非常完整。
上一期的笔记是确定性问题的动态规划,忘记的小伙伴可以再复习一下:
王源:【强化学习与最优控制】笔记(一)确定性问题的动态规划zhuanlan.zhihu.com
1 离散时间动态系统(随机性问题)
离散时间动态系统形式如下:
其中
相比上一节讲过的确定性系统来说主要是增加了
2 随机性问题和确定性问题的主要区别
那么采用动态规划来求解随机性问题和上节所讲的确定性问题有何不同呢?主要有两点不同:
其一,随机性问题是要求解的是最优的 policies 序列(在控制理论中被称为 反馈控制或者闭环控制),而确定性问题仅仅需要求解一个最优的值即可。
policies 序列定义如下
也就是说在随机性问题里边,我们要找出的是一个决策的规则和法则,这个法则就是policy(在控制理论中就叫做control law),而并不是直接给出决策变量的值。那为什么在带有随机性的问题里边我们要找的是policy呢?而不能像之前确定性问题那样直接去找决策变量的值呢,而是要绕一个弯子呢?
答案就是因为整个系统有干扰(随机)因素的存在,我们就必须要利用当前系统的状态信息
我这里举个蒸馒头的例子来说明这个问题:在没有任何干扰一切的一切都非常完美的情况下,需要蒸十分钟馒头就熟了。那此时我们只需要设置一个定时器让炉子加热十分钟,十分钟后断掉,馒头就熟了。
但实际系统总是会有一些干扰存在的,例如蒸馒头的时候蒸汽把锅盖顶歪了,让锅盖没有盖好很多蒸汽漏了出来,如果还是按照十分钟来蒸,很可能馒头就还没有熟,又例如蒸馒头的过程中 火力突然比预想的变大或者变小了,那同样也会影响蒸馒头的时间。这些意外干扰是在蒸馒头的过程中产生的,并不能预先知晓,所以就可以看做是
蒸了九分钟的时候 就尝一下馒头熟了没 从本质上来说就是去拿系统当前
policy的精髓在于我们可以利用当前的系统信息
熟悉控制理论的童鞋也大致会知道这个
其二,随机性问题的目标函数是带有期望的,而确定性问题是没有期望的。
这一点很好理解了,有随机变量肯定就有期望了。若给定初始状态
则在
这里需要看清楚期望里边
3 动态规划算法求解随机性有限时间问题
由此给出确定性有限时间问题的动态规划算法如下
对于
对于
若
算法部分和确定性问题其实差异不大,主要的区别在本文第2节已经介绍过了,所以我就不再把教科书的公式都抄过来了。关于动态规划算法求解确定性有限时间问题可以看上一篇笔记:
王源:【强化学习与最优控制】笔记(一)确定性问题的动态规划zhuanlan.zhihu.com
其余部分对照教材1.2节Stochastic Dynamic Programming去看都没有什么难度。
需要注意的是针对大多数问题而言,无论是随机还是确定性问题 ,想要精确计算出
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)