第四章 共轭梯度法
§ 共轭方向法
共轭方向法是无约束最优化问题的一类重要算法。它一方面克服了最速下降法中,迭代点列呈锯齿形前进,收敛慢的缺点,同时又不像牛顿法中计算牛顿方向耗费大量的工作量,尤其是共轭方向法具有所谓二次收敛性质,即当将其用于二次函数时,具有有限终止性质。
一、共轭方向
定义 设G是nn对称正定矩阵,d1,d2是n维非零向量,若
d1TGd20 ()
则称d1,d2是G-共轭的。类似地,设d1,,dm是Rn中一组非零向量。若
diTGdj0(ij) ()
则称向量组d1,,dm是G-共轭的。
注:(1) 当GI时,共轭性就变为正交性,故共轭是正交概念的推广。
(2) 若d1,
二、共轭方向法
共轭方向法就是按照一组彼此共轭方向依次搜索。 模式算法:
T1)给出初始点x0,计算g0g(x0),计算d0,使d0g00,k:0 (初始共轭方向);
,dmG-共轭,则它们必线性无关。
2)计算k和xk1,使得f(xkkdk)minf(xkdk),令xk1xkkdk;
03)计算dk1,使dk1Gdj0,j0,1,
三、共轭方向法的基本定理
T,k,令k:k1,转2)。
共轭方向法最重要的性质就是:当算法用于正定二次函数时,可以在有限多次迭代后终止,得到最优解(当然要执行精确一维搜索)。 1
-
定理 对于正定二次函数,共轭方向法至多经过n步精确搜索终止;且对每个xi1,都是f(x)在线
i性流形xxx0jdj,j中的极小点。
j0证明:首先证明对所有的in1,都有
giT1dj0,j0,1,,i(即每个迭代点处的梯度与以前的搜索方向均正交)
事实上,由于目标函数是二次函数,因而有
gk1gkGxk1xkkGdk
1)当ji时, gdjgTi1Tj1djkj1igkik1gkdj
T gTj1djkj1dTkGdj0
2)当ji时,由精确搜索性质知:
giT1dj0
综上所述,有 gi1dj0 (j0,1,T,i)。
再证算法的有限终止结论。若有某个gi10(in1),则结论已知。若不然,那么由上面已证则必有: gndj0 (j0,而由于d0,T,n1)。
,dn1是Rn的一组基,由此可得gn0。故至多经过n次精确一维搜索即可获得最优解。
下面证明定理的后半部分。由于
f(x)1TxGxbTxc 2是正定二次函数,那么可以证明
(t0,,ti)f(x0tjdj)
j0i是线性流形上的凸函数。事实上,
(t0,,ti)f(x0tjdj)j0iiii1(x0tjdj)TG(x0tjdj)bT(x0tjdj)c2j0j0j0
2
-
i1i2T1TTtj(djGdj)[x0GdjbTdj]tj(x0Gx0bTx0c) 2j02j0由dTjGdj0(j0,,i)知(t0,min,ti)为t0,,ti的凸函数。因而
(t0,,ti)Ri1(t0,i,ti)0 (j0,tj,i)
f(x0注意到:当tjj,(j0,itdjj0j)Tdj0 (j0,,i)
,i)时,
ix0tjdjx0jdjxi1。
j0j0而由定理前部分证明,在xi1处有
f(xi1)TdjgiT1dj0(j0,故在(t0,,i),
,ti)(0,,i)处,(t0,,ti)取得极小,即
xi1x0dij0ij是f(x)在线性流形上的极小点。
§ 共轭梯度法
上节一般地讨论了共轭方向法,在那里n个共轭方向是预先给定的,而如何获得这些共轭方向并为提及。本节讨论一种重要的共轭方向法——共轭梯度法。这种方法在迭代过程中通过对负梯度方向进行适当校正获得共轭方向,故而称之为共轭梯度法。
一、共轭梯度的构造 (算法设计针对凸二次函数)
设 f(x)其中G为nn正定矩阵,则
1TxGxbTxc 2g(x)Gxb。
对二次函数总有 gk1gkGxk1xkkGdk 3
-
1)设x0为初始点。首先取d0g0,令x1x00d0 (0为精确步长因子)
T则有:g1d00(精确一维搜索性质)。
T2)令d1g10d0,适当选择0,使d1Gd00,
TTTg1Gd0g1(g1g0)g1g得 0TTT1 (从而得到d1)
d0Gd0d0(g1g0)g0g0由前一节共轭方向法的基本定理有:
TTg2d10,g2d00,
再由d0与d1的构造,还可得:
TTg2g10,g2g00
T3)再令d2g20d01d1,适当选择0,1,使得d2Gdi0 (i0,1),由此得:
TTg2(g2g1)g2g00,1TT2
d1(g2g1)g1g1k1i04) 一般地,在第k次迭代中,令dkgkdiiT 适当选取i,使dkGdi0 (i0,, ,k1)
TTgkGdigk(gg)可得到 iTTi1i(i0,diGdidi(gi1gi),k1) ()
同样由前一节共轭方向的基本定理有:
Tgkdi0(i0,,k1), ()
再由gi与di的关系得:
Tgkgi0 (i0,,k1) ()
将()与()代入()得:当i0,,k2时,i0,
TTgk(gkgk1)gkg而 k1TTk。
dk1(gkgk1)gk1gk1共轭梯度法的迭代公式为:
xk1xkkdk(dk为共轭方向,k为最佳步长因子)
对二次函数 4
-
TgkdkTk;
dkGdk而对非二次函数,则采用精确一维搜索得到k。
共轭方向的修正公式为: dk1gk1kdk () 其中,k由下面诸式之一计算:
Tgk1(gk1gk)1) kT (Crowder-Wolfe公式) () dk(gk1gk)Tgk1gk12) kT (Fletcher-Reeves公式) ()
gkgkTgk(gk1gk)3) k1T (Polak-Ribiere-Polyak 公式) ()
gkgkTgk1gk14) kT (Dixon公式) ()
dkgk注: 对二次函数而言,上述四个公式都是等价的。而且求得的搜索方向均为共轭方向;若对非二次函数,则将导出互不相同的算法,而且据此求出的搜索方向不再保证是共轭的。(事实上,此时不存在一个常值正定矩阵G,共轭的提法都已无意义)。
二、共轭梯度法的性质
定理 对于正定二次函数,采用基于精确一维搜索的共轭梯度算法,必定经过mn步迭代后终止。且对1im,下列关系式成立:
1)diGdj0 (j0,1,2)gigj0 (j0,1,TT,i1) () ,i1) ()
TT3)digigigi ()
4)[g0,g1,5)[d0,d1,,gi][g0,Gg0,,di][g0,Gg0,,Gig0] () ,Gig0] ()
证明:先用归纳法证明()~()。对于i1,容易验证(),(),)成立。现假设这些关系式对某个im成立,下面证明对于i1,这些关系式仍然成立。事实上,对于二次函数,显然有 5
-
gi1giG(xi1xi)giiGdi ()
对上式左乘di,并注意到i是精确步长因子,得
TgiTdigiTgi iT0 ()
diGdidiTGdi利用(),(),得
giT1gjgiTgjidiTGgjgiTgjidiTG(djj1dj1) ()
当ji时,()成为
giTgiTggjggiTdiGdi0
diGdiTi1Ti当ji时,由归纳法假设可知
giT1gjgiTgjidiTG(djj1dj1)0
于是()得证。
再由共轭梯度法的迭代公式及(),有
diT1GdjgiT1GdjidiTGdjgiT1当ji时,由(),()及(),()成为
gjgj1jidiTGdj ()
giT1gi1TgiT1gi1TdGdiTdiGdiTdiGdi0
gigigigiTi1当ji时,直接由归纳法假设知()为零,于是()得证。
TTTT又由于 di1gi1gi1gi1idigi1gi1gi1
于是()得证。
下面利用归纳法证明()与()。当i1时,由d0g0及g1g00Gd0g00Gg0,容易看出: [g0,g1][g0,Gg0]
再由 d0g0 及 d1g10d0g10g0,易见:
[d0,d1][g0,g1][g0,Gg0]。
故当i1时,()与()成立。假定()与()对i成立。下证结论对i1也成立。
6
-
由于 gi1giiGdi, 而从归纳法假设知 gi,di[g0,Gg0,故有 gi1[g0,Gg0,还可证明: gi1[g0,Gg0,否则由 gi1[d0,d1,,Gig0] ,Gi1g0] ,Gig0][d0,d1,,di]
,di]及giT1dj0 (j0,,i)(共轭方向法基本定理)
则必有 gi10(与算法结束前,不会出现gi10矛盾) 因此 [g0,g1,,gi1][g0,Gg0,,Gi1g0]
再由 di1gi1idi 立即有: [d0,定理证毕。
注:1)上面定理中出现的这些生成子空间通称为Krylov子空间;
2)在共轭梯度法中,dk1gk1kdk,若采用精确一维搜索,则k不论采用哪种公式计
TTTT算,都有gk1dk1gk1gk1kgk1dkgk1gk10,即dk1总是下降方向,若不采用
,di1][g0,g1,,gi1][g0,Gg0,,Gi1g0] 。
精确一维搜索,则就不一定了;
TT3)对Dixon公式,使用不精确搜索准则 gk1dkgkdk,(0,1),能保证搜索方向总是
下降的。事实上,由
Tgk1gk1dk1gk1Tdk
dkgkTgk1dkggk11T,
gkdkTk1有 gTk1k1dTgkT1dkdk0)而 gdgdkgdgdkT, 1(由gkgkdkTk1kTkTk1kTkT由此即得 gk1dk10
故dk1为下降方向;
4)Fletcher-Reeves公式最为简洁,使用得最多; 7
-
5)共轭梯度算法用于非二次函数时,没有有限终止性质,一般经过n次搜索后,就取一次负梯度方向,称再开始。Polak-Ribiere-Polyak具有自动再开始的特点,事实上,当算法改进不大时,会出现gk1gk,这时用Polak-Ribiere-Polyak公式计算出的k0,从而导致dk1gk1。
§4. 3 共轭梯度法的收敛性
由前面的讨论已经知道,当共轭梯度算法用于正定二次函数时必定有限终止。本节研究将其用于一般非二次函数时的收敛性问题。
一、共轭梯度法的总体收敛性
定理 设水平集Lxf(x)f(x0)有界,f是Rn上具有一阶连续偏导数的凸函数。{xk}是由Fletcher-Reeves共轭梯度算法产生的迭代点列。则
1){f(xk)} 为严格单调下降序列,且limf(xk)存在。
k2){xk}的任意聚点都是最优解,于是:limf(xk)minf(x)。 nkxR证明:在算法迭代过程中,由于每隔n次采用一次再开始措施。因而搜索方向要么是共轭梯度方向,要么是最速下降方向。但不管是哪种情形都有:
Tgkdkgk20 (采用严格一维搜索)
*因而{f(xk)}单调下降,又由L有界,故{f(xk)}也有下界,因此limf(xk)存在,记为f。又由
k{f(xk)}单调下降,知{xk}L,故{xk}是有界序列。
设{xk}K1是{xk}中的这样的一个子列:从xk出发按最速下降方向gk得到xk1。由{xk}K1有界,故存在收敛子列{xk}K2,使limxkx。
kkK2*又{xk1}K2也是有界点列,故存在子列{xk1}K3,使limxk1x,且
kkK3f(x*)f(x)limf(xk)f* (*)
k下面用反证法证明f(x)0。若不然,设f(x)0,则对充分小的,有
**f(x*f(x*))f(x*)
注意当kK3时, f(xk1)f(xkkdk)f(xkkgk)f(xkgk) 0 8
-
令k,则有 f(x)f(xg)f(x)
*与(*)式矛盾,故必有f(x)0。再由f(x)是凸函数,即知x是最优解。因而有
*****minf(x)f(x)limf(xk) nxRkˆ。 ˆ,必存在{xk}的子列{xk}K0,使得limxkx进一步地,对点列{xk}的任一极限点xkkK0ˆ)f(limxk)limf(xk)f(x) 进而有 f(xkkK0k*ˆ也是问题的最优解。 这表明:x注:由这个定理的证明过程易见:上述收敛定理对其它几种共轭梯度算法也是成立的。
定理 假设水平集Lxf(x)f(x0)是有界集,f(x)在其上Lipschitz连续,则采用精确一维搜索的Crowder-Wolfe再开始共轭梯度法产生的点列{xk}至少存在一个聚点是驻点。 证明: 与前一定理的证明类似,略。
定理 (Polak-Ribbiere-Polyak算法的总体收敛性)设f(x)二阶连续可微,水平集
Lxf(x)f(x0)有界。又设存在常数m0,使得对xL,有:
myyT2f(x)y yRn
则采用精确一维搜索的P-R-P共轭梯度算法产生的点列{xk}收敛于f(x)的唯一极小点。
TgkdkT证明:只要证明cosk,即gkdkgkdk即可。事实上,若
gkdkTgkdkcosk (0)
gkdk2成立。由第二章的定理知,必有f(xk)0,若x是{xk}的极限点,由f(x)的连续性,则有
*f(x*)0,由f(x)的凸性,即知x*是极小点。
ˆ是{xk}的另一极限点,则再由f(x)在水平集L上一致凸,知{xk}的极限点必唯一。否则设xˆ)0。因此, 也有f(xˆ)T(f(x*)f(xˆ))(x*xˆ)T2f()(x*xˆ) 0(x*x这与一致凸的假设矛盾,所以{xk}只有唯一极限点。 9
-
可证:有界点列{xk}若只有唯一极限点x,则必有limxkx。故{xk}收敛于f(x)的唯一极小点。
k**T下证: gkdkgkdk (1)
由于采用了精确一维搜索,故有
Tgkdkgk
2因而(1)式等价于
gk (2) dkT由 gkdk1gk1dk1k1T10Tdk1G(xk1tk1dk1)dk1dt
Tgk1gkd得: k1T1k1T (3)
dk1Gk1dk1dk1Gk1dk12其中 Gk1G(x01k1tk1dk1)dt。
再注意到, gkgk1f(xk)f(xk1)G(x01k1tk1dk1)k1dk1dtk1Gk1dk1
TTgk(gkgk1)gkGk1dk1有 k1, k12Tgkggk11k1TgkGk1dk1Tdk1Gk1dk1由(3)得 k1gkGk1dk1mdk12
n又由L有界,故存在常数M0,使得 G(x)yMy,xL,yR 故 k1gkMdk1mdk12Mgk
mdk1因而 dkgk即
k1dk1gkMMgk(1)gk mmgkM(1)1 dkm由前述分析,定理得证。
上述总体收敛性定理均建立在精确一维搜索基础之上。Al-Baali(1985)研究了采用不精确一维搜索的Fletcher-Reeves共轭梯度法。发现若采用Wolfe-Powell不精确一维搜索准则,也有总体收敛性。
10
-
定理 若k由不精确一维搜索的Wolfe-Powell准则产生,那么Fletcher-Reeves共轭梯度算法具体下
T降性质:gkdk0。
证明:先用归纳法证明:
jj0kTgkdkgk22j (*)
j0k其中(0,)是W-P准则中的。
当k0时,(*)成为等式,故结论成立。假设对任何k0,(*)式成立,现考虑k1情形。 由
Tgk1dk112gk112Tgk1(gk1kdk)gk12221kTgk1dkTgk1dkgk12
TTgk1gk1gk1dkgkgk11gk2
TT及 gk1dkgkdk
TgkdkTgk1dk1Tgkdk有 1再由归纳法假设,有
gk2gk121gk2
11jjj0j0k1kTgkdkgkk2
k1j0Tgk1dk1gk1j21Tgkdkgk212j
jj0k1j0即 j0k1Tgk1dk1gk122j。
利用已经证明的(*)式,并注意到
jjj0j0kk1 11120 11有 2j2j0T最后得 gkdk0,证毕。
11
-
定理 设f(x)二阶连续可微,水平集LxRnf(x)f(x0)有界。设k由Wolfe-Powell准则确定,那么Fletcher-Reeves共轭梯度算法产生的点列总体收敛,即有
liminfgk0. (1)
k证明:由Wolfe-Powell准则,及定理中(*)式得
TTgkdk1gk1dk12gk1 122Tgkgkg又由 dkgkk1dk1, k1Tkgk1gk1gk1
得 dk2gk2T2k1gkdk1k21dk1
22gk递推可得 dk22gk112k21dk1()gk142k21dk1
221()gk1(gjj0k2) (2)
下面用反证法证明(1)成立。若不然,则存在常数0,使得对充分大的k,都有gk0。 由gk在水平集L上有界,从(2)即有
dk2c1k (c1为常数)
TTkgkgkdkgkdkgk12gkj(2)()由 cosk 2gkdkdk1dkgkdkj0gk1222cos()k1dkkk故级数
2212221()c2
1kc1kkkcosk2k发散。若设M为G(x)在L上的上界,
TT2则 gk1dkgkdkkMdk再由Wolfe-Powell准则
gk1dkgkdk (1)
TTT即 gkdkgk1dkgkdk
TT故有
TTT gkdkgk1dkgkdkkMdk212
-
因而有
k1Mdk2Tgkdk。
又由Wolfe-Powell准则
Tfk1fkkgkdk (2)
Tdk(1)gk fk1fk2Mdk(1)(1)222fkgkcos2kfkcosk MM2由(2)知{f(xk)}单调下降且有下界,故limf(xk)存在。再由
(1)M由此又推得
20 及
(1)M2cos2kfkfk1
cosk2k收敛,矛盾。从而定理结论成立。
13
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务