优化方法理论合集(10)——贝尔曼动态管理方法

1. 问题描述

给出如下条件

  1. 数学模型
    x ˙ i = f i ( t , x ⃗ , u ⃗ ) \dot x_i = f_i \left( t, \vec x, \vec u \right) x˙i=fi(t,x ,u )其中 dim ⁡ ( x ⃗ ) = n , dim ⁡ ( u ⃗ ) = m \dim \left( \vec x \right) = n, \dim \left( \vec u \right) = m dim(x )=n,dim(u )=m,且
    x ⃗ = [ x 1 , x 2 , ⋯   , x n ] , u ⃗ = [ u 1 , u 2 , ⋯   , u m ] \vec x = \left[x_1, x_2, \cdots, x_n \right], \vec u = \left[ u_1, u_2, \cdots, u_m \right] x =[x1,x2,,xn],u =[u1,u2,,um]
  2. 性能指标
    J = ∫ t 0 t k F ( x ⃗ , u ⃗ ) d t → min ⁡ J = \int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt \rightarrow \min J=t0tkF(x ,u )dtmin其中 t 0 t_0 t0已知 t k t_k tk未知。须注意:这里 J J J中只含有 x ⃗ , u ⃗ \vec x, \vec u x ,u ,不含有时间 t t t
  3. 边界条件
    S t a r t = { x 1 ( t 0 ) = x 10 x 2 ( t 0 ) = x 20 ⋮ x n ( t 0 ) = x n 0 E n d = { x 1 ( t k ) = x 1 k x 2 ( t k ) = x 2 k ⋮ x n ( t k ) = x n k Start = \begin{cases} x_1 (t_0) = x_{10} \\ x_2 (t_0) = x_{20} \\ \vdots \\ x_n (t_0) = x_{n0} \end{cases} \\ End = \begin{cases} x_1 (t_k) = x_{1k} \\ x_2 (t_k) = x_{2k} \\ \vdots \\ x_n (t_k) = x_{nk} \end{cases} Start=x1(t0)=x10x2(t0)=x20xn(t0)=xn0End=x1(tk)=x1kx2(tk)=x2kxn(tk)=xnk
  4. 控制量 u u u可以为任意状态,可以有限制,可以没有限制。
    但需要注意: u ⃗ = u ⃗ ( x ⃗ ) \vec u = \vec u \left( \vec x \right) u =u (x )状态量 x ⃗ \vec x x 的函数不再是时间 t t t的函数

2. 贝尔曼最优原理

贝尔曼最优原理
如上图所示,整条轨迹分成了左右两端, t ∈ [ t 0 , t 0 + Δ t ] t \in \left[ t_0, t_0 + \Delta t \right] t[t0,t0+Δt] t ∈ [ t 0 + Δ t , t k ] t \in \left[ t_0 + \Delta t, t_k \right] t[t0+Δt,tk]无论在第一段中使用何种控制、沿着何种轨迹运动,在第二段中,在最优控制作用下,轨迹应当沿着最优轨迹线运动,并到达期望状态。
Δ t → 0 \Delta t \rightarrow 0 Δt0,那么在整个时间区间上,轨迹就变成了最优轨迹。

从性能指标表达式上可以看出, J J J是和 x , u x, u x,u均相关的量。如果先只找出关于 x x x的最优指标,而假定 u u u不变,那么性能指标表达式可以写成
S ( x ⃗ ) = min ⁡ u ∫ t 0 t k F ( x ⃗ , u ⃗ ) d t (1) S \left( \vec x \right) = \min_u \int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt \tag{1} S(x )=umint0tkF(x ,u )dt(1)即: S S S x ⃗ \vec x x 的函数。

根据上图,可以把积分(1)写成2段:
∫ t 0 t k F ( x ⃗ , u ⃗ ) d t = ∫ t 0 t 0 + Δ t F ( x ⃗ , u ⃗ ) d t + ∫ t 0 + Δ t t k F ( x ⃗ , u ⃗ ∘ ) d t \int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt = \int _{t_0} ^{t_0 + \Delta t} F \left( \vec x, \vec u \right) dt + \int _{t_0 + \Delta t} ^{t_k} F \left( \vec x, \vec u^{\circ} \right) dt t0tkF(x ,u )dt=t0t0+ΔtF(x ,u )dt+t0+ΔttkF(x ,u )dt须注意:根据贝尔曼最优原理的表述,第二段中的 u u u应当是最优控制 u ∘ u^{\circ} u,而第一段中的 u u u不是最优控制。

既然第二段中的 u u u是最优控制 u ∘ u^{\circ} u,那么第二段可以写成
∫ t 0 + Δ t t k F ( x ⃗ , u ⃗ ∘ ) d t = S ( x ⃗ ( t 0 + Δ t ) ) \int _{t_0 + \Delta t} ^{t_k} F \left( \vec x, \vec u^{\circ} \right) dt = S \left( \vec x \left( t_0 + \Delta t \right) \right) t0+ΔttkF(x ,u )dt=S(x (t0+Δt))对于 S S S有如下性质:

  • S S S是连续平滑的微分方程;
  • S S S的表达式未知。
  • 梯度性质:
    ∂ S ∂ x ⃗ = [ ∂ S ∂ x 1 , ∂ S ∂ x 2 , ⋯   , ∂ S ∂ x n ] (2) \frac{\partial S}{\partial \vec x} = \left[ \frac{\partial S}{\partial x_1}, \frac{\partial S}{\partial x_2}, \cdots, \frac{\partial S}{\partial x_n} \right] \tag{2} x S=[x1S,x2S,,xnS](2)

3. 贝尔曼方程

如果 ∂ S ∂ x i \frac{\partial S}{\partial x_i} xiS存在,那么具有贝尔曼方程
min ⁡ u [ F ( x ⃗ , u ⃗ ) + ∂ S ∂ x ⃗ ⋅ f ⃗ ( x ⃗ , u ⃗ ) ] = 0 (3) \min_u \left[ F \left( \vec x, \vec u \right) + \frac{\partial S}{\partial \vec x} \cdot \vec f \left( \vec x, \vec u \right) \right] = 0 \tag{3} umin[F(x ,u )+x Sf (x ,u )]=0(3)
min ⁡ u [ F ( x ⃗ , u ⃗ ) + ∑ i = 1 n ∂ S ∂ x i ⋅ f i ( x ⃗ , u ⃗ ) ] = 0 (4) \min_u \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right] = 0 \tag{4} umin[F(x ,u )+i=1nxiSfi(x ,u )]=0(4)式(4)是性能指标极值存在的必要条件

须注意,对于 S S S
S ( x ⃗ ( t k ) ) = 0 (5) S \left( \vec x (t_k ) \right) = 0 \tag{5} S(x (tk))=0(5)

4. 求解步骤

利用贝尔曼方程来求出最优控制 u ∘ u^{\circ} u
∂ [ F ( x ⃗ , u ⃗ ) + ∑ i = 1 n ∂ S ∂ x i ⋅ f i ( x ⃗ , u ⃗ ) ] ∂ u ⃗ = 0 (6) \frac{\partial \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right]}{\partial \vec u} = 0 \tag{6} u [F(x ,u )+i=1nxiSfi(x ,u )]=0(6)仍然需要强调,这里得出的是 u ⃗ = u ⃗ ∘ ( x ⃗ ) \vec u = \vec u ^{\circ} (\vec x ) u =u (x ) x x x的函数,不是 t t t的函数。

再将得出的 u ∘ ( x ⃗ ) u^{\circ}(\vec x) u(x )代入(4)式即可得出最优轨迹 x ∘ x^{\circ} x

5. 例题

给出如下例题
{ x ˙ 1 = x 2 x ˙ 2 = u x ⃗ ( t k ) = [ 0 , 0 ] J = ∫ t 0 t k ( x 1 2 + x 2 2 + u 2 ) d t → min ⁡ t 0 = 0 \begin{cases} \dot x_1 = x_2 \\ \dot x_2 = u \end{cases} \\ \vec x (t_k) = [0, 0] \\ J = \int _{t_0} ^{t_k} \left( x_1^2 + x_2^2 + u^2 \right) dt \rightarrow \min \\ t_0 = 0 {x˙1=x2x˙2=ux (tk)=[0,0]J=t0tk(x12+x22+u2)dtmint0=0
□ \square \qquad 写出贝尔曼方程
min ⁡ u [ F ( x ⃗ , u ⃗ ) + ∑ i = 1 n ∂ S ∂ x i ⋅ f i ( x ⃗ , u ⃗ ) ] = F + ∂ S ∂ x 1 f 1 + ∂ S ∂ x 2 f 2 = ( x 1 2 + x 2 2 + u 2 ) + ∂ S ∂ x 1 x 2 + ∂ S ∂ x 2 u = 0 \begin{aligned} \min_u \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right] &= F + \frac{\partial S}{\partial x_1} f_1 + \frac{\partial S}{\partial x_2} f_2 \\ &= \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u \\ &= 0 \end{aligned} umin[F(x ,u )+i=1nxiSfi(x ,u )]=F+x1Sf1+x2Sf2=(x12+x22+u2)+x1Sx2+x2Su=0代入(6)式
∂ [ ( x 1 2 + x 2 2 + u 2 ) + ∂ S ∂ x 1 x 2 + ∂ S ∂ x 2 u ] ∂ u = 0 \frac{\partial \left[ \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u \right]}{\partial u} = 0 u[(x12+x22+u2)+x1Sx2+x2Su]=0
2 u + ∂ S ∂ x 2 = 0 ⟹ u ∘ = − 1 2 ∂ S ∂ x 2 2u + \frac{\partial S}{\partial x_2} = 0 \\ \Longrightarrow u ^{\circ} = - \frac{1}{2} \frac{\partial S}{\partial x_2} 2u+x2S=0u=21x2S可见 u ∘ u^{\circ} u S S S x 2 x_2 x2的导数有关。

u ∘ u^{\circ} u代入到贝尔曼方程中
( x 1 2 + x 2 2 + u 2 ) + ∂ S ∂ x 1 x 2 + ∂ S ∂ x 2 u = [ x 1 2 + x 2 2 + ( − 1 2 ∂ S ∂ x 2 ) 2 ] + ∂ S ∂ x 1 x 2 + ∂ S ∂ x 2 ( − 1 2 ∂ S ∂ x 2 ) = 0 \begin{aligned} \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u &= \left[ x_1^2 + x_2^2 + \left( - \frac{1}{2} \frac{\partial S}{\partial x_2} \right)^2 \right] + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} \left( - \frac{1}{2} \frac{\partial S}{\partial x_2} \right) = 0 \end{aligned} (x12+x22+u2)+x1Sx2+x2Su=[x12+x22+(21x2S)2]+x1Sx2+x2S(21x2S)=0化简得
x 1 2 + x 2 2 − 1 4 ( ∂ S ∂ x 2 ) 2 + ∂ S ∂ x 1 x 2 = 0 (7) x_1^2 + x_2^2 - \frac{1}{4} \left( \frac{\partial S}{\partial x_2} \right) ^2 + \frac{\partial S}{\partial x_1 }x_2 = 0 \tag{7} x12+x2241(x2S)2+x1Sx2=0(7)具有平方形式。令 S S S亦具有平方形式:
S ( x ⃗ ) = C 1 x 1 2 + C 2 x 1 x 2 + C 3 x 2 2 S \left( \vec x \right) = C_1 x_1^2 + C_2 x_1 x_2 + C_3 x_2^2 S(x )=C1x12+C2x1x2+C3x22
{ ∂ S ∂ x 1 = 2 C 1 x 1 + C 2 x 2 ∂ S ∂ x 2 = 2 C 3 x 2 + C 2 x 1 \begin{cases} \frac{\partial S}{\partial x_1} = 2C_1 x_1 + C_2 x_2 \\ \frac{\partial S}{\partial x_2} = 2C_3 x_2 + C_2 x_1 \end{cases} {x1S=2C1x1+C2x2x2S=2C3x2+C2x1代入(7)式解得
{ C 2 = 2 , − 2 C 3 = 3 , − 3 C 1 = 3 , − 3 \begin{cases} C_2 = 2, -2 \\ C_3 = \sqrt 3, - \sqrt 3 \\ C_1 = \sqrt 3, - \sqrt 3 \end{cases} C2=2,2C3=3 ,3 C1=3 ,3
S ( x ⃗ ) = 3 x 1 2 + 2 x 1 x 2 + 3 x 2 2 或 − 3 x 1 2 + 2 x 1 x 2 − 3 x 2 2 S \left( \vec x \right) = \sqrt 3 x_1^2 + 2 x_1 x_2 + \sqrt 3 x_2^2 \quad 或 \quad- \sqrt 3 x_1^2 + 2 x_1 x_2 - \sqrt 3 x_2^2 S(x )=3 x12+2x1x2+3 x223 x12+2x1x23 x22
u ∘ = − 1 2 ∂ S ∂ x 2 = − 3 x 2 − x 1 或 3 x 2 − x 1 u^{\circ} = - \frac{1}{2} \frac{\partial S}{\partial x_2} = - \sqrt 3 x_2 - x_1 \quad 或 \quad \sqrt 3 x_2 - x_1 u=21x2S=3 x2x13 x2x1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值