拉格朗日乘子法

拉格朗日乘子法

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,可将有ddd个变量和kkk个约束条件的最优化问题转换为具有d+kd+kd+k个变量的无约束优化问题求解

等式约束

先考虑一个等式约束的优化问题。假定x​x​xd​d​d维向量,欲寻找x​x​x的某个取值x∗​x^*​x,使目标函数f(x)​f(x)​f(x)最小且同时满足g(x)=0​g(x)=0​g(x)=0的约束。从几何角度看,该问题的目标是在由方程g(x)=0​g(x)=0​g(x)=0确定的d−1​d-1​d1维曲面上寻找能使目标函数f(x)​f(x)​f(x)最小化的点。

原始优化问题:
(1)min⁡xf(x)s.t.g(x)=0 \quad \min\limits_{x}f(x) \tag{1} \\ s.t.\quad g(x)=0 xminf(x)s.t.g(x)=0(1)

首先,我们给出下面的命题:

命题1:设F​F​Fn​n​n元函数,F(x)=c​F(x)=c​F(x)=c为一等值面,对F(x)=c​F(x)=c​F(x)=c上的一点P​P​PF​F​FP​P​P点的梯度∇F(P)​\nabla F(P)​F(P)就是等值面F(x)=c​F(x)=c​F(x)=cP​P​P点的法向量。(由法向量定义得到)

命题2:设FFFnnn元函数,PPP为其定义域中的一个点,FFF在点PPP处的梯度为∇F(P)\nabla F(P)F(P),则点PPP沿着正交于∇F(P)\nabla F(P)F(P)的方向运动时,函数值不会发生变化。(由方向导数和梯度的关系得到)

由此,我们可以得出下面两个结论:

结论1:对于约束曲面上的任意点x​x​x,该点的∇g(x)​\nabla g(x)​g(x)梯度正交于约束曲面。

结论2:最优点x∗x^*x,目标函数在该点的梯度∇f(x∗)\nabla f(x^*)f(x)正交于约束曲面。

结论1,可由命题1得到。

结论2,可由反证法得到。如果不正交,则可在约束曲面上移动该点,使函数值进一步下降。具体来说,不正交的话,可将沿着约束曲面的运动分解为两个方向,梯度方向和正交于梯度方向,沿梯度方向(反向)运动时,使函数值下降,沿正交梯度方向运动,不影响函数值。最终结果是使函数值降低。

由结论1和结论2可知,在最优点x∗x^*x,梯度∇g(x)\nabla g(x)g(x)∇f(x)\nabla f(x)f(x)的方向必相同或相反,即存在λ≠0\lambda \neq 0λ̸=0,使得
(2)∇f(x∗)+λ∇g(x∗)=0 \nabla f(x^*)+\lambda \nabla g(x^*)=0 \tag{2} f(x)+λg(x)=0(2)
(3)f(x∗)=0 f(x^*)=0 \tag{3} f(x)=0(3)

λ​\lambda​λ称为拉格朗日乘子。定义拉格朗日函数
(4)L(x,λ)=f(x)+λg(x) L(x,\lambda)=f(x)+\lambda g(x) \tag{4} L(x,λ)=f(x)+λg(x)(4)
由于
(5)∇xL(x,λ)=∇f(x)+λ∇g(x)=0 \nabla _x L(x,\lambda)=\nabla f(x)+\lambda \nabla g(x)=0 \tag{5} xL(x,λ)=f(x)+λg(x)=0(5)

(6)∇λL(x,λ)=g(x)=0 \nabla _\lambda L(x,\lambda)= g(x)=0 \tag{6} λL(x,λ)=g(x)=0(6)

观察公式(1)(2)(1)(2)(1)(2)与公式(4)(5)(4)(5)(4)(5),可得,它们是等价的,而公式(4)(5)(4)(5)(4)(5)表示的是对拉格朗日函数L(x,λ)L(x, \lambda)L(x,λ)的求极值。因此,原约束问题(1)(1)(1)就转化成了对拉格朗日函数L(x,λ)L(x,\lambda)L(x,λ)的无约束优化问题。

需要注意的是,x∗x^*x满足公式(2)(3)(2)(3)(2)(3)x∗x^*x是原始优化问题最优解的必要条件,因为所有极值都满足公式(2)(3)(2)(3)(2)(3)。因此,通过拉格朗日乘子法求得的解是原问题的极值点,是不是最值点还需验证。不过,如果fff是凸函数,那就无需验证了。对于凸函数而言,极值点和最值点是一致的。

总而言之,拉格朗日函数求出的最优解是原问题最优解的必要条件,本质是极值点是最值点的必要条件。

不等式约束与KKT条件

现在考虑不等式约束g(x)≤0g(x)\leq0g(x)0,如附图B.1所示,此时最优点x∗x^*x或在g(x)&lt;0g(x)&lt;0g(x)<0的区域中,或在边界g(x)=0g(x)=0g(x)=0上。

对于g(x)&lt;0g(x)&lt;0g(x)<0的情形,约束g(x)≤0g(x) \leq 0g(x)0不起作用(相当于λ=0\lambda = 0λ=0),可直接通过条件∇f(x)=0\nabla f(x)=0f(x)=0来获得最优解;这等价于
KaTeX parse error: No such environment: equation at position 44: … \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
g(x)=0g(x)=0g(x)=0的情形类似上面关于等式约束的分析,但需要注意的是,此时∇f(x∗)\nabla f(x^*)f(x)的方向必与∇g(x∗)\nabla g(x^*)g(x)相反(后面会详细解释),即
λ&gt;0∇f(x∗)+λ∇g(x∗)=0 \quad \quad \quad \lambda &gt; 0 \\ \nabla f(x^*) + \lambda \nabla g(x^*) = 0 λ>0f(x)+λg(x)=0
这等价于
KaTeX parse error: No such environment: equation at position 43: …) \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…

综合上面两种情况,可以得到,在约束g(x)≤0g(x) \leq 0g(x)0下最小化f(x)f(x)f(x),可转化下面的形式:
KaTeX parse error: No such environment: equation at position 57: …) \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
这三个约束条件称为KKTKKTKKT条件。

当约束条件为不等式时,构造的拉格朗日函数也称作广义拉格朗日函数,以和等式约束下的拉格朗日函数区分。

需要注意的是,此时仍然为必要条件。只有fffggg同时为凸函数,并且不等式约束严格可行,即存在xxx,使得g(x)&lt;0g(x)&lt;0g(x)<0,此时为充要条件。

KKTKKTKKT条件可以是拉格朗日乘子法的泛化,将不等式约束也用拉格朗日乘子法处理,此时,相较于等式,多了一些限制条件。

最后,我们说一下图附B.1(b),如图所示,g(x)=0g(x)=0g(x)=0为曲面边界,g(x)&lt;0g(x)&lt;0g(x)<0为曲面内部,如果函数最优解x∗x^*xg(x)&lt;0g(x)&lt;0g(x)<0,即在曲面内部,则λ=0\lambda = 0λ=0,通过∇f(x)=0\nabla f(x)=0f(x)=0求解,无需多说。如果x∗x^*x在边界g(x)=0g(x)=0g(x)=0上,由于内部g(x)&lt;0g(x)&lt;0g(x)<0,边界g(x)=0g(x)=0g(x)=0,因此,外部g(x)&gt;0g(x)&gt;0g(x)>0,所以,此时∇g(x∗)\nabla g(x^*)g(x)指向曲面内部。因为最优解在边界取,而不在内部取,所以内部函数值必定大于f(x∗)f(x^*)f(x),所以,此时∇f(x∗)\nabla f(x^*)f(x)指向曲面外部。因此,∇f(x∗)\nabla f(x^*)f(x)g(x∗)g(x^*)g(x)方向相反。如果曲面内部g(x)&gt;0g(x)&gt;0g(x)>0,外部g(x)&lt;0g(x)&lt;0g(x)<0,则∇g(x∗)\nabla g(x^*)g(x)指向曲面内部,∇f(x∗)\nabla f(x^*)f(x)指向曲面外部,两者方向仍相反。

总之,∇g(x∗)\nabla g(x^*)g(x)指向g(x)&gt;0g(x)&gt;0g(x)>0一侧,∇f(x∗)\nabla f(x^*)f(x)指向g(x)&lt;0g(x)&lt;0g(x)<0一侧,两者方向总是相反的。

同时有等式和不等式约束

将上述做法推广到多个约束。考虑具有m​m​m个等式约束和n​n​n个不等式约束,且可行域非空的优化问题
KaTeX parse error: No such environment: equation at position 60: …) \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
引入拉格朗日乘子λ=(λ1,...,λm)T\lambda = (\lambda_1,...,\lambda_m)^Tλ=(λ1,...,λm)Tμ=(μ1,...,μn)T\mu=(\mu_1,...,\mu_n)^Tμ=(μ1,...,μn)T,相应的拉格朗日函数为
L(x,λ,μ)=f(x)+∑i=1mλihi(x)+∑i=1mμigi(x) L(x,\lambda, \mu)=f(x)+ \sum \limits_{i=1} \limits^{m}\lambda_ih_i(x) + \sum \limits_{i=1} \limits^{m}\mu_ig_i(x) L(x,λ,μ)=f(x+i=1mλihi(x)+i=1mμigi(x)
由不等式约束引入的KKTKKTKKT条件(j=1,...,n)(j=1,...,n)(j=1,...,n)
KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
此时仍然为必要条件。只有fffgjg_jgj为凸函数,hih_ihi为仿射函数,并且不等式约束严格可行,即存在xxx,使得对所有的jjjgj(x)&lt;0g_j(x)&lt;0gj(x)<0,此时为充要条件。

思考

拉格朗日乘子法最初是为了解决等式约束下的优化问题,即将等式约束优化问题转化为无约束优化问题;然后,再将拉格朗日乘子法泛化到不等式约束,此时,无法将其转化为无约束优化问题,只能将其转化为约束优化问题,约束条件即为KKTKKTKKT条件。

转化只能得到必要条件。对与只含等式约束的优化问题,目标函数时凸函数即可保证为充要条件;对含有不等式的约束,要求目标函数和不等式约束都是凸函数,等式约束为仿射函数,不等式约束严格可行,才能保证是充要条件。(指的是两者最优解x∗​x^*​x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值