优化技术在众多领域有着广泛的应用, 受到高度重视[1-3]. 无约束最优化问题的一般形式为
f:Rn→R是连续可微函数. 共轭梯度法因其存储量小, 仅需一阶导数信息, 不需大规模矩阵求逆运算等优点, 被认为是求解(1.1)的一类非常有效的方法[4-6]. 共轭梯度法求解(1.1) 的一般迭代公式为:
其中αk为歩长因子, 可通过精确线搜索或非精确线搜索求得. dk为f(x)在xk点的下降方向, 通常定义为
其中gk=∇f(xk), 一般情况下要求gTkdk<0, 更进一步要求dk满足充分下降性[7], 即满足
βk是一标量, βk的不同选取, 对应不同的共轭梯度法. 较著名的有
等, yk−1=gk−gk−1. 为得到上述方法的全局收敛性, 一般需步长αk满足强Wolfe条件, 即满足
其中0<ρ<σ<1.
如果优化函数不是二次函数时, 这些算法的计算效率有较大差异. 一般地, 基于非精确线搜索的DY和FR方法具有良好的收敛性能, 但计算效率不如PRP方法. 然而对于一般目标函数, 基于非精确线搜索的PRP方法无法保证产生的搜索方向为下降方向, 无法保证算法的全局收敛性. 为了建立兼具良好数值表现和收敛性质的方法, 近年来, 许多学者提出了改进的共轭梯度法, 这些算法在满足强Wolfe线搜索准则条件下具有充分下降性和全局收敛性. 例如, 文献[11]通过分段函数, 提出一种混合的PRP-WYL共轭梯度法. 文献[12]提出了一种带两个参数的三项共轭梯度法. 文献[13]在PRP公式中引入调节因子, 并据此提出了一个自调节PRP共轭梯度法. Yousif[14]提出一个改进的RMIL共轭梯度法. Sellami和Sellami[15]提出一个改进的FR共轭梯度法. 文献[16]提出一个三参数族共轭梯度法. Dong[17]提出一种改进的PRP共轭梯度法. 其他的改进共轭梯度法见文献[18-20]. 这些共轭梯度法一般要求线搜索方向近似满足Dai-Liao共轭条件[21], 即dTkyk−1=−ξgTksk−1(ξ≥0), 其中sk−1=xk−xk−1. 当搜索方向不能近似满足共轭条件时, 算法的充分下降和收敛性质将不再成立.
受这些文献的启发, 本文给出一个新的dk和βk的计算公式,
并证明了这类方法在不要求搜索方向为共轭方向, 不要求满足Dai-Liao共轭条件的情况下, 使用强Wolfe线搜索时仍具有充分下降和全局收敛性质, 且当目标函数为一致凸函数时, 新算法具有线性收敛速率. 最后, 我们通过数值试验来验证新算法的优越性.
为证明本文所提出方法的全局收敛性, 需要如下两个常规假设.
(H1) f(x)在水平集Ω:={x∈Rn|f(x)≤f(x1)}上有下界, 其中x1为算法初始点.
(H2) f(x)在水平集Ω的一个邻域N内连续可微, 且其梯度函数g满足Lipschitz条件, 即存在常数L>0, 满足‖g(x)−g(y)‖≤L‖x−y‖,∀x,y∈N.
基于公式(1.7)和(1.8), 建立如下算法(简称算法A):
Step 1: 给定初值x1∈Rn, ε>0, ρ∈(0,1), σ∈(ρ,1), 令d1=g1, k:=1.
Step 2: 如果‖gk‖<ε, 则停止, 否则转Step 3.
Step 3: 由强Wolfe准则计算αk.
Step 4: 由(1.7)和(1.8)计算dk, βk, xk+1=xk+αkdk.
Step 5: 令k:=k+1, 转Step 2.
下面的引理2.1表明由算法A产生的搜索方向满足充分下降性质(1.4).
引理2.1 设目标函数f(x)连续可微, 则算法A产生的搜索方向dk满足gTkdk≤−c‖gk‖2.
证 当k=1时, gT1d1=−‖g1‖2<−1σ+1‖g1‖2=−c‖g1‖2, 这里c=1σ+1>0. 假设对k−1的情形gTk−1dk−1≤−c‖gk−1‖2成立. 下面证明对k的情形也成立.
因此引理得证.
引理2.2 设目标函数f(x)连续可微, 则算法A产生的标量βk满足0<βk<1.
证 在强Wolfe准则下, 根据引理2.1, βk的分母
由于βk的分子分母皆大于零, 且分母大于分子, 因此引理得证.
引理2.3 设目标函数f(x)连续可微, 则算法A产生的搜索方向dk满足‖dk‖2≤‖gk‖2+‖dk−1‖2.
证 由(1.7)可知, 当k=1时, 引理显然成立. 当k≥2时, dk−(βk−1)gk=−βkdk−1, 上式两端取模的平方, 并移项得到
由引理2.1, gTkdk<0, 引理2.2, 0<βk<1, 所以上式第一项大于零, 因此上式≤−(βk−1)2‖gk‖2+(βk)2‖dk−1‖2, 由三角不等式, 上式≤(βk−1)2‖gk‖2+(βk)2‖dk−1‖2≤‖gk‖2+‖dk−1‖2. 因此引理得证.
引理2.4 设目标函数f(x)连续可微, 则算法A产生的步长αk满足αk≥(σ−1)gTkdkL‖dk‖2.
证 一方面, 根据假设H2可知,
另一方面, 根据强Wolfe准则可知, (gk+1−gk)Tdk=gTk+1dk−gTkdk≥(σ−1)gTkdk. 结合上述两方面, 可得
引理2.5 若H1和H2成立, {xk}是有算法A产生迭代点列, 则∞∑k=2‖gk‖4‖gk‖2+‖dk−1‖2<+∞
证 由(1.5)及引理2.1, 2.3, 2.4有
这里θ=ρ(1−σ)c2L. 因为{f(xk)}单调不增且有下界, 故知∞∑k=2(f(xk)−f(xk+1))<+∞, 从而知∞∑k=2‖gk‖4‖gk‖2+‖dk−1‖2<+∞, 故引理得证.
定理3.1 若H1和H2成立, {xk}是由算法A产生迭代点列, 则或者limk→∞inf‖gk‖=0, 或者xk无界.
证 若limk→∞inf‖gk‖=0不成立, 则存在常数ε>0, 对任意k≥1, 有‖gk‖≥ε. 由Φ(α)=α2α+‖dk−1‖2为单调增函数知
若{xk}有界, 则由H2知{‖gk‖2}有界. 即存在M>0, 对任意k≥2有‖gk‖2≤M. 由引理2.3知‖dk‖2≤‖gk‖2+‖dk−1‖2≤M+‖dk−1‖2≤⋯≤kM. 由上式(3.1)及引理2.5知
而∞∑k=2ε4ε2+kM=+∞, 故矛盾, 从而知{xk}无界.
定理3.2 若H1和H2成立, 且水平集Ω有界, {xk}是由算法A产生迭代点列, 则limk→∞inf‖gk‖=0.
证 由水平集Ω有界知{xk}有界, 由定理3.1证明可知limk→∞inf‖gk‖=0.
为证明本文所提出方法的收敛速率, 需要如下假设.
(H3) f(x)是二次连续可微的一致凸函数. 即存在m>0, M>0, 满足m‖y‖2≤yT∇2f(x)y≤M‖y‖2,∀x,y∈Rn. 若(H3)成立, 根据文献[22]可得到下面两个引理.
引理4.1 若(H3)成立, 则f(x)具有下列性质:
(1) f(x)在Rn上有唯一的极小点x∗.
(2) 水平集Ω有界.
(3) m2‖x−x∗‖2≤f(x)−f(x∗)≤M2‖x−x∗‖2, m‖x−x∗‖≤‖g(x)‖≤M‖x−x∗‖.
(4) 假设(H1), (H2)成立.
引理4.2 若H3成立, {xk}是由算法A产生迭代点列, 且满足limk→∞inf‖gk‖=0, 则xk→x∗ (k→∞). 这里x∗为f(x)的唯一极小点.
定理4.1 若H3成立, {xk}是由算法A产生迭代点列, 则xk→x∗ (k→∞). 进一步, 则或者存在一个无穷子列{xk}k∈K⊂{1,2,⋯}, 使limk→∞k∈K‖gk‖‖dk‖=0; 或者{xk}线性收敛于x∗.
证 由定理3.2知limk→∞inf‖gk‖=0, 从而由引理4.2知xk→x∗ (k→∞). 若{‖dk‖‖gk‖}无界, 则必存在无穷点列{xk}k∈K⊂{1,2,⋯}, 使limk→∞k∈K‖dk‖‖gk‖=+∞, 从而知limk→∞k∈K‖gk‖‖dk‖=0. 若{‖dk‖‖gk‖}有界, 即存在1μ>0, 对任意k≥1, 有‖dk‖‖gk‖≤1μ, 从而有
由gk+1−gk=αk∫10∇2f(xk+ταkdk)dkdτ, 和假设H3知
又根据Wolfe条件得
故由(4.2)和(4.3)知
由引理2.1和(4.1)知
由(1.5), (4.4)和(4.5)知
令η=ρ(1−σ)c2μ22M, 由引理4.1(3)知
令ω=ηm2M=m2ρ(1−σ)c2μ2M2, 则
即
下面证0<ω<1. 由Cauchy-Schwartz不等式及引理2.1有‖gk‖‖dk‖≥−gTkdk≥c‖gk‖2, 从而由(4.5)知cμ≤1, 故
又由(4.6)知
从而由引理4.1(3)和上式知‖xk−x∗‖2≤2m(f(xk)−f(x∗))≤(1−ω)k−12(f(x1)−f(x∗))m. 因为x∗为f(x)的唯一极小点, 故f(x1)−f(x∗)>0. 令p=√2(f(x1)−f(x∗))m, q=√1−ω(0<q<1), 则有‖xk−x∗‖≤pqk−1, 从而知{xk}线性收敛于x∗. 定理得证.
为了检验本文所提出算法的数值效果, 我们从无约束优化问题测试集中选取了部分算例进行测试(具体算例见文献[4]), 并将数值结果与FR, PRP和DY经典算法进行比较. 测试环境为Windows 10操作系统, CPU1.6GHZ 4GB RAM, 所有程序由Matlab R2016a软件实现. 参数设置为ρ=0.04, σ=0.6, 算法的终止条件为‖gk‖≤10−4或迭代次数超过1000. 测试函数和数值结果见表 1和表 2, 其中Functions表示测试函数的名称, NaN/NI/x0/ˉx/f(ˉx)/x∗/f(x∗)分别代表程序运行无结果, 迭代次数, 算法初始值, 算法终止时的迭代值, 算法终止时的函数值, 函数最优解, 函数最优值.
从表 2结果可以看出, FR, PRP和DY算法在数值试验中的表现并不理想, 较多函数寻优失效. 本文提出的新算法具有良好的数值表现, 总体上优于比较的算法, 是可行的, 有效的.