首页 > 编程知识 正文

拉格朗日乘数法怎么解,kkt例题

时间:2023-05-03 12:03:16 阅读:47868 作者:265

(() FRAC )以梦为马;早晨捕风) () ) ) ) ) )。

优化问题的优化条件、优化问题解的必要条件和充分条件

无约束问题解的必要条件

() f ) x ) )的梯度向量为0

有约束问题的最优条件

等式约束问题的必要条件:

一个条件,两个变量

(minf ) x )=f ) [x]_2,[x]_2) ) )

(s.t.c(x )=c ) [x]_2,[x]_2)=0) )

最佳解的必要条件如下式所示。

(((triangledownf(x^* ) alpha ^ * (triangledownc ) x ^ * (=0) ) ) ) ) ) )

(c ) x^*=0) ) ) ) ) ) )。

(阿尔法^* ) )是常数。 也就是说,存在约束和要优化的问题的梯度之和为0的常数

上面把那个当成一个结论吧。 具体推导见《数据挖掘中的新方法——支持向量机》

这里的理解是:

(x为c ) x_1,x_2)=0) )的条件,则查找(f(x ) )以使(f(x ) )最小。 实际上,该点位于满足约束((c ) x )=0)的曲面上。

让我们来理解一下:

(c ) x ) )是曲线,画出(f(x )=k ) )的等高线。 当然,) ) x=4) )的位置两者相交,但两者并不相接,所以也可以移动x点满足最小化。 其实这里要找的是两者相接的点,那样两者就会相接

(((triangledownf(x^* ) alpha ^ * (triangledownc ) x ^ * (=0) ) ) ) ) ) )

上面的(z ) )是要优化的函数,(c ) x_1、x_2) ) )是约束的等式条件。 注意其中的) (x_1,x_2) (是平面上的)关联圆锥曲线),将z等高线投影到() ) x_ (等高线与(c(x_1,x_2) )相交时,等高线内部有

(((triangledownf(x^* ) alpha ^ * (triangledownc ) x ^ * (=0) ) ) ) ) ) )

引入拉格朗日函数

(l ) x,) alpha ) ) L(x ) _1,[x]_2,(alpha ) ) f ) ) x ) _1,[x]_2) ) alpha c ) [x]_1,[x] )。

以上条件如下

(triangledown_xL ) x^*,alpha^* ) triangledownf ) x ^ * (alpha ^ *triangledownc (x ^ * )=0) ) )

((triangledown_alphaL ) x^*,alpha^* )=c(x^* )=0) ) ) ) ) ) )

推广到两个约束、三个变量的问题

(minf ) x )=f([x]_1,[x]_2,[x]_3) ) ) ) ) ) ) )

(s.t.c_I(x )=c_I ) [x]_1,[x]_2,[x]_3)=0) )

其最佳解的必要条件如下。

(triangledownf(x^* ) alpha^*_1) triangledownc_1) x ^ * (alpha ^ * _2) triangledownc_2) x )。

((c_1) x^* )=0) ) ) ) )

((c_2) x^* )=0) ) ) ) )

引入拉格朗日函数

(l ) x,) alpha ) ) L(x ) _1,[x]_2,[x]_3,) alpha _ 1,) alpha _2)=f ) [x]_1,[x]

优化条件如下

(triangledown_xL ) x^*,alpha^* ) (triangledownf ) x^* (alpha ^ * _1) triangledownc_1) x ^ * )。

(triangledown_alphal ) x^*,alpha^* )=(mathBFc ) x^* )=0) )

以及多变量、多(q )条件约束:

引入拉格朗日函数

(l ) x,) alpha ) ) L(x ) _1,[x]_2,) Cdots,[x]_n,) alpha_q,)=f

当(x^* = ([x]_1^*,[x]_2^*,cdots,[x]_n^*))是该问题的局部最优解,且约束函数在(x^*)处的梯度向量(triangledown c_1(x^*),cdots,triangledown c_q(x^*))线性无关此时(x^*)则存在q维向量:(mathbf{alpha}^*=(alpha^*_1,cdots,alpha^*_q))满足下面条件

(triangledown_x L(x^*,alpha^*)=triangledown f(x^*)+sumlimits_{i=1}^{q}alpha^*_i triangledown c_i(x^*)=triangledown f(x^*)+triangledown mathbf{c}(x^*)mathbf{alpha}^*=0)

(triangledown_alpha L(x^*,alpha^*)=mathbf {c}(x^*)=0)

其中(triangledown mathbf{c}(x^*))是以(triangledown c_1(x^*),cdots,triangledown c_q(x^*))为列的矩阵,注意这里的(mathbf{c}(x^*),mathbf{alpha}^*)是向量形式

不等式约束时候的条件

最简单的不等式约束问题

(min f(x)=f([x]_1,[x]_2,[x]_3))

(s.t. c_i(x)=c_i([x]_1,[x]_2,[x]_3)leq0)

此时的问题类比于上面的等式约束,并引入拉格朗日函数(L(x,alpha)=f(x)+alpha c(x))

此时的条件要满足的是:

(triangledown_x L(x^*,alpha^*)=triangledown f(x^*)+alpha^* triangledown c(x^*)=0)

(c(x^*)leq0)

(alpha^*geq0)

(alpha^*c(x^*)=0)

这里最后一个条件是(alpha^*c(x^*)=0),包含是(alpha^* = 0)或者(c(x^*)=0)

此时的两种情况是:当(x^*)在约束条件内部的时候,该问题变成了(f(x))的无约束最值问题,此时有

(triangledown f(x^*) = 0,qquad c(x^*) < 0)

当在约束条件边缘取值的时候,该问题变成等式的约束问题

(triangledown f(x^*)+triangledown mathbf{c}(x^*)mathbf{alpha}^*=0)

(mathbf {c}(x^*)=0)

(alpha^*geq 0)

一般不等式约束问题

引入Lagrange函数

(L(x,alpha)=f(x)+sumlimits_{i=1}^p alpha_i c_i(x)=f(x)+mathbf {alpha}^Tmathbf{c}(x))

该约束问题最优解的必要条件就是

(triangledown_x L(x^*,alpha^*)=triangledown f(x^*)+ sumlimits_{i=1}^{p} alpha^*_itriangledown c_i(x^*)=triangledown f(x^*)+ triangledown c(x^*)mathbf{alpha}^*=0)

(c_i(x^*)leq0) (i=1,cdots ,p)

(alpha^*_igeq0) (i=1,cdots ,p)

(alpha_i^*c_i(x^*)=0) (i=1,cdots ,p)

其中(triangledown mathbf{c}(x^*))是一个以(triangledown c_1(x^*),triangledown c_2(x^*),cdots,triangledown c_p(x^*))列矩阵

综合上面的结论就导出了下面的KKT条件

KKT条件一般约束问题的必要条件

考虑一般问题:

(min f(x))

(s.t.c_i(x)leq0) (i=1,cdots ,p)

(c_i(x)=0) (i=p+1,cdots ,p+q)

优化问题(f(x),c(x),i=1,cdots ,p+q)具有连续一阶偏导,(x^*)为问题的局部解。若在(x^*)处的有效约束梯度(triangledown c_i(x^*))线性无关,或者所有的约束函数都是线性函数,则存在(p+q)维向量(alpha^*=(alpha^*_1,alpha^*_2,cdots,alpha^*_{p+q}))使得:

(triangledown_x L(x^*,alpha^*)=triangledown f(x^*)+ sumlimits_{i=1}^{p+q} alpha^*_itriangledown c_i(x^*)=triangledown f(x^*)+ triangledown c(x^*)mathbf{alpha}^*=0)

(c_i(x^*)leq0) (i=1,cdots ,p)

(c_i(x^*)=0) (i=p+1,cdots ,p+q)

(alpha^*_igeq0) (i=1,cdots ,p)

(alpha_i^*c_i(x^*)=0) (i=1,cdots ,p)

这里(triangledown mathbf{c}(x^*))是一个以(triangledown c_1(x^*),triangledown c_2(x^*),cdots,triangledown c_{p+q}(x^*))列矩阵即:

(triangledown mathbf{c}(x^*)=(triangledown c_1(x^*),triangledown c_2(x^*),cdots,triangledown c_{p+q}(x^*)))

把(p+q)维向量(alpha^*)称为KKT乘子向量或者lagerange乘子向量,其分量(alpha^*_1,alpha^*_2,cdots,alpha^*_{p+q})称为KKT乘子或者lagrange乘子

当优化问题为凸约束问题的时候上述的KKT条件变为最优解的充要条件

上面的方法就是为了在寻找多元函数在一组约束下的极值优化的方法,通过引入拉格朗日乘子,可以将有d个变量与k个约束条件的最优化问题转化为具有(d+k)个变量的无约束的优化问题进行求解

更为感性的理解这个条件就是:

引入了拉格朗日乘子,描述了在可行域边上的时候是等式约束的条件这时候用的是拉格朗日乘子法. 在可行域的内部是无约束的条件,或者是不等式约束的条件下变换出了KKT条件。归根结底的说KKT条件是拉格朗日乘子法的一个泛化

KKT包含了等式边缘和内部的条件两种情况

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。