我的微信公众号名称:AI研究订阅号
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!
由于外部罚函数法随着罚因子的增大,增广目标函数的Hesse矩阵条件变得越来越坏,从而导致在实际计算中,数值计算的稳定性变得越来越差,难以精确求解,乘子法是在约束问题的Lagrange函数中加入相应的惩罚,使得在求解系列无约束问题时,罚因子不必趋于无穷大就能求到约束问题的最优解,而且数值计算的稳定性也能得到很好的保证。理论与实践皆表明,乘子法优于外部罚函数法。
等式约束的情形
考虑等式约束问题,将其写成向量形式为:
minf(x);s.t. h(x)=0
其中
f,
h都是二次连续可微函数,设
D={x∣h(x)=0},上式的Lagrange函数是:
L(x,λ)=f(x)−λTh(x)
设
x∗是上式的极小点,
λ∗是相应的Lagrange乘子,有:
∇xL(x∗,λ∗)=∇f(x∗)−∇h(x∗)λ∗=0∇λL(x∗,λ∗)=h(x∗)=0
注意到,对于
∀x∈D,都有
h(x)=0,因此:
f(x∗)=L(x∗,λ∗)≤L(x,λ∗)=f(x)
由此可见,约束问题与下述问题等价:
minL(x,λ∗);s.t. h(x)=0
使用外部罚函数法,其增广目标函数为:
F(x,λ∗,μ)=L(x,λ∗)+μh(x)Th(x)
其实
λ∗是未知向量。所以实际上不能求出
F(x,λ∗,μ)的极小点。下面将指出,在求
x∗的同时,采用迭代的方法也会同时求出
λ∗。这就是乘子法的基本思想。
一般约束情形
对于一般约束问题
minf(x),s.t. si(x)≥0, i=1,2,⋯,mhj(x)=0,j=1,2,⋯,l
仿照前面的推导,可得增广目标函数为:
F(x,v,λ,μ)=F(x)+4μ1i=1∑m{[max{0,vi−2μsi(x)}]2−vi2}−j=1∑lλjhj(x)+μj=1∑l[hj(x)]2
乘子迭代公式为:
vik+1=max{0,vik−2μsi(xk)},i=1,2,⋯,mλjk+1=λjk−2μhj(xk),j=1,2,⋯,l
其中
λj代表的是第
j等式约束所对应的Lagrange乘子,
vi代表的是第
i不等式约束对应的Lagrange乘子,显然
vi≥0。