一个低阶滤子算法及收敛性
2011-07-06王学永
王学永
(重庆大学数学与统计学院,重庆 401331)
2002年,Fletcher和Leyffer[1]提出了滤子方法来求解非线性约束优化问题。该算法接受新的测试点的条件更加温和,即一个测试点被滤子接受,当且仅当目标函数值或者违反约束度有充分的下降。自此,许多学者进行这方面的研究,并出现大量的成果[2-3],但这种方法仍然会遇到马洛托斯效应。罚函数方法在适当选取罚参数时会避免马洛托斯效应。受这些思想的启发,提出了一种低阶罚函数滤子算法[4-5],在温和的条件下证明了算法的全局收敛性。
1 问题与算法描述
本文考虑如下非线性约束优化问题:

其中 f(x):Rn→R,c(x)=(c(x)):Rn→Rm是连续可微函数。
ii∈I∪E
记当前迭代点是xk,定义一种低阶罚函数c-(x)=(ci-(x))i∈I∪E,其中令

显然在xk处,若第i个约束函数满足,则有ci-(x)=0。本研究利用这种低阶罚函数定义违反约束度函数为h(x)=‖c(x)‖,同时定义p(x)=f(x)+δ‖c-(x)‖。
在信赖域方法中给定测试点xk,信赖域半径ρ≥0,通过求解如下二次规划问题得到步长dk:

其中Bk是对称矩阵。
在本文中若子问题QPk相容通过上述方法可求得下一迭代点xk+1;若子问题QPk不相容,则通过可行性恢复阶段算法(算法B)得到新的迭代点xk+1。
定义1 数对(h(x1),p(x1))控制(h(x2),p(x2)),当且仅当 h(x1)≤h(x2),p(x1)≤p(x2)。
定义2 滤子是一列不能相互控制的数对。
注1:在滤子方法中,一个点x被接受当且仅当它被当前迭代点xk和当前滤子中任何其他迭代点接受。本文中给定α∈(0,1),若p(x)≤p(y)-αh ( x)或h(x)≤(1-α)h(y),则称x能被 y接受。若x被滤子中所有数对接受,则称x被滤子接受。
本文用如下方法调整滤子集:Fk+1=Fk∪{k+1}Dk+1。
定义3

算法A
步骤0 给定
步骤1 计算
步骤2 求解QPk得到步长dk。
步骤3 若dk=0,则停;若QPk无解,进入算法B得到dk,令xk+1=xk+dk,转步骤1。……
