哈密顿-雅可比-贝尔曼方程(Hamilton-Jacobi-Bellman equation,简称HJB方程)是一个偏微分方程,是最佳控制的中心。HJB方程式的解是针对特定动态系统及相关成本函数下,可以有最小成本的控制实值函数。
若只在某一个区域求解,HJB方程是一个必要条件,若是在整个状态空间下求解,HJB方程是充分必要条件。其解是针对开回路的系统,但也允许针对闭回路系统求解。HJB方程也可以扩展到随机系统。
一些经典的变分问题,例如最速降线问题,可以用此方法求解。
HJB方程的基础是以1950年代由理查德·贝尔曼及其同仁提出的动态规划[1]。对应的离散系统方程式一般称为贝尔曼方程。在连续时间的结果可以视为由卡尔·雅可比及威廉·哈密顿提出,经典力学中哈密顿-雅可比方程的延伸。
考虑在时间
内,以下确定系统最佳控制的问题:
![{\displaystyle V(x(0),0)=\min _{u}\left\{\int _{0}^{T}C[x(t),u(t)]\,dt+D[x(T)]\right\}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ac325bdee2424bd18c2174f4e1da8b4d653dde66)
其中C[ ]为标量成本函数,D[ ]为计算其最终状态时效力时或经济值的函数,x(t)为系统状态向量,x(0)假设已知,及u(t)是想要求得的控制向量,在 0 ≤ t ≤ T。
此系统也需满足下式:
![{\displaystyle {\dot {x}}(t)=F[x(t),u(t)]\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75ed914d23651470383a9791606522f81bf11bea)
其中F[ ]可以根据状态向量决定向量后续的变化。
针对上述简单的系统,哈密顿-雅可比-贝尔曼微分方程如下:
![{\displaystyle {\dot {V}}(x,t)+\min _{u}\left\{\nabla V(x,t)\cdot F(x,u)+C(x,u)\right\}=0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/effd6c61ac89b4403669ed51e8d45ec6294b0bb1)
需符合以下条件
![{\displaystyle V(x,T)=D(x),\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f9e2a8f575164227d3c7405de2daa38a85d0c4d9)
其中
为向量a和b的内积,而
为梯度运算子。(注意:
表示
对
求导,非对
求导!)
上述PDE中的未知向量
是贝尔曼间接效用函数,表示从时间
,状态
开始控制系统,以最佳方式控制系统一直到时间
的成本。
HJB方程可以用以下的方式推导:假设
是最佳的成本函数,则根据理查·贝尔曼的贝尔曼方程,从时间t到t + dt,可得:
![{\displaystyle V(x(t),t)=\min _{u}\left\{\int _{t}^{t+dt}C(x(t),u(t))\,dt+V(x(t+dt),t+dt)\right\}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5624f385e26371f30002564ebf614cf3552f1a7a)
注意最后一项的泰勒展开式如下:
![{\displaystyle V(x(t+dt),t+dt)=V(x(t),t)+{\dot {V}}(x(t),t)\,dt+\nabla V(x(t),t)\cdot {\dot {x}}(t)\,dt+o(dt),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/20d9bfe8fc323f4cfcc4ec445e13841423fa9fb6)
其中o(dt)是泰勒展开式中的高阶项,若在等式两侧删除V(x(t), t),除以dt,并取dt趋近为零的极限,可得上述定义的HJB方程。
HJB方程一般会用逆向归纳法求解,也就是从
往前求解到
。
若对整个状态空间求解,HJB方程是最佳解的充份必要条件[2]。若可以求解
,就可以找到达到最小成本的控制
。
一般而言,HJB方程不会有一个传统光滑函数的解。为了这些情形发展了许多广义解的表示方式,包括皮埃尔-路易·利翁及迈克尔·克兰德尔的粘性解,Andrei Izmailovich Subbotin的极小化极大算法等。
上述的作法主要是应用贝尔曼的最优化原理,以及在时间上由最终时间倒推求解,针对随机控制问题也可以用类似的作法求最佳解。考虑以下的问题
![{\displaystyle \min \left\{\int _{0}^{T}C(t,X_{t},u_{t})\,dt+D(X_{T})\right\}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7e54b9cf7c2fa3f8e3896ad72b093d0eafb27d19)
此时
为随机过程,而
为控制变数。首先使用贝尔曼方程,再用伊藤引理将
展开,可以得到以下的随机HJB方程。
![{\displaystyle \min _{u}\left\{{\mathcal {A}}V(x,t)+C(t,x,u)\right\}=0,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fd7ffb16d7158f4f982e51de020ceb6510cbd127)
其中
为随机微分运算子,以下是最终时间的限制条件。
![{\displaystyle V(x,T)=D(x)\,\!.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9f1999852836a6785a1bd45bf961882ca802ccb6)
注意此时已没有随机性了。此例中后者的
不一定是原来方程式的解,它只是可能解之一,需要再作验证。此技巧常用在财务数学中,决定在市场中的最佳投资策略(例如像默顿的投资组合问题)。
下例是一个有线性随机动态特性的系统,有二次式的成本。若系统动态为
![{\displaystyle dx_{t}=(ax_{t}+bu_{t})dt+\sigma dw_{t},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/78ad2d462e3b9a2caf817173f45a75c247149b7b)
而成本以以下的速度累积
,则HJB方程为
![{\displaystyle -{\frac {\partial V(x,t)}{\partial t}}={\frac {1}{2}}q(t)x^{2}+{\frac {\partial V(x,t)}{\partial x}}ax-{\frac {b^{2}}{2r(t)}}\left({\frac {\partial V(x,t)}{\partial x}}\right)^{2}+{\frac {\sigma ^{2}}{2}}{\frac {\partial ^{2}V(x,t)}{\partial x^{2}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b0eba71c132804e8c3bf7be3905198408343c8a)
假设价值函数是二次式,可以将一般的Riccati方程用在价值函数的海森矩阵中,即为线性二次高斯控制(LQG控制)。
- ^ R. E. Bellman. Dynamic Programming. Princeton, NJ, 1957.
- ^ Dimitri P Bertsekas. Dynamic programming and optimal control. Athena Scientific, 2005.
- Dimitri P. Bertsekas. Dynamic programming and optimal control. Athena Scientific. 2005.