的最优解必落在可行域的内部,这样,我们就将约束优化问题的求解转换成无约束优化问题
的求解。文献综述
内部惩罚法计算步骤
第1步 选取初始点,罚参数列,给出检验终止条件的误差,令;
第2步 作障碍函数,再构造问题的增广目标函数,即
;
第3步 选用某种无约束最优化方法,以为初始点,求解
1。2惩罚函数法在MATLAB中的实现
例1-1。求解下列约束优化问题
取初始点为,该问题的精确解
解:先编制目标函数文件f1。m
function f=f1(x)
f=(x(1)-2。0)^2+(x(2)-1。0)^2;
等式约束函数文件h1。m
function he=h1(x)
he=x(1)-2。0*x(2)+1。0;
不等式约束函数文件g1。m
function g=df1(x)
gi=-0。25*x(1)^2-x(x)^2+1;
目标函数的梯度文件df1。m
function g=df1(x)
g=[2。0*(x(1)-2。0),2。0*(x(2)-1。0)];
等式约束(向量)函数的Jacobi矩阵(转置)文件dh1。m
function dhe=dh1(x)
dhe=[1。0,-2。0]; 来:自[优E尔L论W文W网www.youerw.com +QQ752018766-
不等式约束(向量)函数的Jacobi矩阵(转置)文件dg1。m
function dgi=dg1(x)
dgi=[-0。5*x(1),-2。0*x(2)];
然后在MATLAB命令窗口输入如下命令:
x0=[3,3];
[x,mu。lambda,output]=multphr(f1,h1,g1,df1,dh1,dg1,x0);
得到如下输出:
x=
0。8229
0。9114
mu=
-1。5945
lambda=
1。8465
Output=
fval:1。3934
iter:23
inner_iter:82
bta:9。5419e-006
2。可行方向法
2。1可行方向法的基本思想
可行方向法是一种处理约束优化问题最直接的方法,它的基本思想是每一步迭代产生的搜索方向不仅对目标函数是下降方向,而且对约束函数来说是可行方向。
对于约束最优化问题我们要从线性约束和非线性约束两部分来讨论了可行方向法。