陈宝林《最优化理论与算法》超详细学习笔记 (五)————最优性条件 之 KKT条件

  • Lagrange对偶问题
    • 原问题
    • Lagrange函数
    • Lagrange对偶函数
    • 强/弱对偶性
      • 弱对偶性
      • 强对偶性
  • 最优性条件
    • 互补松弛性
    • KTT条件(Karush-Kuhn-Tucker)

Lagrange对偶问题

原问题

对于一个最优化问题:
min⁡f0(x)s.t.fi(x)≤0,i=1,⋯,mhi(x)=0,i=1,⋯,p\begin{array}{ll}\min & f_{0}(x) \\ \text {s.t.} & f_{i}(x) \leq 0, \quad i=1, \cdots, m \\ & h_{i}(x)=0, \quad i=1, \cdots, p\end{array}mins.t.​f0​(x)fi​(x)≤0,i=1,⋯,mhi​(x)=0,i=1,⋯,p​
f0(x)f_{0}(x)f0​(x)为目标函数,fi(x)≤0f_{i}(x)\leq0fi​(x)≤0为不等式约束,hi(x)=0h_{i}(x)=0hi​(x)=0为等式约束.

Lagrange函数

通过引入不等式约束和等式约束的lagranage乘子λi\lambda_iλi​与viv_ivi​,得到原问题的Lagrange函数为:
L(x,λ,v)=f0(x)+∑i=1mλifi(x)+∑i=1pvihi(x)L(x, \lambda, v)=f_{0}(x)+\sum_{i=1}^{m} \lambda_{i} f_{i}(x)+\sum_{i=1}^{p} v_{i} h_{i}(x)L(x,λ,v)=f0​(x)+i=1∑m​λi​fi​(x)+i=1∑p​vi​hi​(x)

Lagrange对偶函数

定义Lagrange对偶函数为Lagrange 函数对xxx求最小值,
g(λ,v)=inf⁡xL(x,λ,v)=inf⁡x(f0(x)+∑i=1mλifi(x)+∑i=1pvihi(x))g(\lambda, v)=\inf _{x } L(x, \lambda, v)=\inf _{x}\left(f_{0}(x)+\sum_{i=1}^{m} \lambda_{i} f_{i}(x)+\sum_{i=1}^{p} v_{i} h_{i}(x)\right)g(λ,v)=xinf​L(x,λ,v)=xinf​(f0​(x)+i=1∑m​λi​fi​(x)+i=1∑p​vi​hi​(x))

根据对偶问题的性质,Lagrange对偶函数构成了原问题最优值p∗p^*p∗的下界,即:
g(λ,v)≤p∗g(\lambda, v)\leq p^*g(λ,v)≤p∗
于是,我们再对Lagrange对偶函数求上界,便构成了Lagrange对偶问题:
max⁡g(λ,v)s.t.λi≥0,i=1,2,⋯,q\begin{array}{ll}\max & g(\lambda,v) \\ \text {s.t.} & \lambda_i \geq 0,i=1,2,\cdots,q\end{array}maxs.t.​g(λ,v)λi​≥0,i=1,2,⋯,q​

强/弱对偶性

弱对偶性

我们用 d "表示 Lagrange 对偶问题的最优解,则有
d∗≤p∗d^{*} \leq p^{*} d∗≤p∗
即使原问题不是凸优化问题,这个不等式也成立。这个性质称作弱对偶性。

强对偶性

若d∗=p∗d^{*} = p^{*}d∗=p∗成立,则成强对偶性成立。
若原问题为凸优化问题,则强对偶性通常成立。

最优性条件

互补松弛性

当强对偶性成立时, x∗x^{*}x∗是原问题的最优解,λ∗,v∗\lambda^{*}, v^{*}λ∗,v∗ 是对偶问题的最优解的一个必要条件是互补松他性条件:
∑i=1mλi∗fi(x∗)=0\sum_{i=1}^{m} \lambda_{i}^{*} f_{i}\left(x^{*}\right)=0 i=1∑m​λi∗​fi​(x∗)=0
因为每一项都非正,因此有
λi∗fi(x∗)=0,i=1,⋯,m\lambda_{i}^{*} f_{i}\left(x^{*}\right)=0, \quad i=1, \cdots, m λi∗​fi​(x∗)=0,i=1,⋯,m

KTT条件(Karush-Kuhn-Tucker)

当强对偶性成立时, x∗x^{*}x∗ 和 (λ∗,v∗)\left(\lambda^{*}, v^{*}\right)(λ∗,v∗) 分别是原问题和对偶问题的最优
解,则其必须满足 KKT 条件:
fi(x∗)≤0,i=1,⋯,mhi(x∗)=0,i=1,⋯,pλi∗≥0,i=1,⋯,mλi∗fi(x∗)=0,i=1,⋯,m∇f0(x∗)+∑i=1mλi∗∇fi(x∗)+∑i=1pvi∗∇hi(x∗)=0\begin{array}{l} f_{i}\left(x^{*}\right) \leq 0, \quad i=1, \cdots, m \\ h_{i}\left(x^{*}\right)=0, \quad i=1, \cdots, p \\ \lambda_{i}^{*} \geq 0, \quad \quad\quad i=1, \cdots, m \\ \lambda_{i}^{*} f_{i}\left(x^{*}\right)=0, \quad i=1, \cdots, m \\ \nabla f_{0}\left(x^{*}\right)+\sum_{i=1}^{m} \lambda_{i}^{*} \nabla f_{i}\left(x^{*}\right)+\sum_{i=1}^{p} v_{i}^{*} \nabla h_{i}\left(x^{*}\right)=0 \end{array} fi​(x∗)≤0,i=1,⋯,mhi​(x∗)=0,i=1,⋯,pλi∗​≥0,i=1,⋯,mλi∗​fi​(x∗)=0,i=1,⋯,m∇f0​(x∗)+∑i=1m​λi∗​∇fi​(x∗)+∑i=1p​vi∗​∇hi​(x∗)=0​
当原问题是凸优化问题时,满足KKT条件的点也是原、对偶问题的最优解。(证明后补)

陈宝林《最优化理论与算法》超详细学习笔记 (五)————最优性条件 之 KKT条件相关推荐

  1. 【台大郭彦甫】Matlab入门教程超详细学习笔记五:初阶绘图(附PPT链接)

    初阶绘图 前言 一.基础绘图 1.plot() 绘制二维线图 2.legend()添加图例 3.title()和*label()添加标题与坐标轴 4.text()和annotation()增加注解 二 ...

  2. 陈宝林《最优化理论与算法》超详细学习笔记 (三)————单纯形法

    陈宝林<最优化理论与算法>详细学习笔记 (三)----单纯形法 数学模型 最优性检验与解的判别 最优解的判别定理 无穷多最优解判别定理 无界解判别定理 其他情形 第三章 单纯形法 单纯形表 ...

  3. 陈宝林《最优化理论与算法》超详细学习笔记 (八)————最优性条件

    陈宝林<最优化理论与算法>超详细学习笔记 (八)----最优性条件 无约束问题的极值条件 必要条件 二阶充分条件 充要条件 约束极值问题的最优性条件 不等式约束的一阶最优性条件 无约束问题 ...

  4. 陈宝林《最优化理论与算法》超详细学习笔记 (七)————第五章 运输问题

    陈宝林<最优化理论与算法>超详细学习笔记 (七)----第五章 运输问题 第1节 运输问题的数学模型 第2节 表上作业法 2.1 确定初始基可行解 2.2 最优解的判别 2.3 改进的方法 ...

  5. 陈宝林《最优化理论与算法》超详细学习笔记 (四)————第四章 对偶理论

    陈宝林<最优化理论与算法>超详细学习笔记 (四)----第四章 对偶理论 1. 对偶问题的提出 2. 线性规划的对偶理论 2.1 原问题与对偶问题的关系 2.2 对偶问题的基本性质 3. ...

  6. 陈宝林《最优化理论与算法》超详细学习笔记 (一)————第十章 使用导数的最优化方法(最速下降法、牛顿法、阻尼牛顿法)

    陈宝林<最优化理论与算法>超详细学习笔记 (一)----第十章 使用导数的最优化方法(最速下降法.牛顿法.阻尼牛顿法) 写在前面 第十章 使用导数的最优化方法 最速下降法 牛顿法 阻尼牛顿 ...

  7. 陈宝林《最优化理论与算法》超详细学习笔记 (二)————补充知识(凸集) 第二章 线性规划的基本性质

    陈宝林<最优化理论与算法>超详细学习笔记 (二)----补充知识 凸集 & 第二章 线性规划的基本性质 补充知识 凸集 方向与极方向 表示定理 择一定理 第一章 线性规划的基本性质 ...

  8. 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)

    Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...

  9. Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)

    所有示例使用的数据表均为Oracle提供的SQL基础数据表(t_employees.sql dept.sql emp.sql salgrade.sql) 熟练掌握多多练习即可达到完成后端开发所需具备的 ...

最新文章

  1. 【C++】引用与变量
  2. JavaScript 同源策略
  3. hadoop 配置文件简析
  4. 花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层
  5. 一起谈.NET技术,asp.net Ajax ---AutoComplete控件使用
  6. 电脑自动跳转加QQ好友html,自动添加QQ好友.html
  7. 全站仪和手机连接软件_测量员APP全站仪设站的的应用说明
  8. 计算机类期刊投稿经验
  9. 如何使用语音验证码API
  10. ArcGIS水文分析实战教程(5)细说流向与流量
  11. 2021年中国给水泵市场趋势报告、技术动态创新及2027年市场预测
  12. 浅析Spring之sessionFactory
  13. 什么是维度表和事实表
  14. 【微信小程序】上传图片到oss对象存储(PHP)
  15. 福克斯车钥匙遥控失灵解决办法
  16. JavaWeb学习——用户登录案例(13)
  17. 【Rust日报】2022-10-09 出于什么原因,您应该选择 rust 进行后端开发而不是其他选项?...
  18. 随笔:使用Windows搭建AAA认证服务器
  19. 囚徒困境,纳什均衡,帕雷托最优和帕雷托改进
  20. 拼多多app抓包之代码实现

热门文章

  1. 走进java编程之第一课-超详细笔记-适合新手收入
  2. 龙与地下城,游戏角色创建,c++实现
  3. java qp编码,Java的QP求解器
  4. linux部署速查表
  5. LAMPDISCUZ论坛
  6. 自学PR- 持续更新 共勉
  7. Python基础-元组字典集合
  8. 详解剖析Shell中的正则表达式
  9. python 中使用 shutil 实现文件或目录的复制、删除、移动
  10. UVALive 7503--模拟