*参考了《最优化理论与方法》科学出版社 袁亚湘 孙文瑜
前言
无约束的优化问题,有丰富的方法求解,相对有约束的优化问题比较简单。对于有约束的优化问题,一个重要的解决思路就是转化为无约束的优化问题求解。为此,一种方法是给优化目标加上惩罚项作为新的优化目标,称为新问题。惩罚项用来描述一个解对约束的破坏程度。破坏越严重,惩罚项越大(最小化问题),那么越偏离原问题的可行域,同时也越不能称为新问题的最优解。
内点法又称内点罚函数法,是这种思想的具体体现。
原理
对于不等式约束的优化问题P1:
现有函数h(c)满足
1. limc→0+h(c)=+∞
2. h(c)>0,∀c>0
3. h(c1)≥h(c2),∀c1≤c2
将h(c)作为惩罚项,构造内点罚函数
则有优化问题P2:
迭代地解问题P2,在初始点选择内点,由于惩罚项h(c)在边界上除取值无穷,那么在迭代过程中产生的解都将会是内点,即在可行域内。这就相当于在可行域的边界上筑起了无限高的高墙,迭代过程不可能爬过这面墙,所以产生的解都是可行解。意味着,可行性是自然满足的。
考虑如下的一系列优化问题P2.k
其中的σ−1k满足
那么可以看出,P2.k一系列问题中,惩罚项的影响在逐步减小趋于0。即问题P2.k的最优解越来越趋于问题P1的最优解。
设问题P2.k的最优解为xσk,接下来证明上边所说的这两件事
1. 惩罚项的影响逐渐减小趋于0
2. P2.k最优解趋于P1的最优解
即
limk→∞1σk∑mi=1h(ci(xσk))=0(1)
limk→∞f(xσk)=infx∈Xf(x)(2)
X是问题的可行域
证明:由于目标函数连续,对于
固定η,xη,由于σk的单调性,故存在K,使得
由于xσk是P2.k的最优解,那么
即
(6)移项得到
将(3)、(4)代入(7)得到:
所以式(1)得证。
又由式(3)、(4)、(7)可得:
式(2)得证。
证毕。
以上的证明过程证明了内点罚函数最终将收敛到P1的最优解。
操作性
注意在上一部分,每一步所用的都是最优解,而且没有给出xσk迭代得到xσk+1的方法。由于精确求解最优解的困难,考虑非精确求解P2的方法。
假设f(x)和h(ci(x))都是凸函数,那么Pσ(x)也是凸函数,则问题P3
的牛顿步长为
如果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,如果dk≠0 则跳转第三步;
如果∥∇2f(xk)∥≤ϵ则停止;
否则,σk←10σk;跳转第二步。
第三步:αk=1;
如果xk+dk是内点则跳转第四步;
求1≥α¯k>0使得xk+α¯kdk在可行域边界上;
αk←0.9α¯k
第四步:xk+1←xk+αkdk;
如果σ−1k∑mi=1h(ci(xk))≤ϵ则停;
σk+1←10σk;k←k=1;跳转第二步。
实验
未完待续