拉格朗日乘数法及KKT条件-通俗理解

拉格朗日乘子法及KKT条件数学理解

1.拉格朗日乘数法的基本思想

在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的梯度(gradient)的线性组合里每个向量的系数。 [1] 此方法的证明牵涉到偏微分,全微分或链法,从而找到能让设出的隐函数的微分为零的未知数的值。

2.无约束条件下求解函数极值问题

这是最简单的一种情况,解决方法通常是对函数对变量求导,令求导函数等于0的点可能是极值点。必须把疑似极值点带回原函数验证

3.等式约束条件下的拉格朗日函数

比如这个例子
在这里插入图片描述
首先对于这种带有约束条件的极值问题,第一种方法可以使用消元法,将条件方程和所求方程进行消元,最后求得极值点。
这里注意必须将所求极值点带回原方程检验该点是否在所求平面或直线上
第二种方法:使用拉格朗日乘数法进行求解。
首先我们需要定义拉格朗日函数F(x)
在这里插入图片描述然后我们需要对拉格朗日方程中的每个变量求偏导数,并解出偏导数方程
在这里插入图片描述
这里注意一点,上面的拉格朗日后面条件是一个向量函数,所以可以存在多个拉格朗日系数
回到题目后,我们将上面的朗格朗日函数写出来
在这里插入图片描述
并对每个变量求偏导数
在这里插入图片描述
通过前三个方程,我们可以解出bx=ay和az=cx的关系,并将这个关系带入第四个方程得到
在这里插入图片描述
最后我们求得最大体机为:
在这里插入图片描述
这里的解题思路,首先根据题意判断哪个是条件函数,哪个是求导函数。然后定义拉格朗日函数(这里拉格朗日函数中的+或者-都行)随后对拉格朗日函数的所有变量解偏导方程。最后便得到极值点。
以上是拉格朗日函数的基本解题形态。
下面从几何意义上解释等式约束条件下的拉格朗日乘数法
这里我们解释为什么需要定义拉格朗日函数及为什么解偏导方程能得到极值点
举个例子:求双曲线xy=3上离原点最近的点。
根据题意我们得到,条件函数是xy=3,求导函数是x2+y2-d**2=0(这里我们用的是欧式距离的平方,因为我们要求的是离原点最近的点,所以选择求距离的平方)
我们画出该函数的图像
在这里插入图片描述
通过图像可以知道,当双曲线和圆相切时到原点的距离最短。那么如果两个曲线相切,那么他们的切线相同,由此得知他们的法向量是互相平行的。
这里引入梯度的概念,由上面的结论可以得知两个曲线的梯度是共线的。于是我们可以得到这个方程▽f=λ▽g
根据这个方程,我们再对各个变量求偏导数
fx=λ
gx,
fy=λgy,再根据条件函数组成方程组xy=3
2x=λ
y,2y=λx,xy=3
通过解上述方程,我们可以得到λ,从而求出极值点。
所以我们可以理解朗格朗日函数的实质是▽f+λ
▽g=0
然后根据梯度求全微分来求的极值点

4.不等式约束条件下推导KKT条件及对偶问题解释

上面解释了等式约束条件下的拉格朗日函数求极值。那么当出现不等式约束条件时呢,此时的约束条件变得如下:
在这里插入图片描述
这是我们需要定义广义的拉格朗日函数L
在这里插入图片描述
这里需要说明一个条件,因为由上面的等式约束条件求拉格朗日函数,我们可以得知u和梯度有关。这里gk(x)<=0,根据梯度指向的是>=0的方向,所以uk>=0。(以此类推,当gk(x)>=0时,uk<=0)。
接下来主要介绍KKT条件,推导及应用。详细推导过程如下:
在这里插入图片描述
在这里插入图片描述
根据我个人理解解释下这个推导过程,首先根据我上面说的得到uk的条件,然后根据gk(x)我们可以得到在这里插入图片描述
之后我们可以得知L(x,u)的最大值是当ug(x)=0时,即f(x)
所以我们要求minf(x)实际上是求minmaxL(x,u)
我们推出这个方程,这里先不解释什么是对偶方程
在这里插入图片描述
随后根据uk<=0和g(x)>=0及组成的ug(x)<=0这三个条件,我们得到了minug(x)存在两种情况:
在这里插入图片描述
根据第一种情况。我们推出了
在这里插入图片描述
当u或者g(x)=0时,minmaxL(x,u)=maxminL(x,u)这就是利用假设法反推了对偶问题
这里解释下,为什么不采用第二种情况,因为当g(x)<0时。这时的g(x)的最佳解在区域内部,这时最佳解称为内部解,不等书约束条件不生效
以下是KKT条件的详细解释及对偶问题的解释
在这里插入图片描述

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值