漫步最优化二十二——收敛速率







——

大部分算法计算效率是有很大差别的,高效或者快速的算法仅需要少量的迭代就能收敛到解,并且计算量也很小。从经济的角度来说,我们会选择选择最有效的算法,因此我们就需要度量算法收敛速率的定量指标或准则。

最基本的准则是序列的收敛阶,如果 {xk}k=0 是实数序列,那么它的收敛阶就是最大的非负整数 p ,满足关系

0β<

其中

β=limk|xk+1x̂ ||xkx̂ |p(1)

x̂  k 的极限,参数 β 称为收敛比。

1 如果

  • xk=γk, for 0<γ<1
  • xk=γ2k, for 0<γ<1

那么求出序列 {xk}k=0 的收敛阶与收敛比。

(a)因为 x̂ =0 ,所以

β=limkγk(1p)+1

对于 p=0,1,2 ,我们有 β=0,γ, ,所以 p=1,β=γ
(b)

β=limkγ2(k+1)γ2kp=limk{γ2k(2p)}

对于 p=0,1,2,3 ,我们有 β=0,0,1, ,所以 p=2,β=1

如果等式(1)的极限存在,那么

limk|xkx̂ |=ε

其中 ε<1 ,所以

limk|xk+1x̂ |=βεp

所以 p 增加或者β减少的话,收敛速率在增加。如果 ρ=0.8 ,那么(a)(b)的序列分别为

{xk}k={1,0.8,0.64.0.512,0.409,,0}


{xk})k=0={1,0.64,0.409,0.167,0.023,,0}

第二个序列的收敛速率比第一个更快。

如果 p=1,β<1 ,那么我们称序列是线性收敛的;如果 p=1,β=0 或者 p2 ,那么称序列是超线性收敛的。

大部分非线性规划算法都是线性收敛的,因此他们的比较都是基于 β 值。

另一种度量序列收敛速率的是平均收敛阶数,也就是满足关系

ρ=limk|xkx̂ |1/(p+1)k=1

的最小非负整数。如果不存在 p>0 ,那么收敛的阶数为无穷大。

2 找出序列 {xk}k=0 的平均收敛阶数

  • xk=γk, for 0<γ<1
  • xk=γ2k, for 0<γ<1

(a)因为 x̂ =0

ρ=limk(ρk)1/(p+1)k=1

所以对于 p=0,1,2 ,我们有 ρ=0,1,1 ,因此 p=1

(b)

ρ=limk(ρ2k)1/(p+1)k=1

所以对于 p=0,1,2,3 ,我们有 ρ=0,ρ,1,1 ,因此 p=2

如果收敛的平均阶数是单位1,那么我们称序列是平均线性收敛,平均线性收敛定义为

ρ=limk|xkx̂ |1/k

上面的讨论中,我们考虑的是数列的收敛性。随着越来越靠近解,这样的序列可能由目标函数的值构成,这时候我们度量目标函数靠近其最小值的速度。或者说,如果我们想知道问题靠近最优解有多快,可以用向量 xkx̂  的长度或长度的平方,即 xkx̂  或者 xkx̂ 2

上面收敛速率的度量中,重点都是在解邻域内考虑算法的有效性。通常而言优化的大部分计算都花在解的邻域内,所以上面的度量是很有意义的。然而偶尔会有些算法在解的邻域内有效而其他地方无效。这时候上面的判别准则会误导我们,所以需要改用其他的准则。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值