700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 拉格朗日乘子法-KKT不等式约束

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

时间:2019-09-20 18:36:52

相关推荐

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

文章目录

不等式约束极小值点落在可行域内(不包含边界)极小值点落在可行域外(包含边界)总结

不等式约束

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

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

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

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

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

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

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

考虑目标函数f(x)=(x1−2)2+(x2+2)2f(x) = (x_1 - 2)^2 + (x_2 + 2)^2f(x)=(x1​−2)2+(x2​+2)2 ,不等式约束g(x)=x12+x22−1≤0g(x) = x_1^2 + x_2^2 - 1 \le 0g(x)=x12​+x22​−1≤0,显然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条件!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。