6

【动态最优化】变分法

 2 years ago
source link: https://www.guofei.site/2018/12/09/calculus_of_variations.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【动态最优化】变分法

2018年12月09日

Author: Guofei

文章归类: 5-6-最优化 ,文章编号: 7401


版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2018/12/09/calculus_of_variations.html

Edit

动态最优化有3个板块:

minV[y]=∫T0F(t,y(t),y′(t))
s.t. y(0)=A,y(T)=Z

最优控制理论增加了一个控制变量u(t)
minV[y]=∫T0F(t,y(t),y′(t),u(t))
s.t. y(0)=A,y(T)=Z,y′(t)=f[t,y(t),u(t)]

(动态规划问题)

问题定义

要解决这么一种特殊的泛函的最值问题
V[y]=∫T0F[t,y(t),y′(t)]dt
s.t. y(0)=A,y(T)=Z

最优化目标

  1. V[y]=∫T0F[t,y(t),y′(t)]dt
  2. 有时候,最优化目标只取决于终止点的位置,所以不需要积分,因为不去要过程的加总
    V[y]=G(T,y(T))
  3. 有时候,最优化的目标是过程加结果,
    V[y]=∫T0F[t,y(t),y′(t)]dt+G[T,y(T)]

以上1,2,3 分别称为 标准问题,Mayer 问题,Bolza问题
实际上,2和3可以转化为1(证明提要,定义一个新变量z(T)=G(t,y(t)),且z(0)=0,那么∫T0z′(t)dt=G[T,y(T)])

所以,优化目标的一般形式是V[y]=∫T0F[t,y(t),y′(t)]dt

边界条件

1. 固定终止点问题

命令y(0)=A,y(T)=Z(T,A,Z都是事先给定的)

2. 垂直终止线

给定终止时间T,但终止状态是自由的
固定时间水平问题,固定时间问题 (fixed-time-horizon problem),垂直终止线问题(vertical-terminal-line problem)
例如,一年内利润最大化的问题

3. 水平终止线

给定终止状态,但终止时间是自由的
固定端点问题 (fixed-endpoint problem),horizonal-terminal-line problem
例如,以最小成本生产一批材料

4. 一般终止线

终止状态是可变的,被一个约束方程约束X=ϕ(T)
比如,客户想在完工日期和完工质量之间做一个 tradeoff

变分法的推导

对于问题:
minV[y]=∫T0F(t,y(t),y′(t))
s.t. y(0)=A,y(T)=Z
要求可行集y平滑,F二次可微

技术1:扰动

定义一个扰动(perturbing)曲线p(t),要求p(0)=p(T)=0
假设最优路径是y∗
任意y(t)=y∗(t)+εp(t)
泛函V[y]又可以看做V=V(ε)
那么必定有dVdε∣ε=0=0时,取得极值

技术2:Leibniz法则

假设I(x)=∫b(x)a(x)f(x,t)dt
那么dI(x)dx=f(a(x))a′(x)−f(b(x))b′(x)+∫b(x)a(x)fx(x,t)dt

构建欧拉方程

step1:
y(t)=y∗(t)+εp(t)
dV(ε)dε
=∫T0∂F∂εdt(Leibniz法则)
=∫T0(∂F∂ydydε+∂F∂y′dy′dε)dt(链式法则)
=∫T0Fyp(t)dt+∫T0Fy′p′(t)dt=0

step2:
对上式第二部分进行 分部积分
∫T0Fy′p′(t)dt=Fyp(t)∣T0−∫T0p(t)dFy′dtdt
=−∫T0p(t)dFy′dtdt
所以,dV(ε)dε=∫T0p(t)[Fy−ddtFy′]dt=0

step3:
考虑到p(t)也是任意给出的,所以
Fy−ddtFy′=0,t∈[0,T](欧拉方程)

step4:
对于事先给定的F(t,y,y′)
dFy′dt=∂Fy′∂t+∂Fy′∂ydydt+∂Fy′∂tdy′dt
=Fty′+Fyy′y′(t)+Fy′y′y′‘(t)
因此,Fy′y′y′‘(t)+Fyy′y′(t)+Fty′−Fy=0,t∈[0,T](欧拉方程)

对于事先给定的F,上面是一个关于y(x)的偏微分方程,解出这个方程,并且注意到边界条件,就可以得到最终结果了。

1. 特殊的欧拉方程(化简)

F(t,y′),欧拉方程是Fy′=C
F(y,y′),欧拉方程是d(y′Fy′−F)/dt=0
F(y′),欧拉方程为Fy′y′y′‘(t)=0,两项都可以为0,分别都解出直线族
F(t,y),欧拉方程Fy=0不是一个微分方程,而是一个通常的方程,边界条件要巧合才有解。

2. 多变量欧拉方程

对于含多个状态变量的情况,
V[y1,…,yn]=∫T0F(t,y1,…,yn,y′1,…y′n)dt
用同样方法,得到欧拉方程
Fyj−ddtFy′j=0(一组)

3. 含高阶导数的欧拉方程

对于含高阶导数的情况,
V[y]=∫T0F(t,y,y′,y′‘,…,y(n))
有两种思路,
一是引入新变量,例如z≡y′,从而把问题转化为多状态变量的情况
或者模仿欧拉方程的推导得到Fy−ddtFy′+d2dt2Fy″−…+(−1)ndndtnFy(n)=0

一般横截条件

这里,让边界条件的终点不固定。

minV[y]=∫T0F(t,y(t),y′(t))
s.t. y(0)=A,y(T)=yT(T,yT自由)

T=T∗+εΔT
y(t)=y∗(t)+εp(t)
其中,ΔT是实现给定的数
p(0)=0

我们想要dVdε=0

dVdε=∫T(ε)0∂F∂εdt+F[T,y(T),y′(T)]dTdε

对于前项,用类似的分步积分法
前项=∫T0p(t)[Fy−ddtFy′]+p(T)[Fy′]t=T
后项=[F]t=TΔT

考虑到dV/dt=0, 有∫T0p(t)[Fy−ddtFy′]dt+p(T)[Fy′]t=T+[F]t=TΔT=0

又有p(T)=ΔyT−y′(T)ΔT(这一步没理解)

代入后2项得到[F−y′Fy′]t=TΔT+[Fy′]t=TΔyT=0
而前1项是上面的欧拉方程Fy−ddtFy′=0

1. 垂直终止线问题

最终时间是固定的,最终状态是任意的.
也就是说,ΔT=0,ΔyT 任意

边界条件化简为[Fy′]t=T=0

2. 水平终止线问题

最终状态固定,最终时间不固定.
也就是说,ΔT任意,ΔyT=0

边界条件简化为[F−y′Fy′]t=T=0

3. 终止曲线

终止时间和终止点都不确定,而是满足一个约束yT=ϕ(T)

所以,ΔyT=ϕ′ΔT
把上式代入到边界条件中,化简得到[F+(ϕ′−y′)Fy′]t=T=0

4. 截断的垂直终止线

终止线是垂直的,但是有个最大值约束
ΔT=0,yT≥ymin

[Fy′]t=TΔyT=0是一个条件 有两种情况

  1. y∗T>ymin,此时,正确解的周围都是可行路径,ΔyT≡yT−y∗T可正可负,因此,问题的条件是[Fy′]t=T=0
  2. y∗T=ymin,此时,允许的扰动ΔyT≥0

对于V最大化的问题,[yy′]t=T≤0,y∗T≥ymin,(Y∗−ymin)[Fy′]t=T=0
对于V最小化的问题,[yy′]t=T≥0,y∗T≥ymin,(Y∗−ymin)[Fy′]t=T=0

5. 截断水平终止线

增加限制条件T≤Tmax 对于V最大化的问题,[F−y′Fy′]t=T≥0,T∗≤Tmax,(T∗−Tmax)[F−y′Fy′]t=T=0
增加限制条件T≤Tmax 对于V最小化的问题,[F−y′Fy′]t=T≤0,T∗≤Tmax,(T∗−Tmax)[F−y′Fy′]t=T=0

无限水平

前面的讨论中,时间区间都是有限的。这里讨论无限时间内的动态最优化问题。
目标泛函V[y]=∫+∞0F(t,y,y′)dt

上一部分的一般横截条件的结论是,
解是欧拉方程Fy−ddtFy′=0
边界条件[F−y′Fy′]t=TΔT+[Fy′]t=TΔyT=0

对于无限时间,欧拉方程一样,边界条件变成
[F−y′Fy′]t→+∞ΔT+[Fy′]t→+∞ΔyT=0

对于第一项ΔT不为0,有limt→+∞(F−y′Fy′)=0
对于第二项,如果问题给定了终止状态limt→+∞y(t)=y∞=常数,那么第二项必然为零(因为ΔyT=0),不再需要终止条件
对于第二项,如果终止状态是自由的,那么需要终止条件limt→+∞Fy′=0

参考文献

【美】蒋中一:《动态最优化基础》,中国人民大学出版社
莫顿,南茜:《动态优化:经济学和管理学中的变分法和最优控制》,中国人民大学出版社


您的支持将鼓励我继续创作!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK