转自:http://www.cnblogs.com/zhangchaoyang/articles/2726873.html

拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。前提是:只有当目标函数为凸函数时,使用这两种方法才保证求得的是最优解。

对于无约束最优化问题,有很多经典的求解方法,参见无约束最优化方法。

拉格朗日乘子法

先来看拉格朗日乘子法是什么,再讲为什么。

minf(x)s.t.hi(x)=0i=1,2...,n

这个问题转换为

min[f(x)+∑i=1nλihi(x)](1)

其中λi≠0,称为拉格朗日乘子。

下面看一下wikipedia上是如何解释拉格朗日乘子法的合理性的。

现有一个二维的优化问题:

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

我们可以画图来辅助思考。

绿线标出的是约束g(x,y)=c的点的轨迹。蓝线是f(x,y)的等高线。箭头表示斜率,和等高线的法线平行。

从图上可以直观地看到在最优解处,f和g的斜率平行。

▽[f(x,y)+λ(g(x,y)−1)]=0λ≠0

一旦求出λ的值,将其套入下式,易求在无约束极值和极值所对应的点。

F(x,y)=f(x,y)+λ(g(x,y)−c)

新方程F(x,y)在达到极值时与f(x,y)相等,因为F(x,y)达到极值时g(x,y)−c总等于零。

(1)取得极小值时其导数为0,即▽f(x)+▽∑ni=1λihi(x)=0,也就是说f(x)和h(x)的梯度共线。

KKT条件

先看KKT条件是什么,再讲为什么。

letL(x,μ)=f(x)+∑qk=1μkgk(x)

其中μk≥0,gk(x)≤0

∵μk≥0gk(x)≤0}=>μg(x)≤0

maxμL(x,μ)=f(x)(2)

minxf(x)=minxmaxμL(x,μ)(3)

maxμminxL(x,μ)=maxμ[minxf(x)+minxμg(x)]=maxμminxf(x)+maxμminxμg(x)=minxf(x)+maxμminxμg(x)

又∵μk≥0gk(x)≤0}=>minxμg(x)={0−∞ifμ=0org(x)=0ifμ>0andg(x)<0

∴maxμminxμg(x)=0此时μ=0org(x)=0

∴maxμminxL(x,μ)=minxf(x)+maxμminxμg(x)=minxf(x)(4)

此时μ=0org(x)=0

联合(3),(4)我们得到minxmaxμL(x,μ)=maxμminxL(x,μ)

亦即L(x,μ)=f(x)+∑qk=1μkgk(x)μk≥0gk(x)≤0⎫⎭⎬⎪⎪=>minxmaxμL(x,μ)=maxμminxL(x,μ)=minxf(x)

我们把maxμminxL(x,μ)称为原问题minxmaxμL(x,μ)的对偶问题,上式表明当满足一定条件时原问题、对偶的解、以及minxf(x)是相同的,且在最优解x∗处μ=0org(x∗)=0。把x∗代入(2)得maxμL(x∗,μ)=f(x∗),由(4)得maxμminxL(x,μ)=f(x∗),所以L(x∗,μ)=minxL(x,μ),这说明x∗也是L(x,μ)的极值点,即∂L(x,μ)∂x|x=x∗=0。

最后总结一下:

L(x,μ)=f(x)+∑qk=1μkgk(x)μk≥0gk(x)≤0⎫⎭⎬⎪⎪=>⎧⎩⎨⎪⎪⎪⎪minxmaxμL(x,μ)=maxμminxL(x,μ)=minxf(x)=f(x∗)μkgk(x∗)=0∂L(x,μ)∂x|x=x∗=0

KKT条件是拉格朗日乘子法的泛化,如果我们把等式约束和不等式约束一并纳入进来则表现为:

L(x,λ,μ)=f(x)+∑ni=1λihi(x)+∑qk=1μkgk(x)λi≠0hi(x)=0μk≥0gk(x)≤0⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪=>⎧⎩⎨⎪⎪⎪⎪minxmaxμL(x,λ,μ)=maxμminxL(x,λ,μ)=minxf(x)=f(x∗)μkgk(x∗)=0∂L(x,λ,μ)∂x|x=x∗=0

注:x,λ,μ都是向量。

∂L(x,λ,μ)∂x|x=x∗=0表明f(x)在极值点x∗处的梯度是各个hi(x∗)和gk(x∗)梯度的线性组合。

原文来自:博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun

拉格朗日乘子法和KKT条件相关推荐

  1. 最优控制理论 六、拉格朗日乘子法和KKT条件

    拉格朗日乘子法和KKT条件 1. 等式约束最优化 2. 不等式约束最优化 2.1 1个不等式约束 2.2 KKT条件 2.3 二维不等式约束图解 3. MATLAB不等式约束优化 总结 4. 参考文献 ...

  2. 真正理解拉格朗日乘子法和KKT条件

    转载自:https://www.cnblogs.com/xinchen1111/p/8804858.html  这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容. 首先从无约束的优 ...

  3. 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)

    引言 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.通常,对于等式约束问题,采用拉格朗日乘子法.对 ...

  4. 解密SVM系列(一):关于拉格朗日乘子法和KKT条件

    转载 原地址https://blog.csdn.net/on2way/article/details/47729419 写在之前 支持向量机(SVM),一个神秘而众知的名字,在其出来就受到了莫大的追捧 ...

  5. 第99:真正理解拉格朗日乘子法和 KKT 条件

    转载于:https://www.cnblogs.com/invisible2/p/11441485.html

  6. 拉格朗日乘子法 KKT条件

    目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1  ...

  7. 拉格朗日乘子法和KTT条件

        这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容.     首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: minf(x)minf(x)     如果问题是 ...

  8. 机器学习之拉格朗日乘子法和 KKT

    有约束的最优化问题 最优化问题一般是指对于某一个函数而言,求解在其指定作用域上的全局最小值问题,一般分为以下三种情况(备注:以下几种方式求出来的解都有可能是局部极小值,只有当函数是凸函数的时候,才可以 ...

  9. 直观理解拉格朗日乘子法和Karush-Kuhn-Tucker(KKT)条件

    在最优化问题中,经常是会有约束条件的,而约束条件可分为等式约束条件和不等式约束条件,对于前者,我们有拉格朗日乘子法,对于后者,有KKT条件,对于既有等式约束又有不等式约束的最优化问题,只需要结合拉格朗 ...

最新文章

  1. 【R】神经网络相关的R包
  2. Photoshop CC2018软件安装资料及教程
  3. Red Hat忘记root密码,重置root管理员密码
  4. vscode终端没显示_记一个VS Code终端显示问题的较完美解决
  5. eslint airbnb 不允许尾随逗号
  6. php 爬数据库,php爬虫爬取数据并存储至数据库
  7. Kubernetes学习总结(2)——Kubernetes设计架构
  8. 锁相环环路滤波器计算公式_锁相环PLL的电路原理以及基本构成
  9. Hibernate 注解 没有加@Column一样会在数据库创建这些字段
  10. Android小知识10则(下)
  11. 使用计算机对炼钢过程进行实时监控,转炉炉气分析与“投弹”检测相结合在自动化炼钢技术中的应用...
  12. 一、linux内核源码分析(内核源码结构组成)
  13. Chrome 扩展程序 CrxMouse 优化版 v3.0.1
  14. 偷梁换柱“Windows 11安装包”竟成了恶意程序?
  15. em模型补缺失值_缺失值填补方法
  16. 基于有道翻译的英翻中微信小程序
  17. 从0到1构建一个电商平台 – 开发篇(转)
  18. 利用DirectShow开发C#版的视频播放器
  19. C. Get an Even String
  20. 1、Multisim14 安装教程

热门文章

  1. 【机器学习项目实战10例目录】项目详解 + 数据集 + 完整源码
  2. 电源电路设计:详解线性电源和开关电源
  3. 基于c#的舞蹈教学网站
  4. Linux系统中.tar,.zip,.rar压缩与解压缩命令
  5. OPENSSL证书制作与浏览器认证
  6. Modelsim SE版本的安装及使用方法
  7. WINCE_.NET CF 示例集锦
  8. [神坑] 已经解决 但未知原因 dlib和torch导入的顺序问题 找不到指定的程序 \torch\lib\cublas64_11.dll
  9. 在自我导向行为中使用“意志力”这个概念有什么问题?
  10. python面向对象-老王开枪