罚函数法的特点是根据问题的目标函数以及约束函数,构造出一个具有惩罚效果的目标函数序列,从而把约束最优化问题转换为对一系列无约束最优化问题的求解。而这种惩罚策略对于在无约束问题的求解过程中企图违反约束的那些迭代点给予很大的目标函数值,迫使这一系列无约束问题的极小点(迭代点)或者无线的向容许集靠近(称为外部罚函数法),或者一直保持在容许集内移动(称为内部罚函数法,仅适用于具有不等式约束的最优化问题),直到收敛到约束问题的极小点。
基本算法
考虑一般约束问题
mins.t.f(x)si(x)≥0hj(x)=0i=1,2,...,mj=1,2,...,l⎫⎭⎬⎪⎪(1)
可以采用如下的惩罚策略
F(x,μ)=f(x)+μ(∑j=1l[hj(x)]2+∑i=1m[si(x)]2μ(si(x)))(2)
为简单起见,我们将
α(x)=∑j=1l[hj(x)]2+∑i=1m[si(x)]2μ(si(x))(3)
我们将公式(3)称为约束问题(1)的惩罚函数。在惩罚函数
α(x)
中,有函数
μ(x)
,函数
μ:R1→R1
是阶跃函数,所以有
μ(x)={
0,1,当t≥0时当t<0时(4)
根据以上显然有
α(x){
=0,>0,当x∈D时当x∉D时(5)
其中
D
是约束问题(1)的容许集。
我们把函数
所以有约束最优化问题(1)能引出如下无约束最优化问题
minxF(x,μ)
即
minxf(x)+μα(x)(6)
那么我们如何通过式(6)来求解约束最优化问题(1)呢,下面给出一个定理。
定理1: 对于某个给定 μ ,若 xμ 是无约束问题(6)的极小点,则 xμ 是约束问题(1)的极小点的充要条件是 xμ 是约束问题(1)的容许点。
证明: 必要性 因为极小点必定是容许点,所以必要性显然成立。
充分性 设 xμ∈D ,这里的 D 是约束问题(1)的容许集,那么对于