什么是KKT条件

尊重原创:知乎:什么是KKT条件

什么是KKT条件:

对于具有等式和不等式约束的一般优化问题
{ m i n f ( x ) , 最 值 问 题 s . t . g j ( x ) ≤ 0 ( j = 1 , 2 , 3 , . . . , m ) 不 等 式 约 束 h k ( x ) = 0 ( k = 1 , 2 , . . . , l ) 等 式 约 束 \begin{cases} minf(x),&最值问题\\ s.t. g_j(x)\leq 0(j = 1,2,3,...,m)&不等式约束\\h_k(x) = 0(k=1,2,...,l)&等式约束\end{cases} minf(x)s.t.gj(x)0(j=1,2,3,...,m)hk(x)=0(k=1,2,...,l)
KKT条件给出了判断x*是否为最优解的必要条件,即:
{ ∂ f ∂ x i + ∑ j = 1 m μ j ∂ g j ∂ x i + ∑ k = 1 l λ k ∂ h k ∂ x i = 0 , ( i = 1 , 2 , . . . , n ) h k ( x ) = 0 , ( k = 1 , 2 , . . . , l ) μ j g j ( x ) = 0 , ( j = 1 , 2 , . . . , m ) μ j ≥ 0 \begin{cases} \frac{\partial f}{\partial {x_i}}+\sum_{j=1}^{m}\mu_j\frac{\partial {g_j}}{\partial {x_i}}+\sum_{k=1}^{l}\lambda_k\frac{\partial {h_k}}{\partial {x_i}} = 0,(i=1,2,...,n)\\h_k(x) = 0,(k=1,2,...,l)\\\mu_jg_j(x)=0,(j=1,2,...,m)\\\mu_j\geq 0\end{cases} xif+j=1mμjxigj+k=1lλkxihk=0,(i=1,2,...,n)hk(x)=0,(k=1,2,...,l)μjgj(x)=0,(j=1,2,...,m)μj0
1、等式约束优化问题,这一部分其实就是Lagrange乘数法。
2、不等式约束优化问题
转化思想:将不等式约束条件转化为等式约束条件。
具体做法:引入松弛变量,松弛变量也是优化变量,求偏导也需要一视同仁。

实战

{ m i n f ( x ) , 最 值 问 题 s . t . g j ( x ) ≤ 0 ( j = 1 , 2 , 3 , . . . , m ) 不 等 式 约 束 h k ( x ) = 0 ( k = 1 , 2 , . . . , l ) 等 式 约 束 \begin{cases} minf(x),&最值问题\\ s.t. g_j(x)\leq 0(j = 1,2,3,...,m)&不等式约束\\h_k(x) = 0(k=1,2,...,l)&等式约束\end{cases} minf(x)s.t.gj(x)0(j=1,2,3,...,m)hk(x)=0(k=1,2,...,l)
对于约束 g 1 g_1 g1 g 2 g_2 g2,我们分别引入两个松弛变量 a 1 2 a_1^2 a12 b 1 2 b_1^2 b12,得到 h 1 ( x , a 1 ) = g 1 + a 1 2 = 0 h_1(x,a_1) = g_1 + a_1^2 = 0 h1(x,a1)=g1+a12=0 h 2 ( x , b 1 ) = g 2 + b 1 2 = 0 h_2(x,b_1) = g_2 + b_1^2 = 0 h2(x,b1)=g2+b12=0
为啥定义平方为松弛变量?
因为 g 1 g_1 g1 g 2 g_2 g2这两个不等式的左边必须加上一个正数才能使不等式变为等式。如果只加上 a 1 a_1 a1 b 1 b_1 b1,又会引入新的约束 a 1 ≥ 0 a_1\geq 0 a10 b 1 ≥ 0 b_1\geq 0 b10
所以不等式转为了等式约束:
在这里插入图片描述
由此我们将不等式约束转化为了等式约束,并得到Lagrange函数。
L ( x , a 1 , b 1 , μ 1 , μ 2 ) = f ( x ) + μ 1 ( a − x + a 1 2 ) + μ 2 ( b − x + b 1 2 ) L(x,a_1,b_1,\mu_1,\mu_2) = f(x) + \mu_1(a-x+a_1^2) + \mu_2(b-x+b_1^2) L(x,a1,b1,μ1,μ2)=f(x)+μ1(ax+a12)+μ2(bx+b12)
然后就是最其按照Lagrange乘数法进行求解。
OK,KKT条件告一段落,但是还有一部分求解未展开。
以后再提。

KKT对偶条件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值