大数跨境

约束最优化问题的拉格朗日乘子法与KKT条件详解

约束最优化问题的拉格朗日乘子法与KKT条件详解 萤火虫AI文化沙龙
2026-09-12
6
导读:拉格朗日乘子法唯一核心功能:求解【带等式约束】的多元函数极值。

 

约束最优化问题的拉格朗日乘子法与KKT条件详解

罗光宣

一、拉格朗日乘子法核心用途

在高数、线性代数、机器学习优化中,我们常遇到两类极值问题:

1.无约束极值:自由求函数最大 / 最小值,直接令偏导数为 0 即可。

2.带等式约束极值变量必须满足固定条件,不能自由取值。

拉格朗日乘子法唯一核心功能:求解【带等式约束】的多元函数极值。

标准数学形式:

通俗理解:              
在约束曲线 
 的轨迹上,找到目标函数  的最高点或最低点。

二、核心几何原理

1.函数  有无数条等高线(同一高度的曲线);

2.约束  是一条固定轨迹曲线;

3.极值出现的唯一条件:等高线与约束曲线相切

这里重点精讲:为什么约束极值点,等高线必须和约束曲线相切,相交绝对无法取到极值?

我们的求解前提是:所有可行点,都必须牢牢落在约束曲线  上,只能沿着这条曲线移动,寻找目标函数  的最值。

假设等高线与约束曲线相交而非相切:相交点处,两条曲线存在不同的切线方向,也就意味着目标函数的梯度、约束曲线的梯度不在同一直线上。此时沿着约束曲线向前、向后微小移动,都能切换到数值更大或更小的等高线上,函数值还能继续变化、升降,说明这个交点只是普通可行点,并非最高点或最低点,自然不是极值点。

只有二者相切时:切点处两条曲线共用同一条切线,没有任何可移动的微小空间能让函数值继续升降。沿着约束曲线任意方向移动,都会离开当前等高线,且函数值只会单向变化,无法再优化,此时达到临界平衡点,这就是约束条件下唯一的极值位置

核心原理衔接:相切与拉格朗日函数的对等关系

几何相切的本质是:极值点处目标函数与约束函数的梯度向量相互平行。向量平行的数学定义为:一个向量可由另一个向量常数倍缩放得到,即 

我们构造拉格朗日函数 ,并令其梯度 ,本质就是通过代数公式,强行锁死梯度平行的几何相切条件。其中常数 为拉格朗日乘子,仅用于缩放约束梯度的长度,实现两组梯度完美对齐,这也是拉格朗日方法能求解约束极值的根本原因。

从数学本质来看:相切意味着两条曲线在该点法线平行、梯度共线,目标函数的梯度可以被约束函数的梯度线性表示,由此推导出拉格朗日乘子的核心公式。

其中  称为拉格朗日乘子(仅为常数,无固定正负)。

三、通用解题步骤(万能四步法)

步骤 1:构造拉格朗日函数

已知:目标函数 ,约束 
构造:

步骤 2:列偏导方程组

对  分别求偏导,并令偏导数为0:                

步骤 3:解方程组

求出所有驻点 

步骤 4:判断极值

代入原函数,比较大小,确定最大值、最小值。

四、拓展知识

1. 多等式约束

若存在多个等式约束 ,可拓展构造多元拉格朗日函数,引入多个对应的拉格朗日乘子 ,构造形式为:

多约束极值核心判定规则不变:极值点处目标函数梯度为所有约束函数梯度的线性组合,几何上依旧满足与全部约束边界相切的条件,求解步骤和单约束完全一致。

多约束极值核心判定规则不变:极值点处目标函数梯度为所有约束函数梯度的线性组合,几何上依旧满足与全部约束边界相切的条件,求解步骤和单约束完全一致。

核心原理与单约束完全一致:极值点处目标函数梯度为各约束函数梯度的线性组合,依旧满足等高线与所有约束曲线同时相切的几何条件,求解方式同样遵循求偏导、联立方程组、代入约束求解的核心步骤。

2. 不等式约束(KKT 条件)

名词解释: KKT(Karush–Kuhn–Tucker),即卡鲁什 - 库恩 - 塔克条件,以三位数学家 William Karush、Harold Kuhn、Albert Tucker 的姓氏联合命名。

普通拉格朗日乘子法仅适用于等式约束,实际优化问题中还存在大量不等式约束场景,此时需要用到进阶的KKT条件,也是高数进阶、运筹学、机器学习优化的核心知识点。

1. 约束松弛(不起作用):若极值点落在可行域内部,满足 ,此时约束不限制变量取值,等价于无约束极值,直接令函数偏导数为0即可,对应拉格朗日乘子 

标准不等式约束极值问题:在约束  下,求解目标函数  的最值。

我们依旧沿用梯度共线的核心思想,但不等式约束存在两种可行状态,需要分类讨论:

1. 约束松弛(不起作用):若极值点落在可行域内部,满足 ,此时约束不限制变量取值,等价于无约束极值,直接令函数偏导数为0即可,对应拉格朗日乘子 

2. 约束紧致(起作用):若极值点落在可行域边界,满足 ,此时不等式约束退化为等式约束,和普通拉格朗日乘子法原理一致,等高线与约束边界曲线相切,对应拉格朗日乘子 

3. 核心 KKT 四条件汇总

针对不等式约束优化问题:

构造拉格朗日函数 ,极值点必须同时满足:                
① 平稳性条件:

② 互补松弛条件:

③ 原始约束:

④ 对偶约束:

KKT 条件经典例题

题目:用 KKT 条件求目标函数  在不等式约束  下的最小值。

解:

步骤1:构造拉格朗日函数

步骤2:列出全部 KKT 条件

平稳性条件:

互补松弛:

约束条件:

对偶条件:

步骤3:分类讨论求解(KKT 核心)

情况一:约束松弛,()

代入偏导方程得:

验证约束:,满足条件。此时函数值 

情况二:约束紧致,()

由互补松弛条件得:

由偏导方程得:,即 

联立约束解得:,全部条件满足。

此时函数值 

步骤4:比较取值,确定最值

对比两组可行解函数值:

结论:该不等式约束下,函数最小值为 ,极值点为

例题总结:本题直观体现了 KKT 条件的核心价值,通过互补松弛条件分情况讨论,既能判定可行域内部极值,也能判定边界极值,完美解决普通拉格朗日无法求解的不等式约束问题。

基于以上特性,KKT条件整合出不等式约束极值的核心判定条件,统一构造拉格朗日函数 ,需同时满足:

① 梯度条件:(驻点条件);                  
② 互补松弛条件:
(核心关键,区分松弛/紧致状态);                  
③ 约束条件:
;                  
④ 乘子非负:

通俗总结:KKT条件是拉格朗日乘子法的升级版,兼容等式、不等式所有约束场景,通过互补松弛条件自动判断约束是否生效,是解决有界优化问题的通用方法。

五、例题

例题 1

题目:求函数  在约束  下的最小值。

解:

1.构造拉格朗日函数

2.求偏导、列方程

3.解方程
由前两式:

代入约束:

4.求最值
代入原函数:

结论:最小值为 ,无最大值。

例题 2

题目:求  在约束 )下的最大值。

解:

1.构造函数

2.求偏导列方程                

3.联立求解                
得:

代入约束:

4.计算最值                
代入原函数:

结论:该约束下函数最大值为 

六、常见易错点(避坑总结)

1.拉格朗日求出的点是驻点,不直接等于极值,需要代入验证;

等式约束中  可正可负,不用强制大于 0;

1.必须严格带入原始约束条件解方程,不能漏方程;

2.仅适用于连续可导函数

七、练习题

作业题 1

求函数  在约束  条件下的极小值。

作业题 2

已知周长固定  的矩形,设长、宽为 矩形面积 的最大值。问题。

【声明】内容源于网络
0
0
萤火虫AI文化沙龙
一个关于AI及其文化有味道的沙龙
内容 287
粉丝 0
萤火虫AI文化沙龙 一个关于AI及其文化有味道的沙龙
总阅读5.7k
粉丝0
内容287