运筹学状态转移方程例子_强化学习第4期:H-J-B方程

1b16957740a45ceddc5c1ea82dabea8d.png

在上一篇文章中,我们介绍了一种最简单的MDP——s与a都是有限的MDP的求解方法。其中,我们用到了动态规划的思想,并且推出了“策略迭代”、“值迭代”这样的方法。今天,我们要来讲更加一般的最优控制问题——t、a与s都是连续的问题。我们仍然假定我们已经清清楚楚知道环境与目标。我们将介绍求解的方法,并引出Hamilton-Jacobi-Bellman方程(简称H-J-B方程)。其中,H-J-B方程是一个t连续定义下的方程,它的离散t的版本被称作Bellman方程。这在强化学习中是极其重要的。

最优控制问题

在最优控制中,我们一般用x来代表状态,用u来代表“控制”,即可以人为输入的东西,和MDP中的动作a是同一个概念。另外,在最优控制中,我们一般不是尝试“极大化奖励”,而是尝试“极小化损失”,也就是说,我们的目标往往是用一个求极小化的形式表现出来(只要加上一个负号就可以实现二者的转化)。除此之外,最优控制与MDP最大的不同在于其t是连续的。在进行了概念的对应之后,最优控制的逻辑和MDP都是一样的。

按理说,s与a是连续的时候,也可以将动作、状态的转移建立为一个概率方程。例如给出在

采取
之后,下一个状态
的连续概率分布。但是在最优控制中,t是一个连续的变量,状态转移一般采用微分方程
的形式来表示。为简单起见,我们本章中只讨论没有随机性的情况。

一般的最优控制问题有如下几部分组成(用x记状态、用u记控制/动作)。首先是给定初始与终止的时间

(有些情况下终止时间不是给定的)、初始的状态
,然后,给出状态的转移关系:

如果问题是time-invariant的,则可以去掉t变量,即变成

。函数a记录了状态x与u之间的转移关系,常常被称为“动力系统”(Dynamic),和MDP中的“环境”相对应,不过没有随机性。这也就是说,对于确定的初始状态
,只要控制的路径
是确定的,则整个过程中的
都是确定的。

问题的目标是极小化损失函数:

同理,对于time-invariant的问题,f中的t变量可以省略。作为目标的损失函数分成两个部分,一个是在路径上累积损失,用f记录,另一个是最终状态对应的损失,用H记录。路径上的累积损失意思是在时间微元

之间,损失为
记录。最终状态对应的损失则描述最终状态的好坏。我们相信,最终状态是重要的,所以不能只用一个微元来描述,而是要单独用H来衡量。

很多问题可以转化为最优控制问题。例如对于一个在平地上开汽车的问题,限定一定时间内(截止为

)从出发点到终点。状态可以是当前位置、当前速度,以及当前加速度的三维向量。而控制可以是油门与刹车的二维向量。问题的Dynamic为位置、速度、加速度瞬时之间的转移关系,可以用一个微分方程表示出来。而损失则考虑的是耗油量与耗费的时间——在路上的每一个瞬间,汽车的耗油量都与当前速度与加速度有关,总的耗油量由积分得出;另外,我们希望越早到达越好,越晚则损失越大。这个量是值得重视的,所以不能将其作为一个最终时刻
附近微元
内的损失,而应该将其特别拿出来专门讨论。综合以上,我们可以得到一个基本的最优控制问题:

7db44839510df96c26fa46689ac5dc66.png

有了最优控制问题之后,我们当然可以开始对其进行求解。这里的t、a与s都是连续的,而对于状态转移方程函数

以及表示损失的函数f与H,我们可能对其进行简单的建模,例如认为位移、速度与加速度之间就是线性的关系。但是,我们也可以考虑更复杂的现实因素,例如汽车受到的阻力与速度有关、在各个速度档位油门性能不一样等等,继而将问题建模为很复杂、高度非线性的、time-varing的模型。对于这样的问题,我们恐怕根本无法求出其解析解,只能将x与u离散化,以求其数值解。

作为最优控制的例子,我们可以先考虑一种最简单的、可以求出解析解的最优控制问题。那么,怎么才算是“最简单”呢?
首先,我们希望Dynamic
是线性的,并且问题是time-invariant的。即Dynamic是
。某种意义上,如果让Dynamic“稍微复杂一些”,比如是一个二次函数,问题就很可能求不出解析解。因为这会对应于一个ode理论中经典的里卡蒂方程(Ricatti Equation),有很大概率没有解的解析式。所以,我们只能将Dynamic设定为线性的。

然后考虑损失函数

。由于这是我们要极小化的目标,如果它是线性的,就会存在没有最小值的情况,所以说“不能太简单了”。我们只能设定其为“次简单”的正定二次函数的形式,并当然希望它也是time-invariant的。即
,其中
是正定矩阵。一种更加简单,也很常见的情况是忽略状态与控制的交错项
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值