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

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

前言

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

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

原理

对于不等式约束的优化问题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σk kk=1 ;跳转第二步。

实验

未完待续

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值