KKT条件是必要条件,kkt条件的证明

kt条件介绍最近学习的时候用了优化理论,我没有太多这方面的理论基础。 于是翻了很多大神的博客,在这个博客上记载了容易理解的内容。 因此,这是一个总结博客,不是所有的原创,但基础理论也是一样的吧。 因为是浅学,如果有错误的话请指出来。

kt条件是解决最优化问题时使用的方法。 这里所说的最优化问题,通常是指对于给定的函数,求出指定范围上的全局最小值。 说到KKT条件,一般会提到附带的拉格朗日乘数。 对于学高等数学的人来说,拉格朗日乘数应该有点印象。 两者都是求解优化问题的方法,不同之处在于应用的情况不同。

一般来说,优化问题会遇到以下三种情况。

(1)无约束

这是最简单的情况,解决方法通常是函数对变量进行导数,导数等于0的点可能是极值点。 将结果带回原函数进行验证即可。

(2)等式约束

设目标函数为f(x ),限制条件为hk ) x ),则如下

s.t .是subject to,“被限制”的意思,l表示有l个限制条件。

解决方法为消元法或拉格朗日法。 消元法比较简单,所以不赘述,拉格朗日法在这里提到。 因为后述的KKT条件是对拉格朗日乘数的泛化。

定义了拉格朗日函数f(x ),

这里k是各约束条件的未定系数。

然后求解变量的偏导方程:

……

如果有l个约束条件,应该有l 1个方程式。 的方程的解可能是优化值(高等数学中的极值),将结果带回原方程进行验证即可得到解。

为什么可以求解优化呢? 维基百科有更好的直观说明。

举个二维优化的例子:

minf(x,y ) )。

s.t.g(x,y )=c

在此引出z=f(x,y )等高线(函数的等高线定义:二元函数z=f ) x,y )用空间表示的是曲面,将该曲面与平面z=c的交线在xoy面上的投影曲线f(x,y )=c作为函数z=f ) x,y ) ) :

绿线显示了受约束点的轨迹。 蓝线是等高线。 箭头表示倾斜度,与等高线的法线平行。 从坡度的方向看,明显有。 绿线是约束。 也就是说,只有正好落在这条绿线上的点可能是满足要求的点。 如果没有此约束,的最小值应该最接近zjdby圆等高线内部的某个点。 现在有了限制,最小值应该在哪里呢? 的等高线应该正好与约束线相切。 只是相交意味着在等高线内部或外部存在其他等高线。 因此,新等高线与目标函数的交点的值会更大或更小,只有在等高线与目标函数的曲线相切时才能获得最佳值。

如果也计算约束的梯度,则该梯度由图中的绿色箭头表示。 显而易见,要使目标函数的等高线和约束相切,它们的切点梯度必须在一条直线上。

即,f(x,y )=) g ) x,y )-C ) ) ) ) ) ) ) ) ) ) )。

这里,也可以是0以外的实数。

一旦求出的值,并将其应用于下式,就容易求出没有限制的极值和与极值对应的点。

这就是拉格朗日函数的由来。

)3)不等式约束条件

也有添加作为目标函数f(x ),不等式制约作为g ) x ),上式制约条件h ) x )的教程。 此时的制约最优化问题记述如下。

定义不等式约束下的拉格朗日函数l后,l表达式为:

这里,f(x )是原目标函数,HJ (x )是第j个等式约束条件,j是对应的约束系数,gk是不等式约束,uk是对应的约束系数。 0

此时,要解决上述优化问题,必须满足以下条件(也是我们求解的条件)。

这些求解条件是KKT条件。 (1)是拉格朗日函数取极值时带来的必要条件之一,(2)是拉格朗日系数约束)同等式的情况,(3)是不等式约束的情况,(4)是互补松弛条件,(5),(6)是原来的约束条件。

对一般的任意问题来说,KKT条件是使解组达到最优解的必要条件,当原问题是凸问题时,KKT条件也是充分条件。

关于条件(3),在下一篇博客中解释说,构建l(x,,u )函数是希望l ) x,,u )=f ) x )的) min求出最小值)。 在l(x,,u )式中第二项为0,为了使第三项为0以下,必须使系数u=0。 即条件)3)。

关于条件(4),直观地说明一下,求出l(x,,u )的最小值必须在3个公式项中取最小值。 此时,3项最小的时候是0的值。 稍微正式说明一下,是从缓和变量推导出来的。

举个简单的例子:

现有不等式约束的优化问题:

此时,通过引入松弛变量可以将不等式约束变为等式约束。 将a1和b1作为2个缓和变量,上述不等式制约可以写成以下内容

这个问题的拉格朗日函数如下

基于拉格朗日乘子法求解方程:

如果是这样的话

同样,设u2b1=0,分析g2(x )作用时和不作用时的约束。

因此提出条件:

kt条件介绍完毕。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注