*参考了《最优化理论与方法》科学出版社 袁亚湘 孙文瑜
前言
无约束的优化问题,有丰富的方法求解,相对有约束的优化问题比较简单。对于有约束的优化问题,一个重要的解决思路就是转化为无约束的优化问题求解。为此,一种方法是给优化目标加上惩罚项作为新的优化目标,称为新问题。惩罚项用来描述一个解对约束的破坏程度。破坏越严重,惩罚项越大(最小化问题),那么越偏离原问题的可行域,同时也越不能称为新问题的最优解。
内点法又称内点罚函数法,是这种思想的具体体现。
原理
对于不等式约束的优化问题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 ;跳转第二步。
实验
未完待续