拉格朗日乘子法和kkt条件

本文深入探讨了拉格朗日乘子法及其在约束极值问题中的应用,详细讲解了等式约束和不等式约束下的拉格朗日函数构造,以及满足KKT条件的必要性和充分性,为理解和解决复杂优化问题提供了理论依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了不少大佬的博客,对拉格朗日乘子法和kkt条件有一点点认识,记录一下

拉格朗日乘子法

数学上我们经常遇到很多地方求极值问题,在没有约束条件下,相对比较容易。但有约束条件下就不太好解决。
(1)无约束
minf(x)minf(x)minf(x)
(2)等式约束
minf(x)minf(x)minf(x) s.t.g(x)==0s.t. g(x)==0s.t.g(x)==0
此类问题,就可以直接应用拉格朗日乘子法,引入系数变量λ,构造新的函数F(x,λ)=f(x)+∑i=1kλigi(x)F(x,λ)=f(x)+\sum_{i=1}^{k}λ_{i}g_{i}(x)F(x,λ)=f(x)+i=1kλigi(x)
对各个系数求导,并且令导数为0,∂F∂x=f′(x)+∑i=1kλigi′(x)=0\frac{\partial F}{\partial x}=f^{'} (x)+\sum_{i=1}^{k}λ_{i}g_{i}^{'}(x)=0xF=f(x)+i=1kλigi(x)=0
∂F∂λi=gi(x)=0\frac{\partial F}{\partial \lambda_{i}}=g_{i}(x)=0λiF=gi(x)=0
可以看到极值的时候要满足的条件是,gi(x)=0,原来的约束条件体现在这,并且F(x)取极值的时候与f(x)相等,F(x)的极值也等于f(x)的极值。因此拉格朗日乘子法可以将等式约束问题转成无约束问题。
在这里插入图片描述
看经典的图来直观解释一下,假设在三维坐标上,令z=f(x,y),我们要求z的极值,约束条件是g(x,y)=0,在xoy平面上,将函数f(x,y)的等高线投影到xoy平面上,交点满足约束条件,并且是f(x,y)的一个值,如果相交的话,一定存在更大或者更小的等高线,那么在相切的位置才可能取到极值。

(3) 不等式约束
minf(x)minf(x)minf(x) s.t.g(x)==0,h(x)&lt;=0s.t. g(x)==0,h(x)&lt;=0s.t.g(x)==0h(x)<=0

构造函数F(x,λ)=f(x)+∑i=1kλigi(x)+∑i=1kμihi(x)F(x,λ)=f(x)+\sum_{i=1}^{k}λ_{i}g_{i}(x)+\sum_{i=1}^{k}\mu_{i}h_{i}(x)F(x,λ)=f(x)+i=1kλigi(x)+i=1kμihi(x)
kkt条件:

  1. μihi(x)=0\mu_{i}h_{i}(x)=0μihi(x)=0
  2. μi&gt;=0\mu_{i}&gt;=0μi>=0
  3. hi(x)&lt;=0h_{i}(x)&lt;=0hi(x)<=0
  4. f′(x)+∑i=1kλigi′(x)+∑i=1kμihi′(x)=0f^{&#x27;} (x)+\sum_{i=1}^{k}λ_{i}g_{i}^{&#x27;}(x)+\sum_{i=1}^{k}\mu_{i}h_{i}^{&#x27;}(x)=0f(x)+i=1kλigi(x)+i=1kμihi(x)=0

要满足kkt条件,然后应用拉格朗日乘子法求解。
谈谈我对这些条件的认识:
前面已经讲到过在等式约束的时候,F取极值的时候一定也是f的极值,那么2,3条件可以得到μigi(x)&lt;=0\mu_{i}g_{i}(x)&lt;=0μigi(x)<=0
可以得到maxF(x)=f(x),只有μihi(x)=0,才能取到极小值,那么minxf(x)=minxmaxμ,λF(x)maxF(x)=f(x),只有\mu_{i}h_{i}(x)=0,才能取到极小值,那么min_{x}f(x)=min_{x} max_{\mu , \lambda}F(x)maxF(x)=f(x)μihi(x)=0,minxf(x)=minxmaxμ,λF(x)
转化为对偶问题,minxf(x)=maxμ,λminxF(x),假设x0处取得极小值.转化为对偶问题,min_{x}f(x)=max_{\mu , \lambda} min_{x}F(x),假设x_{0}处取得极小值.minxf(x)=maxμ,λminxF(x),x0.
minxf(x)=f(x0)=maxμ,λ(f(x0)+∑i=1kλigi(x0)+∑i=1kμihi(x0))=f(x0)min_{x}f(x)=f(x_{0})=max_{\mu , \lambda} (f(x_{0})+\sum_{i=1}^{k}λ_{i}g_{i}(x_{0})+\sum_{i=1}^{k}\mu_{i}h_{i}(x_{0}))=f(x_{0})minxf(x)=f(x0)=maxμ,λ(f(x0)+i=1kλigi(x0)+i=1kμihi(x0))=f(x0)

再来看条件1:
满足条件1的时候:

  1. μi=0,此时约束条件不起作用,不出现在函数F中,极值应该是落在可行域内\mu_{i}=0,此时约束条件不起作用,不出现在函数F中,极值应该是落在可行域内μi=0,F
  2. gi(x)=0,此时约束条件起作用,极值应该是落在gi(x)=0上,不等式约束变成等式约束g_{i}(x)=0,此时约束条件起作用,极值应该是落在g_{i}(x)=0上,不等式约束变成等式约束gi(x)=0,gi(x)=0

看图理解一下
在这里插入图片描述

如有错误请麻烦指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值