5.5 动态优化

5.5.1 Euler-Lagrange方程

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

定义 5.5.1 (泛函) ΩRnF={f:Ω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.2 变分法

为了更好地解决动态优化问题,我们引入变分的概念,即满足边界条件的函数值的微小变化(扰动函数),定义为

定义 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˙通常视作两个独立的变分。

类似方向导数形式的多元一阶Taylor展开式:(14)J(x+Δx)=J(x)+JΔx(x)=dJ(x)(Δx)=J(x)Δx+o(Δx) 泛函J[x]的变分也可以表示为(15)J[x+δx]=J[x]+δJ[x,δx]+o(δx) 因此,函数x的变分δx的几何意义类似于方向Δx,表示“沿着δx方向移动的函数自变量”;而泛函J[x]的变分δJ[x,δx]的几何意义类似于方向导数JΔx(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),由此可得(16)δ(dxdt)=d(δx)dt 上式常用于变分法的分部积分中。

(6)

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

对于上例中的动态优化问题,我们可以用变分重新推导Euler-Lagrange方程:(18)δ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可得(19)δx=ε[Lxddt(Lx˙)]x=xδJ[x,δx]=εabLxddt(Lx˙)x=x2dt0 因此(20)[Lxddt(Lx˙)]x=x=0

5.5.3 变分法的应用

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

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

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