内点法解不等式约束的优化问题

来源:互联网 发布:淘宝1钻店卖 编辑:程序博客网 时间:2024/06/05 11:20

*参考了《最优化理论与方法》科学出版社 袁亚湘 孙文瑜

前言

无约束的优化问题,有丰富的方法求解,相对有约束的优化问题比较简单。对于有约束的优化问题,一个重要的解决思路就是转化为无约束的优化问题求解。为此,一种方法是给优化目标加上惩罚项作为新的优化目标,称为新问题。惩罚项用来描述一个解对约束的破坏程度。破坏越严重,惩罚项越大(最小化问题),那么越偏离原问题的可行域,同时也越不能称为新问题的最优解。

内点法又称内点罚函数法,是这种思想的具体体现。

原理

对于不等式约束的优化问题P1:

minxRnf(x)s.t.ci(x)0,i=1,,m

现有函数h(c)满足
1. limc0+h(c)=+
2. h(c)>0,c>0
3. h(c1)h(c2),c1c2

h(c)作为惩罚项,构造内点罚函数

Pσ(x)=f(x)+σ1i=1mh(ci(x))

则有优化问题P2:
minxRnPσ(x)

迭代地解问题P2,在初始点选择内点,由于惩罚项h(c)在边界上除取值无穷,那么在迭代过程中产生的解都将会是内点,即在可行域内。这就相当于在可行域的边界上筑起了无限高的高墙,迭代过程不可能爬过这面墙,所以产生的解都是可行解。意味着,可行性是自然满足的。

考虑如下的一系列优化问题P2.k

minxRnPσk(x)=f(x)+σ1ki=1mh(ci(x))

其中的σ1k满足
σ11>σ12>>σ1k>>0

那么可以看出,P2.k一系列问题中,惩罚项的影响在逐步减小趋于0。即问题P2.k的最优解越来越趋于问题P1的最优解。

设问题P2.k的最优解为xσk,接下来证明上边所说的这两件事
1. 惩罚项的影响逐渐减小趋于0
2. P2.k最优解趋于P1的最优解

limk1σkmi=1h(ci(xσk))=0(1) 
limkf(xσk)=infxXf(x)(2)
X是问题的可行域
证明:由于目标函数连续,对于η>0,xηX使得

f(xη)<infxXf(x)+η/2(3)

固定ηxη,由于σk的单调性,故存在K,使得
σk>2ηi=1mh(ci(xη)),kK(4)

由于xσk是P2.k的最优解,那么
Pσk(xσk)Pσk(xη)(5)


f(xσk)+σ1ki=1mh(ci(xσk)f(xη)+σ1ki=1mh(ci(xη)(6)

(6)移项得到
σ1ki=1mh(ci(xσk)f(xη)+σ1ki=1mh(ci(xη)f(xσk)(7)

将(3)、(4)代入(7)得到:
σ1ki=1mh(ci(xσk)infxXf(x)+η2+η2f(xσk)η(8)

所以式(1)得证。
又由式(3)、(4)、(7)可得:
f(xσk)f(xη)+σ1ki=1mh(ci(xη)infxXf(x)+η(9)

式(2)得证。
证毕。

以上的证明过程证明了内点罚函数最终将收敛到P1的最优解。

操作性

注意在上一部分,每一步所用的都是最优解,而且没有给出xσk迭代得到xσk+1的方法。由于精确求解最优解的困难,考虑非精确求解P2的方法。
假设f(x)h(ci(x))都是凸函数,那么Pσ(x)也是凸函数,则问题P3

minxXPσk(x)(10)

的牛顿步长为
dk=[2Pσk(xk)]1Pσk(xk)(11)

如果xk+dk在可行域内,那么令xk+1=xk+dk,否则存在αk>0使得xk+αkdk正好处在可行域边界上,这时令xk+1=xk+0.9αkdk,这样xk+1总是内点。
完整的算法如下:
输入:σ1>0,ϵ0,f(x),ci(x),i=1,,m
输出:xk+1
第一步:给出x1满足ci(x)>0,i=1,,m
第二步:计算dk,如果dk0 则跳转第三步;
如果2f(xk)ϵ则停止;
否则,σk10σk;跳转第二步。
第三步:αk=1;
如果xk+dk是内点则跳转第四步;
1α¯k>0使得xk+α¯kdk在可行域边界上;
αk0.9α¯k
第四步:xk+1xk+αkdk;
如果σ1kmi=1h(ci(xk))ϵ则停;
σk+110σkkk=1;跳转第二步。

实验

未完待续