优化技术在众多领域有着广泛的应用, 受到高度重视[1-3]. 无约束最优化问题的一般形式为
$ f: R^n \rightarrow R $是连续可微函数. 共轭梯度法因其存储量小, 仅需一阶导数信息, 不需大规模矩阵求逆运算等优点, 被认为是求解(1.1)的一类非常有效的方法[4-6]. 共轭梯度法求解(1.1) 的一般迭代公式为:
其中$ \alpha_k $为歩长因子, 可通过精确线搜索或非精确线搜索求得. $ d_{k} $为$ f(x) $在$ x_{k} $点的下降方向, 通常定义为
其中$ g_k=\nabla f(x_{k}) $, 一般情况下要求$ g_{k}^{T}d_{k} < 0 $, 更进一步要求$ d_{k} $满足充分下降性[7], 即满足
$ \beta_k $是一标量, $ \beta_k $的不同选取, 对应不同的共轭梯度法. 较著名的有
等, $ y_{k-1}=g_{k}-g_{k-1} $. 为得到上述方法的全局收敛性, 一般需步长$ \alpha_k $满足强Wolfe条件, 即满足
其中$ 0<\rho<\sigma<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], 即$ d_k^Ty_{k-1}=-\xi g_k^T s_{k-1}(\xi\geq 0)$, 其中$ s_{k-1}=x_{k}-x_{k-1} $. 当搜索方向不能近似满足共轭条件时, 算法的充分下降和收敛性质将不再成立.
受这些文献的启发, 本文给出一个新的$ d_k $和$ \beta_k $的计算公式,
并证明了这类方法在不要求搜索方向为共轭方向, 不要求满足Dai-Liao共轭条件的情况下, 使用强Wolfe线搜索时仍具有充分下降和全局收敛性质, 且当目标函数为一致凸函数时, 新算法具有线性收敛速率. 最后, 我们通过数值试验来验证新算法的优越性.
为证明本文所提出方法的全局收敛性, 需要如下两个常规假设.
(H1) $ f(x) $在水平集$ \Omega:=\{x\in R^{n}|f(x)\leq f(x_{1})\} $上有下界, 其中$ x_{1} $为算法初始点.
(H2) $ f(x) $在水平集$ \Omega $的一个邻域$ N $内连续可微, 且其梯度函数$ g $满足Lipschitz条件, 即存在常数$ L>0 $, 满足$ \|g(x)-g(y)\|\leq L\|x-y\|, \; \forall \; x, y \in N $.
基于公式(1.7)和(1.8), 建立如下算法(简称算法A):
Step 1: 给定初值$ x_{1}\in R^n $, $ \varepsilon>0 $, $ \rho\in(0, 1) $, $ \sigma\in(\rho, 1) $, 令$ d_1=g_1 $, $ k: =1 $.
Step 2: 如果$ \|g_{k}\|<\varepsilon $, 则停止, 否则转Step 3.
Step 3: 由强Wolfe准则计算$ \alpha_k $.
Step 4: 由(1.7)和(1.8)计算$ d_k $, $ \beta_k $, $ x_{k+1}=x_{k}+\alpha_{k}d_{k} $.
Step 5: 令$ k: =k+1 $, 转Step 2.
下面的引理2.1表明由算法A产生的搜索方向满足充分下降性质(1.4).
引理2.1 设目标函数$ f(x) $连续可微, 则算法A产生的搜索方向$ d_k $满足$ g_{k}^{T}d_{k}\leq -c \|g_{k}\|^{2} $.
证 当$ k=1 $时, $ g_{1}^{T}d_{1}=-\|g_{1}\|^{2}<-\frac{1}{\sigma+1}\|g_{1}\|^{2}=-c\|g_{1}\|^{2} $, 这里$ c=\frac{1}{\sigma+1}>0 $. 假设对$ k-1 $的情形$ g_{k-1}^{T}d_{k-1}\leq -c \|g_{k-1}\|^{2} $成立. 下面证明对$ k $的情形也成立.
因此引理得证.
引理2.2 设目标函数$ f(x) $连续可微, 则算法A产生的标量$ \beta_{k} $满足$ 0<\beta_{k}<1 $.
证 在强Wolfe准则下, 根据引理2.1, $ \beta_{k} $的分母
由于$ \beta_{k} $的分子分母皆大于零, 且分母大于分子, 因此引理得证.
引理2.3 设目标函数$ f(x) $连续可微, 则算法A产生的搜索方向$ d_k $满足$ \|d_{k}\|^{2}\leq \|g_{k}\|^{2}+\|d_{k-1}\|^{2} $.
证 由(1.7)可知, 当$ k=1 $时, 引理显然成立. 当$ k\geq2 $时, $ d_{k}-(\beta_k-1)g_{k}=-\beta_kd_{k-1}$, 上式两端取模的平方, 并移项得到
由引理2.1, $ g_{k}^{T}d_{k}<0 $, 引理2.2, $ 0<\beta_k<1 $, 所以上式第一项大于零, 因此上式$ \leq-(\beta_k-1)^{2}\|g_{k}\|^{2}+(\beta_k)^{2}\|d_{k-1}\|^{2}$, 由三角不等式, 上式$ \leq (\beta_k-1)^{2}\|g_{k}\|^{2}+(\beta_k)^{2}\|d_{k-1}\|^{2} \leq \|g_{k}\|^{2}+\|d_{k-1}\|^{2} $. 因此引理得证.
引理2.4 设目标函数$ f(x) $连续可微, 则算法A产生的步长$ \alpha_k $满足$ \alpha_k\geq\frac{(\sigma-1)g_{k}^{T}d_{k}}{L\|d_{k}\|^{2}} $.
证 一方面, 根据假设H2可知,
另一方面, 根据强Wolfe准则可知, $ (g_{k+1}-g_{k})^{T}d_{k}=g_{k+1}^{T}d_{k}-g_{k}^{T}d_{k} \geq(\sigma-1)g_{k}^{T}d_{k} $. 结合上述两方面, 可得
引理2.5 若H1和H2成立, $ \{x_k\} $是有算法A产生迭代点列, 则$ \sum\limits_{k=2}^{\infty}\frac{\|g_{k}\|^4}{\|g_{k}\|^2+\|d_{k-1}\|^2}<+\infty $
证 由(1.5)及引理2.1, 2.3, 2.4有
这里$ \theta=\frac{\rho(1-\sigma)c^2}{L} $. 因为$ \{f(x_k) \}$单调不增且有下界, 故知$ \sum\limits_{k=2}^{\infty}\left(f(x_k)-f(x_{k+1})\right)<+\infty $, 从而知$ \sum\limits_{k=2}^{\infty}\frac{\|g_{k}\|^4}{\| g_{k}\|^2+\| d_{k-1}\|^2}<+\infty $, 故引理得证.
定理3.1 若H1和H2成立, $ \{x_k\} $是由算法A产生迭代点列, 则或者$ \lim\limits_{k\rightarrow \infty}\inf \|g_{k}\|=0 $, 或者$ x_k $无界.
证 若$ \lim\limits_{k\rightarrow \infty}\inf \|g_{k}\|=0 $不成立, 则存在常数$ \varepsilon>0 $, 对任意$ k\geq1 $, 有$ \|g_{k}\|\geq\varepsilon $. 由$ \Phi(\alpha)=\frac{\alpha^2}{\alpha+\|d_{k-1}\|^{2}} $为单调增函数知
若$ \{x_k\} $有界, 则由H2知$\{ \| g_{k}\|^2 \}$有界. 即存在$ M>0 $, 对任意$ k\geq2 $有$ \| g_{k}\|^2\leq M $. 由引理2.3知$ \|d_{k}\|^{2}\leq \|g_{k}\|^{2}+\|d_{k-1}\|^{2} \leq M+\|d_{k-1}\|^{2} \leq \cdots \leq kM $. 由上式(3.1)及引理2.5知
而$ \sum\limits_{k=2}^{\infty}\frac{\varepsilon^4}{\varepsilon^2+kM}=+\infty $, 故矛盾, 从而知$ \{x_k \}$无界.
定理3.2 若H1和H2成立, 且水平集$ \Omega $有界, $ \{x_k\} $是由算法A产生迭代点列, 则$ \lim\limits_{k\rightarrow \infty}\inf \|g_{k}\|=0 $.
证 由水平集$ \Omega $有界知$\{ x_k \}$有界, 由定理3.1证明可知$ \lim\limits_{k\rightarrow \infty}\inf \|g_{k}\|=0 $.
为证明本文所提出方法的收敛速率, 需要如下假设.
(H3) $ f(x) $是二次连续可微的一致凸函数. 即存在$ m>0 $, $ M>0 $, 满足$ m \|y\|^2\leq y^T\nabla^2 f(x) y\leq M\|y\|^2, \quad \forall x, y \in R^n $. 若(H3)成立, 根据文献[22]可得到下面两个引理.
引理4.1 若(H3)成立, 则$ f(x) $具有下列性质:
(1) $ f(x) $在$ R^n $上有唯一的极小点$ x^* $.
(2) 水平集$ \Omega $有界.
(3) $ \frac{m}{2} \|x-x^*\|^2\leq f(x)-f(x^*)\leq \frac{M}{2} \|x-x^*\|^2 $, $ m \|x-x^*\|\leq \|g(x)\|\leq M \|x-x^*\| $.
(4) 假设(H1), (H2)成立.
引理4.2 若H3成立, $ \{x_k\} $是由算法A产生迭代点列, 且满足$ \lim\limits_{k\rightarrow \infty}\inf \|g_{k}\|=0 $, 则$ x_k\rightarrow x^* $ ($ k\rightarrow \infty $). 这里$ x^* $为$ f(x) $的唯一极小点.
定理4.1 若H3成立, $ \{x_k\} $是由算法A产生迭代点列, 则$ x_k\rightarrow x^* $ ($ k\rightarrow \infty $). 进一步, 则或者存在一个无穷子列$ \{x_k\}_{k\in K \subset \{1, 2, \cdots\}} $, 使$ \lim\limits_{k\rightarrow \infty\atop k\in K}\frac{\|g_{k}\|}{\|d_{k}\|}=0 $; 或者$ \{x_k\} $线性收敛于$ x^* $.
证 由定理3.2知$ \lim\limits_{k\rightarrow \infty}\inf \|g_{k}\|=0 $, 从而由引理4.2知$ x_k\rightarrow x^* $ ($ k\rightarrow \infty $). 若$ \{\frac{\|d_{k}\|}{\|g_{k}\|}\} $无界, 则必存在无穷点列$ \{x_k\}_{k\in K \subset \{1, 2, \cdots\}} $, 使$ \lim\limits_{k\rightarrow \infty \atop k\in K}\frac{\|d_{k}\|}{\|g_{k}\|}=+\infty $, 从而知$ \lim\limits_{k\rightarrow \infty \atop k\in K}\frac{\|g_{k}\|}{\|d_{k}\|}=0 $. 若$ \{\frac{\|d_{k}\|}{\|g_{k}\|}\} $有界, 即存在$ \frac{1}{\mu}>0$, 对任意$ k\geq 1 $, 有$ \frac{\|d_{k}\|}{\|g_{k}\|}\leq \frac{1}{\mu} $, 从而有
由$ g_{k+1}-g_{k}=\alpha_{k}\int_0^1\nabla^2f(x_k+\tau\alpha_{k}d_{k})d_{k}d\tau$, 和假设H3知
又根据Wolfe条件得
故由(4.2)和(4.3)知
由引理2.1和(4.1)知
由(1.5), (4.4)和(4.5)知
令$ \eta=\frac{\rho(1-\sigma)c^2\mu^2}{2M} $, 由引理4.1(3)知
令$ \omega=\frac{\eta m^2}{M}=\frac{m^2\rho(1-\sigma)c^2\mu^2}{M^2} $, 则
即
下面证$ 0<\omega<1 $. 由Cauchy-Schwartz不等式及引理2.1有$ \|g_{k}\|\|d_{k}\|\geq-g_{k}^{T}d_{k}\geq c\|g_{k}\|^2$, 从而由(4.5)知$ c\mu\leq1 $, 故
又由(4.6)知
从而由引理4.1(3)和上式知$ \|x_k-x^*\|^2\leq\frac{2}{m}\left(f(x_{k})-f(x^*)\right)\leq(1-\omega)^{k-1}\frac{2\left(f(x_{1})-f(x^*)\right)}{m} $. 因为$ x^* $为$ f(x) $的唯一极小点, 故$ f(x_{1})-f(x^*)>0 $. 令$ p=\sqrt{\frac{2(f(x_{1})-f(x^*))}{m}} $, $ q=\sqrt{1-\omega} $($ 0<q<1 $), 则有$ \|x_k-x^*\|\leq pq^{k-1} $, 从而知$ \{x_k\} $线性收敛于$ x^* $. 定理得证.
为了检验本文所提出算法的数值效果, 我们从无约束优化问题测试集中选取了部分算例进行测试(具体算例见文献[4]), 并将数值结果与FR, PRP和DY经典算法进行比较. 测试环境为Windows 10操作系统, CPU1.6GHZ 4GB RAM, 所有程序由Matlab R2016a软件实现. 参数设置为$ \rho=0.04 $, $ \sigma=0.6 $, 算法的终止条件为$ \|g_k\|\leq 10^{-4} $或迭代次数超过1000. 测试函数和数值结果见表 1和表 2, 其中Functions表示测试函数的名称, $ NaN/NI/x_0/\bar{x}/f(\bar{x})/x^*/f(x^*) $分别代表程序运行无结果, 迭代次数, 算法初始值, 算法终止时的迭代值, 算法终止时的函数值, 函数最优解, 函数最优值.
从表 2结果可以看出, FR, PRP和DY算法在数值试验中的表现并不理想, 较多函数寻优失效. 本文提出的新算法具有良好的数值表现, 总体上优于比较的算法, 是可行的, 有效的.