求解无约束问题的一种新的扰动BFGS方法
A New Perturbed BFGS Method for Unconstrained Optimization Problems
DOI: 10.12677/AAM.2019.82030, PDF, HTML, XML, 下载: 1,190  浏览: 2,248 
作者: 陈 飞:长沙理工大学数学与统计学院,湖南 长沙
关键词: 扰动BFGS方法全局收敛Perturbation BFGS Method Global Convergence
摘要: 基于文献[1]的扰动思想和文献[2]中的BFGS型方法,本文提出了一种新的扰动BFGS方法并证明了其在Wolfe搜索下求解非凸优化问题具有全局收敛性。数值结果表明该方法比较有效。
Abstract: Based on the idea of [1] and the BFGS method in [2], this paper presents a new perturbed BFGS method for the unconstrained optimization. We prove that the proposed method has global con-vergence for nonconvex optimization problems. Numerical results show that this method is effi-cient.
文章引用:陈飞. 求解无约束问题的一种新的扰动BFGS方法[J]. 应用数学进展, 2019, 8(2): 258-264. https://doi.org/10.12677/AAM.2019.82030

1. 引言

本文考虑如下的无约束问题:

min f ( x ) , x R n , (1)

其中 是连续可微函数。

BFGS方法是求解无约束优化问题的一种非常有效的拟牛顿方法,BFGS方法在Wolfe搜索下对求解凸优化问题具有全局收敛性,但对非凸问题不一定收敛。在文献 [1] 中刘陶文提出了一种扰动的BFGS方法,其中对标准的BFGS方法的迭代矩阵进行了扰动,该方法证明了在Wolfe搜索下对求解非凸问题具有全局收敛性。Zhang,Deng和Chen在文献 [2] 中基于新的拟牛顿矩阵提出了一种新的拟牛顿算法,该方法满足更好的割线方程。本文的目的就是基于文献 [1] 的扰动思想,同时结合文献 [2] 中的BFGS迭代公式,提出了一种新的扰动的BFGS方法。

本文安排如下,在第二节中我们提出新的扰动BFGS方法的算法,在第三节中我们分析了该算法的全局收敛性,第四节中我们进行了数值实验,验证了该算法的有效性,在第五节中我们对论文进行了总结。

2. 算法

求解问题(1)新的扰动BFGS方法基本的迭代格式为

x k + 1 = x k + α k d k , k 1 , (2)

其中 是当前的近似解, d k 为搜索方向, α k 是步长。

基于文献 [1] 的扰动思想,通过求解下列线性方程组得到搜索方向 d k

( B k + μ k Q ) d k + f ( x k ) = 0 , (3)

其中 f ( x ) 表示其梯度, B k 为拟牛顿矩阵,也就是 f ( x ) 在点x处的Hessian矩阵的近似,并且它要求是正定的。Q是某个给定的对称正定矩阵, u k > 0 且它的值依赖于k,依照某种规则取值为 ε k 或者 ε k B k F ,其中 ε k > 0 是某一个参数且它的值与k有关,当 k + 时, ε k 0

步长 α k 是采用Wolfe型非精确搜索确定的,即通过求解

{ f ( x k + α k d k ) f ( x k ) σ 1 α k f ( x k ) T d k f ( x k + 1 ) T d k σ 2 f ( x k ) T d k (4)

来计算步长 α k ,则条件 y k T s k > 0 被满足,其中 σ 1 σ 2 是正的常数,且满足 σ 1 < σ 2 < 1

新的拟牛顿矩阵由Zhang,Deng和Chen文献 [2] 提出,由下列BFGS公式得到

B k + 1 = B k B k s k s k T B k s k T B k s k + y ¯ k y ¯ k T y ¯ k T s k , (5)

其中

y ¯ k = f ( x k + 1 ) f ( x k ) + r k s k , (6)

s k = x k + 1 x k , (7)

r k = 3 ( f ( x k + 1 ) + f ( x k ) ) T s k 6 ( f ( x k + 1 ) f ( x k ) ) s k 2 . (8)

再由Wolfe搜索下则条件被满足,而由Zhang,Deng和Chen文献 [2] 中的引理4可知当 y k T s k > 0 y ¯ T k s k > 0

下面我们给出求解问题(1)的新的扰动的BFGS方法的具体步骤:

算法1.1:(新的扰动的BFGS方法)

步0:选择初始点 x 1 R n 和初始的对称正定矩阵以及。选用常数 0 < σ 1 < σ 2 < 1 ρ τ η ( 0 , 1 ) ε 1 > 0 以及 M B > 1 。令 u 1 = ε 1 以及 δ = f ( x 1 ) 。令 k = 1

步1:解线性方程组(3)得到 d k ,转步2。

步2:由条件(4)来计算 α k ,令 x k + 1 = x k + α k d k

步3:由修正公式(5),(6),(7),(8)确定 B k + 1

步4:如果 f ( x k + 1 ) / δ η ,令 ε k + 1 = τ ε k u k + 1 = ε k + 1 δ = f ( x k + 1 )

否则令 ε k + 1 = ε k 以及

u k + 1 = { ε k + 1 B k + 1 F , B k + 1 F M k + 1 ε k + 1 ,

其中 M k = max { M B , 1 / f ( x k ) }

步5:令 k = k + 1 ,然后转步1。

在算法1.1中 ε k 按下面的规则逐步被减少:

其中 τ η ( 0 , 1 ) 是正的常数,并且 δ = f ( x i ) ,i取中的某个指标,它的值随着迭代过程被不断的修改,这样得到一个序列 { f ( x k ) } 中的一个公比不超过 η ( 0 < η < 1 ) 的几何子列。如果

lim k inf f ( x k ) = 0

成立,则 { ε k } 单调非增并且当 k ε k 0 。由此可以得到当 B k F 有界时, ε k B k F 0

3. 算法全局收敛性证明

为了证明新的扰动BFGS方法的全局收敛性,我们做出如下的假设

假设3.1:水平集

Ω = { x R n : f ( x ) f ( x 1 ) }

有界,函数 f ( x ) Ω 上Lipschitz连续的梯度,即存在常数 L > 0 满足

f ( x ) f ( y ) L x y , x , y Ω . (3.1)

需要注意的是采用线性搜索(4),由(5)产生的矩阵总是正定的,从而序列 { f ( x k ) } 是单调递减的,而且由线性搜索(4)的第一个不等式以及假设3.1可以得到

k = 1 α k f ( x k ) T d k < + ,

由此可推出

lim k α k f ( x k ) T d k = lim k f ( x k ) T s k = 0. (9)

为了表示的方便,根据算法1.1中的步4我们定义指标集合

K τ = { k : ε k + 1 = τ ε k } , (10)

以及

K B = { k : B k F M k } . (11)

为了证明算法1.1的全局收敛性我们需要先证明如下的引理:

引理3.1:假设 K τ 是有限集,则算法1.1产生的序列 { α k } 有非零的下界,并且当 k 时, d k 0

证明:如果 K τ 是有限集,因此 ε k 被减少有限次,也就是说存在一个整数 k 1 使得对所有的 k k 1 ε k = ε k 1 ,由于 B k 是正定的,对于所有的k有

f ( x k ) T d k = d k T ( B k + u k I ) d k ε k 1 min { 1 , M B } d k 2 . (12)

由(4)中的第二个不等式以及假设3.1,我们得到对所有的 k 1 ,不等式

L α k d k 2 ( f ( x k + α k d k ) f ( x k ) ) T d k ( 1 σ 2 ) f ( x k ) T d k

成立。因此,由(12),我们可以推出

α k ( 1 σ 2 ) f ( x k ) T d k L d k 2 = ( 1 σ 2 ) d k T ( B k + u k I ) d k L d k 2 ( 1 σ 2 ) L 1 ε k 1 min { 1 , M B } > 0 (13)

而且由(13),(9)和(12)易知当 k 时, d k 0

引理3.2:如果 K B 是无限集,而 K τ 是有限集,则 K τ 必有

lim k inf f ( x k ) = 0 (14)

证明:令 d k ^ = B k F d k α k ^ = α k / B k F 。则。当 是有限集时,我们从集合 K B 的定义(11)以及算法1.1的步4知,对于任何的 k k 1 有, u k = ε k 1 B k F 。即满足:

B k d k + ε k 1 B k F d k + f ( x k ) = 0.

所以

f ( x k ) T d k ^ = d k T B k d k ^ + ε k 1 d k ^ 2 . (15)

再由(4)的第二个不等式和 f ( x ) 的Lipschitz连续性得

L α k ^ d k ^ 2 = L α k d k T d k ^ ( f ( x k + α k d k ) f ( x k ) ) T d k ^ ( 1 σ 2 ) f ( x k ) T d k ^ .

由上面不等式以及(15)可推出

α k ^ ( 1 σ 2 ) ε k 1 L 1 > 0.

进而由上面的关系以及(15)和(9),我们得

lim k , k K B d k ^ = 0. (16)

而且对所有的 k K B ,有

f ( x k ) B k d k ^ / B k F + ε k 1 d k ^ ( 1 + ε k 1 ) d k ^ .

因而由(16)可得(14)。

引理3.3:如果 K B 是有限集且 K τ 也是有限的,那么(14)成立。

证明:我们用反证法假设存在一个某个正数 γ 使得对所有k有 f ( x k ) γ 成立。由算法的1.1的步4可得,当 k K B 时, u k = ε k ,并且

B k F < max { M B 1 / f ( x k ) } max { M B 1 / γ } . (17)

K τ 是有限集时,则(12)对所有的 k k 1 成立。由引理3.1以及(9)可得 d k 0 ( k ) 。由(3)和(17)可推出,对所有 k K B 有下面的不等式成立

f ( x k ) ( B k + ε k ) d k ( B k F + ε 1 ) d k ( max { M B , 1 / γ } + ε 1 ) d k .

这就意味着

lim k , k K B f ( x k ) = 0.

这与假设相矛盾,所以必有(14)成立。

在引理3.2和3.3的基础上我们证明了算法1.1的全局收敛性。

定理3.1:设序列 { x k } 由算法1.1产生并且满足假设3.1则(14)成立。

证明:我们考虑两种情形:(i)是无限集和(ii) K τ 是有限集。

情形(i):由 K τ 的定义(10),必存在 { f ( x k ) } 中的一个公比不超过 η ( 0 < η < 1 ) 几何子序列,此时必有(14)成立。

情形(ii):我们需要考虑 K B 是无限还是有限两种情况。由引理3.2和3.3可知,上面两种情况的任意一种情况中,(14)总是成立的,也就是说 ε k 被减少无穷多次,由 K τ 的定义(10)中可知情形(ii)是不会出现的。

由定理3.1的证明可以看出, ε k 一定被减少无穷多次,所以当 k 时, ε k 0 。如果 B k 是有界的,那么当k充分大时, u k = ε k ,并且当 k 时, u k 0

4. 数值实验与结果分析

在CPU为1.6 HZ、内存为512 MB的电脑上分别对新的扰动的BFGS算法(算法1.1)和文献 [3] 中的CBFGS等算法进行了数值实验,其中测试问题的函数都来源于文献 [4] 。程序采用Matlab语言编写,在算法中我们使用 作为算法的终止条件,算法中有关常数与参数的选择如下: σ 1 = 0.001 σ 2 = 0.9 η = 0.5 τ = 0.7 ε 1 = 1.0 M B = 10 10 B 1 = I (单位矩阵)。

首先选择了3个二维问题,1个三维问题,2个四维问题,对算法进行了分析,问题分别是:

rose

min f ( x ) = 100 ( x 1 2 x 2 ) 2 + ( x 1 1 ) 2 , x = ( x 1 , x 2 ) T R 2 ,

初始点: x 0 = ( 1.2 , 1 ) T ,精确解: x * = ( 1 , 1 ) T f ( x ) = 0

badscp

min f ( x ) = ( 10 4 x 1 x 2 1 ) 2 + ( e x 1 + e x 2 1.0001 ) 2 , x = ( x 1 , x 2 ) T R 2

初始点: x 0 = ( 0 , 1 ) T ,精确解: x = ( 1.098 , 9.106 ) T f ( x ) = 0

badscb

min f ( x ) = ( x 1 10 6 ) 2 + ( x 2 2 × 10 6 ) 2 + ( x 1 x 2 2 ) 2 , x = ( x 1 , x 2 ) T R 2

初始点: x 0 = ( 1 , 1 ) T ,精确解: x = ( 10 6 , 2 × 10 6 ) T f ( x ) = 0

helix

min f ( x ) = 100 [ x 3 10 θ ( x 1 , x 2 ) ] 2 + 100 [ ( x 1 2 + x 2 2 ) 1 2 1 ] 2 + x 3 2 ,

其中 θ ( x 1 , x 2 ) = { 1 arctan ( x 2 x 1 ) , x 1 > 0 1 arctan ( x 2 x 1 ) + 0.5 , x 1 < 0 x = ( x 1 , x 2 , x 3 ) T R 3

初始点: ( 1 , 0 , 0 ) T ,精确解: x * = ( 1 , 0 , 0 ) T f ( x ) = 0

sing

min f ( x ) = ( x 1 + 10 x 2 ) 2 + 5 ( x 3 x 4 ) 2 + ( x 2 2 x 3 ) 4 + 10 ( x 1 x 4 ) 4 , x = ( x 1 , x 2 , x 3 , x 4 ) T R 4 ,

初始点: x 0 = ( 3 , 1 , 0 , 1 ) T ,精确解: x * = ( 0 , 0 , 0 , 0 ) T f ( x ) = 0

wood

min f ( x ) = 100 ( x 2 x 1 2 ) 2 + ( 1 x 1 ) 2 + 90 ( x 4 x 3 2 ) 2 + ( 1 x 3 ) 2 + 10 ( x 2 + x 4 2 ) 2 + 1 10 ( x 2 x 4 ) 2 , x = ( x 1 , x 2 , x 3 , x 4 ) T R 4 ,

初始点: x 0 = ( 3 , 1 , 3 , 1 ) T ,精确解 x * = ( 1 , 1 , 1 , 1 ) T f ( x ) = 0

通过编程计算得到表1

Table 1. Result analysis of solving several kinds of problems

表1. 求解几类问题的结果分析

通过表1的结果,得出我们的算法能有效地解决二维和三维问题,以及四维问题,说明我们的算法是有效的。

Table 2. Comparisons with other methods

表2. 与其他几类方法的比较分析

通过表2对不同的BFGS方法的迭代步进行分析,我们可以得出我们扰动的算法在求解badscp问题时需要188步,比其他三种方法的迭代步要少,同时在求解其他问题时的迭代步骤相差不大。

5. 小结

通过数值实验结果和全局收敛性的证明,说明我们提出的新扰动的BFGS方法对求解非凸优化问题是有效的。

参考文献

参考文献

[1] 刘陶文. BFGS方法及其在求解约束优化问题中的应用[D]: [博士学位论文]. 长沙: 湖南大学, 2006.
[2] Zhang, J.Z., Deng, N.Y. and Chen, L.H. (1999) New Quasi-Newton Equation and Related Method for Unconstrained Optimization. Journal of Optimization Theory and Applications, 102, 147-167.
https://doi.org/10.1023/A:1021898630001
[3] 张继伟. 修正Broyden族拟牛顿算法及其应用[D]: [博士学位论文]. 长沙: 湖南大学, 2006.
[4] More, J.J., Garbow, B.S. and Hillstrom, K.E. (1981) Testing Unconstrained Op-timization Software. ACM Transactions on Mathematical Software, 7, 17-41.
https://doi.org/10.1145/355934.355936