数值最优化—无约束问题的下降算法与线性搜索

一、参考

《数值最优化算法与理论》

二、无约束问题解的最优性条件

f : R 2 → R f : R^2 \to R f:R2R连续可微。考虑如下无约束最优化问题:
m i n f ( x ) , ( x ∈ R n ) min f(x), \quad (x \in R^n) minf(x),(xRn)

1. 下降方向

x , d ∈ R n x,d \in R^n x,dRn。若存在数 α ‾ > 0 \overline{\alpha } > 0 α>0, 使得:
f ( x + α d ) < f ( x ) , ( ∀ α ∈ ( 0 , α ‾ ) ) f(x+\alpha d) < f(x), \quad (\forall \alpha \in (0, \overline{\alpha })) f(x+αd)<f(x),(α(0,α))
则称d是函数 f f f在点 x x x处的一个下降方向

下降方向从几何上可解释为:当从点 x x x出发,沿方向 d d d移动时,函数 f f f的值变化呈单调递减的趋势。若令:
ϕ ( α ) = f ( x + α d ) \phi (\alpha )= f(x+\alpha d) ϕ(α)=f(x+αd)
则方向 d d d f f f x x x处的下降方向等价于一元函数 ϕ \phi ϕ 在原点处单调递减。

定理:设 f f f连续可微且 ∇ f ( x ) ≠ 0 \nabla f(x) \neq 0 f(x)=0 , 若向量 d d d满足 ∇ f ( x ) T d < 0 \nabla f(x)^Td <0 f(x)Td<0, 则它是 f f f x x x处的一个下降方向。

: 利用Tayor展开,不难得到:当 α > 0 \alpha > 0 α>0充分小时:
f ( x + α d ) = f ( x ) + α ∇ f ( x ) T d + o ( α ) < f ( x ) f(x+\alpha d)=f(x)+\alpha \nabla f(x)^Td+o(\alpha) < f(x) f(x+αd)=f(x)+αf(x)Td+o(α)<f(x)
d d d f f f x x x 处的一个下降方向。

2. 无约束问题解的一阶必要条件

f : R n → R f:R^n \to R f:RnR 连续可微, x ∗ x^* x是无约束问题的一个局部最优解,则 x ∗ x^* x满足:
∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 f(x)=0
证明:任给 p ∈ R n p \in R^n pRn, 由局部最优解的定义,对任意充分小的数 t > 0 t>0 t>0,有:
f ( x ∗ ) ≤ f ( x ∗ + t p ) = f ( x ∗ ) + t ∇ f ( x ∗ ) T p + o ( t ) f(x^*)\leq f(x^*+tp) = f(x^*)+t\nabla f(x^*)^Tp+o(t) f(x)f(x+tp)=f(x)+tf(x)Tp+o(t)
不等式两端同时减去 f ( x ∗ ) f(x^*) f(x)后除 t t t,得:
0 ≤ ∇ f ( x ∗ ) T p + o ( t ) t 0 \leq \nabla f(x^*)^Tp+ \frac {o(t)} {t} 0f(x)Tp+to(t)
并令 t → 0 + t \to 0^+ t0+ 可得 ∇ f ( x ∗ ) T p ≥ 0 , ∀ p ∈ R n \nabla f(x^*)^Tp \geq 0 , \forall p \in R^n f(x)Tp0,pRn。特别令 p = − ∇ f ( x ∗ ) p=-\nabla f(x^*) p=f(x)得:
− ∣ ∣ ∇ f ( x ∗ ) ∣ ∣ 2 = − ∇ f ( x ∗ ) T ∇ f ( x ∗ ) ≥ 0 -||\nabla f(x^*)||^2=-\nabla f(x^*)^T \nabla f(x^*) \geq 0 f(x)2=f(x)Tf(x)0

注:这里用到的向量范数为Euclid范数,即对 a ∈ R n , ∣ ∣ a ∣ ∣ = ( a T a ) 1 / 2 a \in R^n , ||a||=(a^Ta)^{1/2} aRn,a=(aTa)1/2

从而, ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0

3. 无约束问题解的二阶必要条件

f : R n → R f:R^n \to R f:RnR二次连续可微, x ∗ x^* x是无约束问题的一个局部最优解,则 x ∗ x^* x满足:
{ ∇ f ( x ∗ ) = 0 ∇ 2 f ( x ∗ ) 半 正 定 \begin{cases} \nabla f(x^*)=0 \\\\ \nabla ^2f(x^*)半正定 \end{cases} f(x)=02f(x)

4. 无约束问题解的二阶充分条件

f : R n → R f:R^n \to R f:RnR二次连续可微,若 x ∗ x^* x满足:
{ ∇ f ( x ∗ ) = 0 ∇ 2 f ( x ∗ ) 正 定 \begin{cases} \nabla f(x^*)=0 \\\\ \nabla ^2f(x^*)正定 \end{cases} f(x)=02f(x)
x ∗ x^* x是无约束问题的一个严格局部最优解。

三、下降算法的一般步骤

1.求解无约束问题的下降算法的基本思想

从某个初始点 x ( 0 ) x^{(0)} x(0)出发,按照使目标函数值下降的原则构造点列 { x ( k ) } \{x^{(k)}\} {x(k)}, 即点列 { x ( k ) } \{x^{(k)}\} {x(k)}满足条件 f ( x ( k + 1 ) ) < f ( x ( k ) ) , ( ∀ k = 0 , 1 , ⋅ ⋅ ⋅ ) f(x^{(k+1)}) < f(x^{(k)}), (\forall k = 0,1,···) f(x(k+1))<f(x(k)),(k=0,1,) 。算法的最终目标是使得点列 { x ( k ) } \{x^{(k)}\} {x(k)}中的某个点或某个极限点是无约束最优化问题的解或稳定点。

d ( k ) d^{(k)} d(k) f f f x ( k ) x^{(k)} x(k)处的一个下降方向且满足:
∇ f ( x ( k ) ) T d ( k ) < 0 \nabla f(x^{(k)})^T d^{(k)} < 0 f(x(k))Td(k)<0
从而,当 α > 0 \alpha >0 α>0充分小时, f ( x ( k ) + α d ( k ) ) < f ( x ( k ) ) f(x^{(k)}+\alpha d^{(k)}) < f(x^{(k)}) f(x(k)+αd(k))<f(x(k))。因此,可取 x ( k + 1 ) = x ( k ) + α k d ( k ) x^{(k+1)}=x^{(k)}+ \alpha _k d^{(k)} x(k+1)=x(k)+αkd(k), 其中, α > 0 \alpha >0 α>0使得 f ( x ( k ) + α k d ( k ) ) < f ( x ( k ) ) f(x^{(k)}+\alpha _k d^{(k)}) < f(x^{(k)}) f(x(k)+αkd(k))<f(x(k))。在此基础上,我们给出求解无约束问题下降算法的步骤如下。

2. 求解无约束问题的下降算法的步骤

  1. 给定初始点 x ( 0 ) ∈ R n x^{(0)} \in R^n x(0)Rn,精度 ϵ > 0 \epsilon >0 ϵ>0。令 k = 0 k=0 k=0
  2. ∣ ∣ ∇ f ( x ( k ) ∣ ∣ < ϵ ||\nabla f(x^{(k)}|| < \epsilon f(x(k)<ϵ,则终止算法,得解 x ( k ) x^{(k)} x(k)。否则,则转3.
  3. 确定下降方向 d ( k ) d^{(k)} d(k),使得:
    ∇ f ( x ( k ) ) T d ( k ) < 0 \nabla f(x^{(k)})^T d^{(k)} < 0 f(x(k))Td(k)<0
  4. 确定步长 α k > 0 \alpha _k >0 αk>0,使得:
    f ( x ( k ) + α k d ( k ) ) < f ( x ( k ) ) f(x^{(k)}+\alpha _k d^{(k)}) < f(x^{(k)}) f(x(k)+αkd(k))<f(x(k))
  5. x ( k + 1 ) = x ( k ) + α k d ( k ) , k = k + 1 x^{(k+1)} = x^{(k)} + \alpha_k d^{(k)}, k=k+1 x(k+1)=x(k)+αkd(k),k=k+1。转2.

四、线性搜索

线性搜索有两种:精确线性搜索 和 非精确线性搜索。

1. 精确线性搜索—黄金分割法(0.618法)

对于一般非线性函数极小化问题,难以得到精确线性搜索步长的解析表达式。此时可采用数值方法确定步长。

黄金分割法是确定精确线性搜素步长的一种算法。该算法适用于求一元单峰函数的极小值点问题。

在这里插入图片描述
黄金分割法的基本思想是构造闭区间序列 { [ a k , b k ] } \{[ a_k, b_k]\} {[ak,bk]},满足 α ˉ ∈ [ a k + 1 , b k + 1 ] ⊂ [ a k , b k ] \bar {\alpha } \in [a_{k+1},b_{k+1}] \subset [a_k, b_k] αˉ[ak+1,bk+1][ak,bk],且区间的长度 b k − a k b_k - a_k bkak 按比例缩小,即 b k + 1 − a k + 1 = λ ( b k − a k ) , λ ∈ ( 0 , 1 ) b_{k+1} - a_{k+1} = \lambda (b_k - a_k), \lambda \in (0,1) bk+1ak+1=λ(bkak),λ(0,1)。从而, b k − a k → 0 b_k - a_k \to 0 bkak0。由此可得 a k → α ˉ , b k → α ˉ a_k \to \bar {\alpha }, b_k \to \bar {\alpha } akαˉ,bkαˉ。该算法的实现过程如下:

在区间 [ a k , b k ] [ a_k, b_k] [ak,bk]上对称取两点 u k < v k u_k < v_k uk<vk,即有:
v k − a k b k − a k = b k − u k b k − a k = λ \frac {v_k - a_k} {b_k - a_k} = \frac {b_k - u_k} {b_k - a_k} = \lambda bkakvkak=bkakbkuk=λ
或等价地
u k = b k − λ ( b k − a k ) , v k = a k + λ ( b k − a k ) u_k = b_k - \lambda (b_k - a_k), \quad v_k = a_k+ \lambda (b_k - a_k) uk=bkλ(bkak),vk=ak+λ(bkak)
比较函数值 ϕ ( u k ) \phi (u_k) ϕ(uk) ϕ ( v k ) \phi (v_k) ϕ(vk)的大小,有下列三种情况:

  1. ϕ ( u k ) < ϕ ( v k ) \phi (u_k) < \phi (v_k) ϕ(uk)<ϕ(vk)。此时必有 α ˉ ∈ [ a k , v k ] \bar {\alpha} \in [a_k,v_k] αˉ[ak,vk]。故令 [ a k + 1 , b k + 1 ] = [ a k , v k ] 。 [a_{k+1},b_{k+1}] = [a_k,v_k]。 [ak+1,bk+1]=[ak,vk]
  2. ϕ ( u k ) > ϕ ( v k ) \phi (u_k) > \phi (v_k) ϕ(uk)>ϕ(vk)。此时必有 α ˉ ∈ [ u k , b k ] \bar {\alpha} \in [u_k,b_k] αˉ[uk,bk]。故令 [ a k + 1 , b k + 1 ] = [ u k , b k ] 。 [a_{k+1},b_{k+1}] = [u_k,b_k]。 [ak+1,bk+1]=[uk,bk]
  3. ϕ ( u k ) = ϕ ( v k ) \phi (u_k) = \phi (v_k) ϕ(uk)=ϕ(vk)。此时必有 α ˉ ∈ [ u k , v k ] \bar {\alpha} \in [u_k,v_k] αˉ[uk,vk]。故令 [ a k + 1 , b k + 1 ] = [ u k , v k ] 。 [a_{k+1},b_{k+1}] = [u_k,v_k]。 [ak+1,bk+1]=[uk,vk]

2. 非精确线性搜索

精确线性搜索要求步长 α k \alpha _k αk取到一元函数 ϕ ( α ) = f ( x ( k ) + α d ( k ) ) \phi (\alpha )= f(x^{(k)}+\alpha d^{(k)}) ϕ(α)=f(x(k)+αd(k))的最小值点。计算量较大。非精确线性搜索只要求步长 α k \alpha _k αk使得函数 ϕ \phi ϕ在点 α k \alpha _k αk处的值 ϕ ( α k ) \phi (\alpha _k) ϕ(αk) (即 f ( x ( k ) + α k d ( k ) ) f(x^{(k)} + \alpha _k d^{(k)}) f(x(k)+αkd(k)))较 ϕ ( 0 ) \phi (0) ϕ(0)(即 f ( x ( k ) ) f(x^{(k)}) f(x(k)))有一定量的下降量。因此在计算容易实现。下面介绍一种常用的非精确线性搜索。

Armijo型线性搜索:给定 σ 1 ∈ ( 0 , 1 / 2 ) \sigma _1 \in (0, 1/2) σ1(0,1/2),取 α k > 0 \alpha _k >0 αk>0使得:
f ( x ( k ) + α k d ( k ) ) ≤ f ( x ( k ) ) + σ 1 α k ∇ f ( x ( k ) ) T d ( k ) f(x^{(k)}+\alpha _kd^{(k)}) \leq f(x^{(k)}) + \sigma _1 \alpha _k \nabla f(x^{(k)})^Td^{(k)} f(x(k)+αkd(k))f(x(k))+σ1αkf(x(k))Td(k)
利用函数 ϕ ( α ) = f ( x ( k ) + α d ( k ) ) \phi (\alpha )= f(x^{(k)}+\alpha d^{(k)}) ϕ(α)=f(x(k)+αd(k)),上式可等价地写为:
ϕ ( α k ) ≤ ϕ ( 0 ) + σ 1 α k ϕ ′ ( 0 ) \phi (\alpha _k) \leq \phi (0) + \sigma _1 \alpha _k \phi '(0) ϕ(αk)ϕ(0)+σ1αkϕ(0)
由于 d ( k ) d^{(k)} d(k) f f f x ( k ) x^{(k)} x(k)处的下降方向且满足 ϕ ′ ( 0 ) = ∇ f ( x ( k ) ) T d ( k ) < 0 \phi '(0) = \nabla f(x^{(k)})^Td^{(k)} < 0 ϕ(0)=f(x(k))Td(k)<0,容易证明:上面的不等式对充分小的正数 α k \alpha _k αk均成立。而在计算上,希望步长 α k \alpha _k αk尽可能大。通常,可通过如下方式获得。给定 β > 0 , ρ ∈ ( 0 , 1 ) \beta >0, \rho \in (0,1) β>0,ρ(0,1)。取步长 α k \alpha _k αk为集合 { β ρ i , i = 0 , 1 , ⋅ ⋅ ⋅ } \{ \beta \rho ^i , i = 0, 1, ··· \} {βρi,i=0,1,}中使得上面的不等式成立的最大者。该算法实现过程如下:

  1. α k = 1 \alpha _k = 1 αk=1满足上面的不等式,则取 α k = 1 \alpha _k = 1 αk=1。否则转下一步。
  2. 给定常数 β > 0 , ρ ∈ ( 0 , 1 ) \beta > 0, \rho \in (0,1) β>0,ρ(0,1)。令 α k = β \alpha _k = \beta αk=β
  3. α k = 1 \alpha _k = 1 αk=1满足上面的不等式,则终止计算,得步长 α k \alpha _k αk。否则,转步3。
  4. α k = ρ α k \alpha _k= \rho \alpha _k αk=ραk。转步2。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ta o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值