拉格朗日乘子法-KKT不等式约束

不等式约束

对于不等式约束g(x)<=0,和等式约束h(x)=0不一样,h(x)=0可以在平面上画出一条等高线,而g(x)<=0是一个区域,很多个等高线堆叠而成的一块区域,我们把这块区域称为可行域。

不等式约束分两种情况来讨论,第一种是极小值点落在可行域内(不包含边界),第二种是极小值点落在可行域外(包含边界)。

下面举两个例子来解释这两种情况,然后总结两种情况给出转换求解。

极小值点落在可行域内(不包含边界)

考虑目标函数 f ( x ) = x 1 2 + x 2 2 f(x) = x_1^2 + x_2^2 f(x)=x12+x22,不等式约束 g ( x ) = x 1 2 + x 2 2 − 1 ≤ 0 g(x) = x_1^2 + x_2^2 -1 \le 0 g(x)=x12+x2210,显然f(x)的极小值为原点(0,0),落在可行域内。可行域以原点为圆心,半径为1。

这种情况约束不起作用,考虑极小值点 x ∗ x^* x,这个时候, g ( x ∗ ) < 0 g(x^*) < 0 g(x)<0 f ( x ∗ ) f(x^*) f(x)的梯度等于0。

在这里插入图片描述

极小值点落在可行域外(包含边界)

考虑目标函数 f ( x ) = ( x 1 − 2 ) 2 + ( x 2 + 2 ) 2 f(x) = (x_1 - 2)^2 + (x_2 + 2)^2 f(x)=(x12)2+(x2+2)2 ,不等式约束 g ( x ) = x 1 2 + x 2 2 − 1 ≤ 0 g(x) = x_1^2 + x_2^2 - 1 \le 0 g(x)=x12+x2210,显然f(x)的极小值为点(2, -2),落在可行域外。可行域以原点为圆心,半径为1。

这种情况约束起作用,要考虑求解f(x)在可行域内的极小值点。

对于f(x)而言要沿着f(x)的负梯度方向走,才能走到极小值点,如下图的蓝色箭头

这个时候g(x)的梯度往区域外发散,如下图红色箭头

显然,走到极小值点的时候,g(x)的梯度和f(x)的负梯度同向。因为极小值点在边界上,这个时候g(x)等于0。

在这里插入图片描述

总结

极小值点落在可行域内(不包含边界):这个时候可行域的限制不起作用,相当于没有约束,直接f(x)的梯度等于0求解,这个时候g(x极小值点)<0(因为落在可行域内)。

极小值点落在可行域外(包含边界):可行域的限制起作用,极小值点应该落在可行域边界上即g(x)=0,类似于等值约束,此时有g(x)的梯度和f(x)的负梯度同向。

在这里插入图片描述

总结以上两种情况,可以构造拉格朗日函数来转换求解问题。

对于不等式约束的优化,需要满足三个条件,满足这三个条件的解 x ∗ x^* x就是极小值点。

这三个条件就是著名的KKT条件,它整合了上面两种情况的条件。

特别注意:优化问题是凸优化的话,KKT条件就是极小值点(而且是全局极小)存在的充要条件。

在这里插入图片描述

上面就是著名的KKT条件!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MathDance

代码点亮人生,代码改变世界……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值