拉格朗日乘子法及KKT条件
来源:互联网 发布:java 相似度计算 编辑:程序博客网 时间:2024/05/21 11:11
拉格朗日乘子的引入:
1 对于求极值和有等式约束的优化问题,例如:
假设有自变量x和y,给定约束条件g(x,y)=c,要求f(x,y)在约束g下的极值。我们可以画出f的等高线图,如下图。此时,约束g=c由于只有一个自由度,因此也是图中的一条曲线(红色曲线所示)。显然地,当约束曲线g=c与某一条等高线f=d1相切时,函数f取得极值。两曲线相切等价于两曲线在切点处拥有共线的法向量。因此可得函数f(x,y)与g(x,y)在切点处的梯度(gradient)成正比。于是我们便可以列出方程组求解切点的坐标(x,y),进而得到函数f的极值。
对于上面的f与g在某处的梯度平行,用公式表示就是:
反向转换过来就是:
其中
而对于这个求极值的问题,就又有很多方法可以求解:
梯度下降法,坐标下降法等等
而在实际中还有很多约束问题是非等式约束,在非等式下的拉格朗日乘子就需要使用KKT条件来实现:
KKT(Karush-Kuhn-Tucker)条件:是指在满足一定规则下,一个非线性规划问题能有最优化解的充要条件
首先说说为什么要推KKT条件:
原始问题:
约束:
添加拉格朗日乘子项后:
令
问题还是上面的问题,但是怎么样将新的函数和旧的函数最优解对应起来?
上面原始函数在添加拉格朗日乘子后,由于添加的拉格朗日乘子项是不等式,因此,要证明在添加约束项后,所求解也是最优解,即要求满足:
所以我们可以将
然后再来看看
所以在满足
如果再把等式约束加进来:
约束
而所谓的KKT条件,就是上式取极值时的约束条件:
另外,如果对偶互补条件成立:
新的KKT条件添加
阅读全文
1 0
- 拉格朗日乘子法及KKT条件
- 拉格朗日乘子法及KKT条件
- 拉格朗日乘子法及KKT条件证明
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- 拉格朗日乘子法和KKT条件
- KKT条件和拉格朗日乘子法
- Fiddler 抓包工具总结
- 证明vptr指针的存在
- 《Linux内核分析》课程总结
- 经典排序算法
- 协程库st(state threads library)原理解析
- 拉格朗日乘子法及KKT条件
- Android studio报错:warning :uninstalling will remove the application data!
- 大数据架构师从入门到精通 学习必看宝典
- BZOJ1093 [ZJOI2007]最大半连通子图
- 第八周项目二 顺序串算法
- 实验报告二
- C++实现最长公共子序列和最长公共子串
- 用js将数组扁平化
- 单例的宏定义