博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
拉格朗日乘子法和KKT条件
阅读量:6479 次
发布时间:2019-06-23

本文共 867 字,大约阅读时间需要 2 分钟。

1. 拉格朗日乘子(Lagrange Multiplier)法

假设函数z=f(x,y),求该函数的最小值,如果没有约束条件,则可以表示为minf(x,y),要求出minf(x,y)很简单,根据Fermat定理,分别对x和y求导数并让其等于0,如果是凸函数,则求出来的点就是函数取得最小值的点,该点的函数值即f(x,y)的最小值。

如果有等式约束条件g(x,y)=c,g(x,y)=c为(x,y)平面上的一条曲线,想象f(x,y)的等高线下降,当等高线和g(x,y)=c有交点时,满足约束条件,但肯定不是最优值,因为还可以继续下降。只有当下降到f(x,y)和g(x,y)=c相切时,这时两条曲线的切点处的f(x,y)的值才是最优值,如下图所示。

由上图可知,在切点处,两条曲线拥有共线的法向量,所以两条曲线的梯度(Gradient)成正比,即,相当于把目标函数和约束条件写成一个函数,然后对该函数求导等于0,即可求得最优值。如果约束条件有多个,方法也是一样的。

所以,对于这类问题可以表示为:

解决的方法是将目标函数和约束条件写成一个式子:

分别对xi求导数并让其等于0,可求得最优值。

2. KKT条件

以上是等式约束,如果是不等式约束的话,问题变成了:

可以想象,多个约束条件构成了一个区域,这个区域就是自变量的范围。最优值肯定在这个区域的某一个顶点处取得,此时和这个顶点相关的约束条件等于0,和这个顶点不相关的约束条件(即不需要考虑的约束条件)不等于0。如下图所示,g1(x)、g2(x)、g3(x)围成了一个区域,最优值在g1(x)和g3(x)的交点处取得,此时g2(x)不需要考虑,则g1(x)和g3(x)的值为0,前面的系数可以不为0,g2(x)不为0,前面的系数必须为0。

因此,同样的可以把目标函数和约束条件写成一个式子:

 

对于,要么b=0,要么g(xi)=0,所以必须有

如果同时存在等式约束和不等式约束,则

那么最优值必须满足以下3个条件:

(1) L对xi求导等于0;

(2)

(3)

以上就是KKT条件。 

转载地址:http://awwuo.baihongyu.com/

你可能感兴趣的文章
鱼C记事本V1.0(下)- 零基础入门学习Delphi28
查看>>
百练 2742 统计字符数 解题报告
查看>>
Ubuntu搜狗输入法候选词乱码
查看>>
js中回调函数写法
查看>>
React native android 最常见的10个问题
查看>>
数据结构和算法
查看>>
.Net 项目代码风格要求
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
[转]html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
Python~迭代
查看>>
linux常用命令-关机、重启
查看>>
css布局 - 九宫格布局的方法汇总(更新中...)
查看>>
画图函数——点,线,矩形等等
查看>>