内点惩罚函数法在优化设计中的应用
2020-09-09武静悦臧胜超魏宁宁刘成浩
武静悦 臧胜超 魏宁宁 刘成浩
(山东职业学院 山东 济南 250104)
内点惩罚函数法基本原理是将有约束优化问题中的不等式约束函数经过加权转化后,和原目标函数结合形成惩罚函数。惩罚函数在可行域内按一定的法则改变加权因子的值,构成一些列无约束优化问题,求得一系列的无约束最优解,并不断地逼近原约束优化问题地最优解。
数学模型
(1)
公式(1)中,求目标函数为f(x)的极小值,不等式约束条件为gj(x)≤0。
将不等式约束函数经过加权转化后,和原目标函数结合形成惩罚函数,形式为:
(2)
或
(3)
rk称为惩罚因子,它是一个由大到小且趋近于0的正数列,即:
r0>r1>r2>…rk>rk+1>…→0
某工程问题数学模型可表达为:
s.t.g(x)=1-x1≤0
首先构造此数学模型的内点惩罚函数:
(4)
惩罚函数可以用约束优化问题直接解法,用解析法求得无约束极值点为:
(5)
由公式5可计算,rk取由大到小且趋近于0的正数列时,所求极值越接近数学模型极值。当:
r0=1.2x*(r0)=[1.422 0]Tf(x*(r0))=2.022
r0=0.36x*(r0)=[1.156 0]Tf(x*(r0))=1.336
r0=0x*(r0)=[1 0]Tf(x*(r0))=1
绘制出r0分别取不同值时惩罚函数的等值线(函数等值线可利用Matlab中ezcontour函数绘制)如图1所示。由图1可以看出在可行域内(函数g(x)右边),r0越趋近于0所求值越接近原函数极值。
图1 惩罚函数等值线
内点惩罚函数方法优缺点:
(1)用于目标函数比较复杂,或在可行域外无定义的场合下;
(2)由于优化过程是在可行域内逐步改进优化设计方案,所以在解决工程问题时,只要满足工程要求,即使未达到最优解,接近的过程解也是可行的;
(3)初始点和序列极值点均需严格满足所有约束条件;
(4)只能解决不等式约束问题。