5.5 动态优化

5.5.1 变分法

在静态优化问题中,我们研究的是目标函数在可行域中的最值问题,其中自变量是可行域中的点。在动态优化问题中,我们研究的仍然是最值问题,但是自变量不再是点、而是函数,亦即在某个函数空间中找到使得目标“函数”取最大值的函数。这种将函数映射为实数的映射称为泛函,动态优化问题也称为泛函优化问题。

定义 5.5.1 (泛函) ΩRnF:ΩR为某个函数空间,称映射J:FR泛函

为了将函数映射为实数,泛函通常以积分的形式呈现。我们首先给出最常见的动态优化问题的定义:

定义 5.5.2 (动态优化) 动态优化问题是指求解(1)maxxFJ[x]s.t.x(a)=xa, x(b)=xb 其中(2)J[x]:=abL(t,x(t),x˙(t))dt 为目标泛函,x(a),x(b)为边界条件。

解决该类问题的基本方法是变分法,其核心思想是:假设x为最优解,考虑在x附近的函数x=x+εh,其中ε为足够小的正数,h为任意满足边界条件的扰动函数,即(3)hH:={h=x~xx,x~F} 对于本例而言,实际上有H:={hFh(a)=h(b)=0}。考虑扰动后的目标泛函(4)F(ε):=J[x+εh]=abL(t,x(t)+εh(t),x˙(t)+εh˙(t))dtε求导可得(5)dFdε=ab[Lxh(t)+Lx˙h˙(t)]dt

为了消除h˙,我们对上式中的第二项进行分部积分,结合边界条件h(a)=h(b)=0可得(6)abLx˙h˙(t)dt=Lx˙h(t)|ababddt(Lx˙)h(t)dt=abddt(Lx˙)h(t)dt 代入原式可得(7)dFdε=ab[Lxddt(Lx˙)]x=x+εhh(t)dt

ε=0可得(8)dFdε|ε=0=ab[Lxddt(Lx˙)]x=xh(t)dt 由于x为最优解,故J[x+εh]ε=0处取得极大值,亦即Fε=0处取得极大值,由此可得(9)ab[Lxddt(Lx˙)]x=xh(t)dt=0,hH 结合h的任意性,可得著名的Euler-Lagrange方程,即动态优化问题的一阶必要条件:

定理 5.5.3 (Euler-Lagrange方程) x为动态优化问题的最优解,则x满足Euler-Lagrange方程 (10)[Lxddt(Lx˙)]x=x=0

为了更好地应用变分法,我们引入变分的概念,即满足边界条件的函数值的微小变化(扰动函数),定义为

定义 5.5.4 (变分) 设函数x,x~F均满足某边界条件,称δx(t):=x~(t)x(t)Hx(t)变分

在上例中,δx(t)=h(t)即为x(t)的变分,满足δx(a)=δx(b)=0。类似微分(11)dJ(x,dx)=J(x)dx=limΔx0J(x+Δx)J(x)Δxdx=Δx=εdxlimε0J(x+εdx)J(x)ε 泛函J[x]的变分定义为

定义 5.5.5 J:FR为泛函,xF的变分为δxH,称 (12)δJ[x,δx]:=limε0J[x+εδx]J[x]ε=ddεJ[x+εδx]|ε=0=Jx[x]δx J[x]变分。在不引起歧义的情况下,通常可以省略[x,δx]

对于多元泛函而言,容易证明(13)δJ[x1,,xn,δx1,,δxn]=i=1nJxi[x1,,xn]δxi 需要特别注意的是,δxδx˙通常视作两个独立的变分。可以证明,变分具有以下性质:

定理 5.5.6 (变分的性质)

(1)

δc=0,其中c为常数。

(2)

α,βRδ(αJ1+βJ2)=αδJ1+βδJ2

(3)

δ(J1J2)=J1δJ2+J2δJ1

(4)

δ(J1J2)=J2δJ1J1δJ2J22,其中J20

(5)

变分与微分可交换,即δ(dJ)=d(δJ),由此可得(14)δ(dxdt)=d(δx)dt 上式常用于变分法的分部积分中。

(6)

变分与(定限)积分可交换,即(15)δ(abJ[x(t)]dt)=abδJ[x(t)]dt

对于上例中的动态优化问题,我们可以用变分重新推导Euler-Lagrange方程:(16)δJ[x,δx]=δabL(t,x(t),x˙(t))dt=abδL(t,x(t),x˙(t))dt=ab[Lxδx(t)+Lx˙δx˙(t)]dt=ab[Lxδx(t)+Lx˙d(δx(t))dt]dt=abLxδx(t)dt+Lx˙δx(t)|ababddt(Lx˙)δx(t)dt=ab[Lxddt(Lx˙)]δx(t)dtxJ的极大(小)值时,在x的邻域内应成立δJ[x,δx]0 (0),其中δx为满足边界条件的任意变分。不妨设xJ的极大值点(否则考虑J),设ε>0,取特殊的δx可得(17)δx=ε[Lxddt(Lx˙)]x=xδJ[x,δx]=εab[Lxddt(Lx˙)]x=x2dt0 因此(18)[Lxddt(Lx˙)]x=x=0

我们再介绍两个经典的例子。

例 5.5.7 (两点之间线段最短) 设平面上两点A(xa,ya), B(xb,yb),求连接A,B的线段中长度最短的C1曲线。

设曲线方程为y=y(x),则曲线长度为(19)S[y]=xaxb1+(dydx)2dx=:xaxbL(y,y)dx 由Euler-Lagrange方程可得(20)Lyddx(Ly)=0ddx(y1+y2)=0y1+y2=C,其中C为常数。解得y=k,其中k为常数,故最短曲线为直线段。

例 5.5.8 (最速降线) 设平面上两点A(l,h), B(0,0),求连接A,B的曲线,使得质点在重力作用下沿该曲线从AB所需时间最短。

设曲线方程为y=y(x),则质点在曲线上的速度为(21)v=2gy=dsdt=1+y2dtdxdtdx=1+y22gy 故质点从AB所需时间为(22)T[y]=0l1+y22gydx=:0lL(y,y)dx 由于L不显含x,由Euler-Lagrange方程可得(23)Lyddx(Ly)=Lydydxy(Ly)=y(LyLy)=0 故有(24)LyLy=1+y22gyyy2gy(1+y2)=12gy(1+y2)=C 其中C为常数,解得(25)y(1+y2)=k,k=12gC2dydx=±ky1x=±ykydy 作变量代换y=ksin2θ2,则有(26)x=±ksin2θ2dθ=±k(θ2sinθ2)+C1y=ksin2θ2=k2(1cosθ) 其中C1为常数。取正号并结合边界条件可得(27){x=k2(θsinθ)y=k2(1cosθ)θ[0,θa],{l=k2(θasinθa)h=k2(1cosθa) 上式即为最速降线的参数方程,其为摆线的一部分。

5.5.2 动态系统

动态系统的最优控制问题是指在动态系统的约束下,求解某个目标泛函的最优值。我们首先给出动态系统的定义:

定义 5.5.9 (动态系统) ΩRnURm,随时间演化的(一阶)动态系统由以下部分组成:

1.

时间t[0,T]

2.

状态空间ΩRn非空、状态变量x(t)Ω以及初始状态x(0)=x0

3.

控制空间URm非空、控制变量u(t)U

4.

由当前状态和控制变量决定的(一阶)状态方程 (28)x˙(t)=f(t,x(t),u(t)),x(t)Ω, u(t)U 其中f:[0,T]×Ω×URn称为系统的动力学函数,满足f,fx均连续。

控制变量的含义是每个时刻能施加到系统上的可控量(油门、推力、转矩、舵角、施加电压、消费率……)。动态系统的目标泛函通常不仅与系统演化的过程x(t)与控制变量u(t)有关,还与系统的终端状态x(T)有关,形式为:

定义 5.5.10 (目标泛函) 设动态系统由(Ω,U,f,x0,T)组成,定义其目标泛函为 (29)J[x,u,T]=Φ(x(T),T)+0TL(t,x(t),u(t))dt 其中L:[0,T]×Ω×UR为运行成本函数,Φ:Ω×[0,T]R为终端成本函数,满足L,Φ及其对x的一阶偏导数均连续。

动态系统的目标是通过调节控制变量u(t),使得系统状态x(t)沿着某条最优轨迹演化,从而使得某个目标泛函取得最优值。动态系统的最优控制问题定义如下:

定义 5.5.11 (最优控制问题) 设动态系统由(Ω,U,f,x0,T)组成,动态系统的最优控制问题是指求解(30)maxuUJ[x,u,T],s.t.x˙(t)=f(t,x(t),u(t)), x(0)=x0, t[0,T]

最优控制问题的一阶必要条件由Pontryagin极大值原理给出:

定理 5.5.12 (一阶必要条件·Pontryagin极大值原理) (x(t),u(t))为动态系统的最优解,定义系统的Hamilton函数为(31)H(t,x,u,λ)=L(t,x,u)+λf(t,x,u) 其中λ(t)Rn为伴随变量,则存在伴随变量λ(t),使得t[0,T],成立

1.

状态方程:(32)x˙(t)=Hλ(t,x(t),u(t),λ(t))=f(t,x(t),u(t))

2.

伴随方程:(33)λ˙(t)T=Hx(t,x(t),u(t),λ(t))=Lx(t,x(t),u(t))λ(t)Tfx(t,x(t),u(t))

3.

驻点条件(极大值条件):(34)H(t,x(t),u(t),λ(t))=maxuUH(t,x(t),u,λ(t)) U为开集且H关于u可微,则驻点条件可推出(35)Hu(t,x(t),u(t),λ(t))=0

4.

终端条件(横截性条件):取决于终端时间T和终端状态x(T)是否自由,具体如下:

  • T自由,则需补充(36)ΦT(x(T),T)+H(T,x(T),u(T),λ(T))=0 T完全自由意味着Φ不显含T,因此上式化简为H(T,x(T),u(T),λ(T))=0
  • xi(T)自由,则需补充(37)λi(T)=Φxi(x(T),T) xi(T)完全自由意味着Φ不显含xi(T),因此上式化简为λi(T)=0
  • xi(T)满足不等式约束xi(T)c,则需补充互补松弛条件(38)λi(T)Φxi(x(T),T),[λi(T)Φxi(x(T),T)](xi(T)c)=0
  • T固定或xi(T)满足等式约束xi(T)=c(即xi(T)固定),则无需补充对应的终端条件。

证明 考虑引入系统状态方程和伴随变量的增广泛函:(39)J~[x,u,λ,T]=Φ(x(T),T)+0T[L(t,x(t),u(t))+λ(t)(f(t,x(t),u(t))x˙(t))]dt 则应当有(40)δJ~[x,u,λ,T;δx,δu,δλ,δT]0,λ, δxH, δu, δλ, δT

首先固定T、认为x(T)自由,计算J~的变分可得(41)δJ~=Φx(x(T),T)δx(T)+0T[Lxδx+Luδu+λT(fxδx+fuδuδx˙)+δλT(fx˙)]dt 其中x的变分δx满足初始条件δx(0)=0。利用分部积分法消去δx˙可得(42)0TλTδx˙dt=λTδx|0T0Tλ˙Tδxdt=λ(T)Tδx(T)0Tλ˙Tδxdt 代入泛函的变分表达式中可得(43)δJ~=[Φx(x(T),T)λ(T)T]终端条件δx(T)+0T[(Lx+λTfx+λ˙T)伴随方程δx+(Lu+λTfu)驻点条件δu+(fx˙)T状态方程δλ]dt0 λF,取δx,δx(T),δu,δλ分别为正数ε乘以对应条件的表达式,可得各条件的表达式均为零,即(44){x˙(t)=f(t,x(t),u(t))λ˙(t)T=Lx(t,x(t),u(t))λ(t)Tfx(t,x(t),u(t))Lu(t,x(t),u(t))+λ(t)Tfu(t,x(t),u(t))=0λ(T)T=Φx(x(T),T)

由于驻点条件并不能保证u为最大值点,故需要进一步验证。严谨证明比较啰嗦,故仅在此叙述大致思路,详细证明参见附证。将增广泛函改写为Hamilton函数的形式,利用反证法:假设t0使得u(t0)并非最大值点,则可构造一个新的控制变量u~(t),使得在t0处Hamilton函数取得更大值,从而使得增广泛函取得更大值,与最优解的假设矛盾。

xi(T)满足等式约束xi(T)=c(即xi(T)固定),则δxi(T)=0,对应的终端条件无需补充。

xi(T)满足不等式约束xi(T)c,令δxi(T)以外的所有变分均为0,则有(45)δJ~=[λi(T)Φxi(x(T),T)]δxi(T)0 分两种情况讨论:

  • 不起作用约束:若xi(T)>c,则δxi(T)可取正负,故λi(T)=Φxi(x(T),T)
  • 起作用约束:若xi(T)=c,则δxi(T)0,故λi(T)Φxi(x(T),T)

综上所述,需补充互补松弛条件:(46)λi(T)Φxi(x(T),T),[λi(T)Φxi(x(T),T)](xi(T)c)=0

T自由,令JT处目标泛函J的极大值,则有(47)J(T)=Φ(x(T),T)+0T[L(t,x(t),u(t))+λ(t)T(f(t,x(t),u(t))x˙(t))]dt 由此得到关于T的一元函数,求导可得(48)dJdT=Φx(x(T),T)x˙(T)+ΦT(x(T),T)+L(T,x(T),u(T))+λ(T)T(f(T,x(T),u(T))x˙(T)) 利用终端条件可将上式化简为(49)dJdT=ΦT(x(T),T)+L(T,x(T),u(T))+λ(T)Tf(T,x(T),u(T))=ΦT(x(T),T)+H(T,x(T),u(T),λ(T)) 由于T为极大值点,故dJdT=0,由此可得自由终端时间的横截性条件。

附证(极大值条件) 增广泛函可改写为(50)J~=Φ(x(T),T)0Tλ(t)Tx˙(t)dt+0TH(t,x(t),u(t),λ(t))dt 代入x=xλ=λ,分别代入u,u,由于(x(t),u(t))为动态系统的最优解,故有(51)J~[x,u,λ,T]J~[x,u,λ,T]=0T[H(t,x(t),u(t),λ(t))H(t,x(t),u(t),λ(t))]dt0 采用反证法:假设t0[0,T]u~U使得(52)ε:=H(t0,x(t0),u~(t0),λ(t0))H(t0,x(t0),u(t0),λ(t0))>0 由于Hu~,u均关于其自变量连续,故存在足够小的正数δt,使得(53)|tt0|<δt{H(t,x(t),u~(t),λ(t))>H(t0,x(t0),u~(t0),λ(t0))ε3H(t,x(t),u(t),λ(t))<H(t0,x(t0),u(t0),λ(t0))+ε3H(t,x(t),u~(t),λ(t))H(t,x(t),u(t),λ(t))>ε3(54)u(t)={u~(t),t[t0δt,t0+δt]u(t),otherwise(55)00T[H(t,x(t),u(t),λ(t))H(t,x(t),u(t),λ(t))]dt=t0δtt0+δt[H(t,x(t),u~(t),λ(t))H(t,x(t),u(t),λ(t))]dtε32δt>0 矛盾!因此u为最大值点。

若令u=x˙,则动态系统的最优控制问题可退化为动态优化问题,从而Pontryagin极大值原理退化为Euler-Lagrange方程。

以上定理给出最优控制问题的一阶必要条件。若Hamilton函数H关于控制变量u严格凹,则驻点条件也是充分条件,即驻点即为最大值点。

定理 5.5.13 (一阶充分条件) (x(t),u(t),λ(t))满足Pontryagin极大值原理中的状态方程、伴随方程、驻点条件和终端条件,且动态系统满足:

  • 终端时间T固定。
  • Hamilton函数H(t,x,u,λ(t))关于联合变量(x,u)凹。
  • 终端成本函数Φ(x,T)关于x凹。

(x(t),u(t))为动态系统的最优解。

证明 泛函可改写为(56)J=Φ(x(T),T)+0T[H(t,x(t),u(t),λ(t))λ(t)Tx˙(t)]dt=Φ(x(T),T)λ(T)Tx(T)+0T[H(t,x(t),u(t),λ(t))+λ˙(t)Tx(t)]dt 代入伴随方程、终端条件可得(57)J=Φ(x(T),T)Φx(x(T),T)x(T)+0T[H(t,x(t),u(t),λ(t))Hx(t,x(t),u(t),λ(t))x(t)]dt 由于H关于(x,u)凹,Φ关于x凹,故成立(58)H(t,x,u,λ)H(t,x,u,λ)+Hx(t,x,u,λ)(xx)+Hu(t,x,u,λ)(uu)Φ(x(T),T)Φ(x(T),T)+Φx(x(T),T)(x(T)x(T)) 代入驻点条件,变形可得(59)H(t,x,u,λ)Hx(t,x,u,λ)xH(t,x,u,λ)Hx(t,x,u,λ)xΦ(x(T),T)Φx(x(T),T)x(T)Φ(x(T),T)Φx(x(T),T)x(T) 代入泛函表达式中可得JJ,其中J(x(t),u(t))处的目标泛函值,故(x(t),u(t))为动态系统的最优解。

若终端时间不固定,可通过重参数化将问题转化为固定终端时间的问题,从而应用上述充分条件。