优化方法理论合集(1)——最简单问题

1. 问题背景

首先来看如何定义一个最优化问题。
一个最优化问题不可或缺4个条件

  1. 优化器,在系统中起到优化的作用。
  2. 数学模型。系统的数学模型一般可以用以下形式描述:
    { x ˙ 1 = f 1 ( t , x ⃗ , u ⃗ ) x ˙ 2 = f 2 ( t , x ⃗ , u ⃗ ) ⋮ x ˙ m = f n ( t , x ⃗ , u ⃗ ) \begin{cases} \dot x_1 = f_1 \left( t, \vec x, \vec u \right) \\ \dot x_2 = f_2 \left( t, \vec x, \vec u \right) \\ \vdots \\ \dot x_m = f_n \left( t, \vec x, \vec u \right) \end{cases} x˙1=f1(t,x ,u )x˙2=f2(t,x ,u )x˙m=fn(t,x ,u )此种形式称为柯西形式
  3. 性能指标,一般记为 J J J,它表征了以何种方式来衡量优化的程度。
    一般地,性能指标 J J J还可以具有以下3种形式:
    3.1) 拉格朗日形式
    J = ∫ t 0 t k F ( t , x ⃗ , x ⃗ ˙ , u ⃗ ) d t → e x t r . , t ∈ [ t 0 , t k ] J = \int _{t_0} ^{t_k} F \left( t, \vec x, \dot {\vec x}, \vec u \right) dt \rightarrow extr., \quad t \in \left[ t_0, t_k \right] J=t0tkF(t,x ,x ˙,u )dtextr.,t[t0,tk]其中 e r t r ertr ertr表示 J J J趋于极值 F F F为被积函数。
    值得注意的是,整个积分部分 ∫ t 0 t k F d t \int _{t_0} ^{t_k} F dt t0tkFdt被称为泛函数
    拉格朗日形式最常见,多体现在对快速性有要求的系统中。如,对时间有要求(一般要求时间最短)的任务中就有
    J = ∫ t 0 t k 1 d t = t k − t 0 = Δ t → m i n J = \int _{t_0} ^{t_k} 1 dt = t_k - t_0 = \Delta t \rightarrow min J=t0tk1dt=tkt0=Δtmin
    3.2) 迈耶尔形式
    J = Φ ( x ⃗ ( t 0 ) , x ⃗ ( t k ) ) → e x t r . J = \Phi \left( \vec x \left( t_0 \right), \vec x \left( t_k \right) \right) \rightarrow extr. J=Φ(x (t0),x (tk))extr.此种形式不是积分型的,因此称为端点型,仅取决于 x ( t 0 ) x(t_0) x(t0) x ( t k ) x(t_k) x(tk)两个边界值。
    3.3) 波尔茨型
    J = ∫ t 0 t k F ( t , x ⃗ , x ⃗ ˙ , u ⃗ ) d t + Φ [ x ( t 0 ) , x ( t k ) ] → e x t r . J = \int _{t_0} ^{t_k} F \left( t, \vec x, \dot {\vec x}, \vec u \right) dt + \Phi \left[ x(t_0), x(t_k) \right] \rightarrow extr. J=t0tkF(t,x ,x ˙,u )dt+Φ[x(t0),x(tk)]extr.这种形式是拉格朗日型和迈耶尔型的组合形式,既含有积分项,也含有端点项。
  4. 优化算法。这一部分即为重点部分,将在本次及后续笔记分享中逐一介绍。

2. 最简单问题

最简单问题示意图
如上图所示,设 x ∘ ( t ) x^{\circ}(t) x(t)为最优轨迹,起点为 x ( t 0 ) x(t_0) x(t0),终点为 x ( t k ) x(t_k) x(tk)。任务目标是寻找一条最优路径,从 x ( t 0 ) x(t_0) x(t0)出发,到 x ( t k ) x(t_k) x(tk)截止(即穿过两点),并满足一定的其他要求或约束。

在寻找该最优路径的过程中,可能得到很多条连接起点和终点的轨迹,它们统称为曲线簇,具有以下形式:
x ( t ) = x ∘ ( t ) + α ⋅ δ x ( t ) (1) x(t) = x^{\circ}(t) + \alpha \cdot \delta x(t) \tag{1} x(t)=x(t)+αδx(t)(1)其中 δ x ( t ) \delta x(t) δx(t)是该最优轨迹的变分
(1)式可以这样理解:所得到的曲线簇是在最优轨迹 x ∘ ( t ) x^{\circ}(t) x(t)基础上,进行不同程度的偏离得到的,偏移量即为变分 δ x ( t ) \delta x(t) δx(t)。随着 α \alpha α取值不同,偏移量也不同,进而构成了一组曲线簇集合,而 x ∘ ( t ) x^{\circ}(t) x(t)正是其中最优的一条。

3. 欧拉公式

这里不加证明地引入欧拉公式
F x − d d t F x ˙ = 0 (2) F_x - \frac{d}{dt} F_{\dot x} = 0 \tag{2} FxdtdFx˙=0(2)其中 F x F_x Fx F F F关于 x x x的导数, F x ˙ F_{\dot x} Fx˙ F F F关于 x ˙ \dot x x˙的导数。
欧拉方程是 J J J的极值存在的必要但非充分条件

4. 具体算法步骤

下面列出最简单问题的具体算法步骤。

  1. 列出条件,包含如下部分:
    1-1) 时间区间 t ∈ [ t 0 , t k ] t \in \left[ t_0, t_k \right] t[t0,tk]
    1-2) 边界条件 x ( t 0 ) , x ( t k ) x(t_0), x(t_k) x(t0),x(tk)共2个;
    1-3) 拉格朗日判据
    J = ∫ t 0 t k F ( t , x , x ˙ ) d t → e x t r . J = \int _{t_0} ^{t_k} F \left( t, x, \dot x \right)dt \rightarrow extr. J=t0tkF(t,x,x˙)dtextr.以上三点也是最简单问题不可或缺的3个条件,缺一不可
  2. 算出偏导数,为欧拉方程做准备:
    F x = ∂ F ∂ x F x ˙ = ∂ F ∂ x ˙ \begin{aligned} F_x &= \frac{\partial F}{\partial x} \\ F_{\dot x} &= \frac{\partial F}{\partial \dot x} \end{aligned} FxFx˙=xF=x˙F
  3. 写出欧拉方程:
    F x − d d t F x ˙ = 0 F_x - \frac{d}{dt} F_{\dot x} = 0 FxdtdFx˙=0
  4. 用两个边界条件解欧拉方程。它是二阶微分方程,有唯一解
  5. 证明解的唯一性。

5. 例题

设性能指标为
J = ∫ 0 1 ( x 2 + τ 2 x ˙ 2 ) d t → e x t r . J = \int _0 ^1 \left( x^2 + \tau ^2 \dot x ^2 \right)dt \rightarrow extr. J=01(x2+τ2x˙2)dtextr.边界条件:
{ x ( 0 ) = 0 x ( 1 ) = x 1 \begin{cases} x(0) = 0\\ x(1) = x_1 \end{cases} {x(0)=0x(1)=x1时间区间:
t ∈ [ 0 , 1 ] t \in \left[ 0, 1 \right] t[0,1]要求找出最优的 x ∘ ( t ) x^{\circ} (t) x(t)

  1. F ( t , x , x ˙ ) = x 2 + τ 2 x ˙ 2 F \left( t, x, \dot x \right) = x^2 + \tau ^2 \dot x ^2 F(t,x,x˙)=x2+τ2x˙2
  2. 计算欧拉方程:
    F x = ∂ F ∂ x = 2 x F x ˙ = ∂ F ∂ x ˙ = 2 τ 2 x ˙ \begin{aligned} F_x &= \frac{\partial F}{\partial x} = 2x \\ F_{\dot x} &= \frac{\partial F}{\partial \dot x} = 2 \tau ^2 \dot x \end{aligned} FxFx˙=xF=2x=x˙F=2τ2x˙代入欧拉方程
    F x − d d t F x ˙ = 0 ⟹ 2 x − 2 τ 2 x ¨ = 0 F_x - \frac{d}{dt} F_{\dot x} = 0 \Longrightarrow 2x - 2 \tau ^2 \ddot x = 0 FxdtdFx˙=02x2τ2x¨=0解得
    x ( t ) = C 1 e 1 τ t + C 2 e − 1 τ t (1) x(t) = C_1 e^{ \frac{1}{\tau} t } + C_2 e ^{- \frac{1}{\tau} t } \tag{1} x(t)=C1eτ1t+C2eτ1t(1)由于 C C C取值不定,因此(1)式即为一组曲线簇
    为了确定 C C C,需要代入边界条件
    x ( 0 ) = 0 , x ( 1 ) = x 1 x(0) = 0, \quad x(1) = x_1 x(0)=0,x(1)=x1解出
    { C 1 = x 1 e 1 τ − e − 1 τ C 2 = − x 1 e 1 τ − e − 1 τ \begin{cases} C_1 &= \frac{x_1}{e^{\frac{1}{\tau} - e^{- \frac{1}{\tau}}}} \\ C_2 &= - \frac{x_1}{e^{\frac{1}{\tau} - e^{- \frac{1}{\tau}}}} \end{cases} C1C2=eτ1eτ1x1=eτ1eτ1x1那么就可以得到最优解
    x ∘ ( t ) = x 1 e 1 τ − e − 1 τ e 1 τ t − x 1 e 1 τ − e − 1 τ e − 1 τ t x^{\circ} (t) = \frac{x_1}{e^{\frac{1}{\tau} - e^{- \frac{1}{\tau}}}} e^{ \frac{1}{\tau} t } - \frac{x_1}{e^{\frac{1}{\tau} - e^{- \frac{1}{\tau}}}} e ^{- \frac{1}{\tau} t } x(t)=eτ1eτ1x1eτ1teτ1eτ1x1eτ1t
    之前提到过,欧拉方程仅仅是必要条件,只能保证已经达到极值,但并不能指出是最大值还是最小值。因此,这里附加一个条件进行判别,称为拉格朗日条件
    F x ˙ x ˙ = ∂ 2 F ∂ x ˙ 2 < 0 F _{\dot x \dot x} = \frac{\partial ^2 F}{\partial \dot x ^2 } < 0 Fx˙x˙=x˙22F<0,则 J → m a x J \rightarrow max Jmax
    F x ˙ x ˙ = ∂ 2 F ∂ x ˙ 2 > 0 F _{\dot x \dot x} = \frac{\partial ^2 F}{\partial \dot x ^2 } > 0 Fx˙x˙=x˙22F>0,则 J → m i n J \rightarrow min Jmin
    F x ˙ x ˙ = 0 F _{\dot x \dot x} = 0 Fx˙x˙=0,那么要么是欧拉方程解错了,要么是存在断点/不连续点

6. 最简单问题的几种情形

  1. F ( x , t ) F (x, t) F(x,t),即 F F F中不含有 x ˙ \dot x x˙。此时欧拉方程变为
    F x = 0 F_x = 0 Fx=0
  2. F ( x ˙ , t ) F \left( \dot x, t \right) F(x˙,t),即 F F F中不含 x x x。此时欧拉方程变为
    d d t F x ˙ = 0 \frac{d}{dt} F_{\dot x} = 0 dtdFx˙=0
    F x ˙ = c o n s t . F_{\dot x} = const. Fx˙=const.
  3. F ( x , x ˙ ) F \left( x, \dot x \right) F(x,x˙)中不含 t t t。此时欧拉方程变为
    F − x ˙ F x ˙ = c o n s t . F - \dot x F _{\dot x} = const. Fx˙Fx˙=const.
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值