约束最优化方法 (四) 乘子法

我的微信公众号名称:AI研究订阅号
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

  由于外部罚函数法随着罚因子的增大,增广目标函数的Hesse矩阵条件变得越来越坏,从而导致在实际计算中,数值计算的稳定性变得越来越差,难以精确求解,乘子法是在约束问题的Lagrange函数中加入相应的惩罚,使得在求解系列无约束问题时,罚因子不必趋于无穷大就能求到约束问题的最优解,而且数值计算的稳定性也能得到很好的保证。理论与实践皆表明,乘子法优于外部罚函数法。

等式约束的情形

考虑等式约束问题,将其写成向量形式为:
m i n f ( x ) ; s . t .    h ( x ) = 0 min f(x); \\ s.t. \ \ h(x)=0
其中 f f h h 都是二次连续可微函数,设 D = { x h ( x ) = 0 } D=\{x|h(x)=0\} ,上式的Lagrange函数是:
L ( x , λ ) = f ( x ) λ T h ( x ) L(x,\lambda)=f(x)-\lambda^{T}h(x)
x x^{*} 是上式的极小点, λ \lambda^{*} 是相应的Lagrange乘子,有:
x L ( x λ ) = f ( x ) h ( x ) λ = 0 λ L ( x λ ) = h ( x ) = 0 \nabla_{x}L(x^{*},\lambda^{*})=\nabla f(x^{*})-\nabla h(x^{*})\lambda^{*}=0 \\ \nabla_{\lambda}L(x^{*},\lambda^{*})=h(x^{*})=0
注意到,对于 x D \forall x \in D ,都有 h ( x ) = 0 h(x)=0 ,因此:
f ( x ) = L ( x , λ ) L ( x , λ ) = f ( x ) f(x^{*})=L(x^{*},\lambda^{*}) \leq L(x,\lambda^{*})=f(x)
由此可见,约束问题与下述问题等价:
m i n L ( x , λ ) ; s . t .    h ( x ) = 0 min L(x,\lambda^{*});\\ s.t. \ \ h(x)=0
使用外部罚函数法,其增广目标函数为:
F ( x , λ , μ ) = L ( x , λ ) + μ h ( x ) T h ( x ) F(x,\lambda^{*},\mu)=L(x,\lambda^{*})+\mu h(x)^{T}h(x)
其实 λ \lambda^{*} 是未知向量。所以实际上不能求出 F ( x , λ , μ ) F(x,\lambda^{*},\mu) 的极小点。下面将指出,在求 x x^{*} 的同时,采用迭代的方法也会同时求出 λ \lambda^{*} 。这就是乘子法的基本思想。

一般约束情形

对于一般约束问题
m i n f ( x ) , s . t .    s i ( x ) 0 ,    i = 1 , 2 , , m h j ( x ) = 0 , j = 1 , 2 , , l min f(x), \\ s.t. \ \ s_{i}(x) \geq 0, \ \ i=1,2,\cdots, m\\ h_{j}(x)=0, j = 1,2,\cdots, l
仿照前面的推导,可得增广目标函数为:
F ( x , v , λ , μ ) = F ( x ) + 1 4 μ i = 1 m { [ m a x { 0 , v i 2 μ s i ( x ) } ] 2 v i 2 } j = 1 l λ j h j ( x ) + μ j = 1 l [ h j ( x ) ] 2 F(x,v,\lambda,\mu)=F(x)+\frac{1}{4\mu}\sum_{i=1}^{m}\{[max\{0,v_{i}-2\mu s_{i}(x)\}]^{2}-v_{i}^{2}\}-\sum_{j=1}^{l}\lambda_{j}h_{j}(x)+\mu\sum_{j=1}^{l}[h_{j}(x)]^{2}
乘子迭代公式为:
v i k + 1 = m a x { 0 , v i k 2 μ s i ( x k ) } i = 1 , 2 , , m λ j k + 1 = λ j k 2 μ h j ( x k ) , j = 1 , 2 , , l v_{i}^{k+1}=max\{0,v_{i}^{k}-2\mu s_{i}(x_{k})\},i=1,2,\cdots ,m \\ \lambda_{j}^{k+1}=\lambda_{j}^{k}-2\mu h_{j}(x_{k}), j=1,2, \cdots, l
其中 λ j \lambda_{j} 代表的是第 j j 等式约束所对应的Lagrange乘子, v i v_{i} 代表的是第 i i 不等式约束对应的Lagrange乘子,显然 v i 0 v_{i}\geq0

发布了141 篇原创文章 · 获赞 114 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_39059031/article/details/103448363