原始-对偶:写对偶问题

1.什么是原始对偶

​ 字面理解:原始问题与对偶问题

假定原始问题为:
minf(x)s.t.{gi≤0,i=1,...,mhi=0,i=1,...,p\begin{matrix} min \ \ f(x) \\ s.t. \begin {cases} g_i\leq 0 ,i=1,...,m\\ h_i=0 ,i=1,...,p \\ \end{cases} \end{matrix} min  f(x)s.t.{gi​≤0,i=1,...,mhi​=0,i=1,...,p​​
其对应的拉格朗日函数:
L(x,λ,μ)=f(x)+∑i=1nλigi(x)+∑i=1pλihi(x)L(x,\lambda,\mu)=f(x)+\sum_{i=1}^{n}\lambda_ig_i(x)+\sum_{i=1}^{p}\lambda_ih_i(x) L(x,λ,μ)=f(x)+i=1∑n​λi​gi​(x)+i=1∑p​λi​hi​(x)
其实原始问题就对应于拉格朗日函数取最大后最小,即:
minf(x)=minmaxL(x,λ,μ)min\ \ f(x)=min\ \ max\ \ L(x,\lambda,\mu) min  f(x)=min  max  L(x,λ,μ)
那么其对偶问题其实就是对拉格朗日函数求最小后最大
maxθ(λ,μ)=maxminL(x,λ,μ)max\ \ \theta(\lambda,\mu)=max\ \ min\ \ L(x,\lambda,\mu) max  θ(λ,μ)=max  min  L(x,λ,μ)

2. 原始问题与对偶问题的关系

假设原问题的最优解为:
p∗=f(x∗)p^* \ \ = f(x^*) p∗  =f(x∗)
对偶问题的最优解为:
d∗=θ(λ∗,μ∗)d^*=\theta(\lambda^*,\mu^*) d∗=θ(λ∗,μ∗)
则对偶问题的最优解是小于或等于原始问题的最优解的
d∗≤p∗d^*\ \ \leq p^* d∗  ≤p∗
什么时候取等号呢?当然是满足KKT条件的时候。具体原因可以参考以下文章:

SVM原问题与对偶问题 - 简书 (jianshu.com)-

写出原始问题的对偶问题

假如存在如下优化问题(为原始问题):
maxZ=−2x1+3x2{s.t.x1+x2≤33x1+4x2≥10x1,x2≥0\begin{aligned} max\ \ Z=-2x_1+3x_2 \\ \begin{cases} s.t.\ \ x_1+x_2 \leq 3 \\ \ \ 3x_1+4x_2 \geq 10 \\ \ \ x_1,x_2 \geq 0 \end{cases} \end{aligned} max  Z=−2x1​+3x2​⎩⎪⎨⎪⎧​s.t.  x1​+x2​≤3  3x1​+4x2​≥10  x1​,x2​≥0​​

相应的写出其对偶问题,首先看到问题为最大化问题,所以我们可以相应的写成最小化的问题,把约束条件的整数写成对偶问题的系数,即:
minH=3y1+10y2min \ \ H= 3y_1+10y_2 \\ min  H=3y1​+10y2​
以原始问题最大化为例,关于对偶问题的约束一和二:将对偶问题的约束一等于 原始问题的约束条件一的x1的系数加上约束条件二的x1的系数,并将目标函数x1的系数作为约束一的整数,同理对偶问题的约束二进行相同处理,关于大小于号,根据原始问题的未知数x的约束进行判断,可以看到原始问题都是大于等于0(最后一个约束),故这里都使用大于等于。

注意:如果原始问题的约束条件如果是等式,表示对应的对偶问题的未知数没有约束 。

例如:如果原始问题x2无约束,则对偶问题的约束条件2取等号
minH=3y1+10y2s.t.y1+3y2≥−2y1+4y2≥3\begin{aligned} min \ \ H= 3y_1+10y_2 \\ s.t.\ \ y_1+3y_2 \geq -2 \\ \ \ y_1+4y_2 \geq 3 \\ \end{aligned} min  H=3y1​+10y2​s.t.  y1​+3y2​≥−2  y1​+4y2​≥3​
关于对偶问题的最后一个约束,观察原始问题的约束条件一和二,一个是大于等于,一个小于于等于(要与约束问题相反),即:
y1≥0,y2≤0y_1 \geq 0,y_2 \leq 0 y1​≥0,y2​≤0
至此我们得到了对偶问题:
minH=3y1+10y2{s.t.y1+3y2≥−2y1+4y2≥3y1≥0,y2≤0\begin{aligned} min \ \ H= 3y_1+10y_2 \\ \begin{cases} s.t.\ \ y_1+3y_2 \geq -2 \\ \ \ y_1+4y_2 \geq 3 \\ \ \ y_1 \geq 0,y_2 \leq 0 \end{cases} \end{aligned} min  H=3y1​+10y2​⎩⎪⎨⎪⎧​s.t.  y1​+3y2​≥−2  y1​+4y2​≥3  y1​≥0,y2​≤0​​
原始问题为最小化,对偶问题一般为最大化,反之亦然。同理原始问题为最小化的问题可以根据这个情况进行逆推。

原始-对偶的概念及写对偶问题的基本方法相关推荐

  1. 最短路问题的原始对偶算法形式

    问题描述 给定一个图,求解源点s到终点t的路径. 点弧关联矩阵定义如下: 列表示边,行表示一个顶点. 可以看到,每一列一定是-1和+1组成,其中-1表示入边,+1表示出边. 我们的目标是求解下列线性规 ...

  2. AOR4 原始对偶方法

    原始对偶算法 原始对偶算法利用了及其巧妙的方法减少参数,优化解,最后找到最优解. 互补松弛定理:最优解的等价命题为: 对于所有的j, 有(AjTy−cj)xj=0(A_j^Ty-c_j)x_j=0(A ...

  3. 近似算法中的技巧之一原始对偶模式

    近似算法中的技巧之一原始对偶模式 原始对偶模式 背景回顾 基础介绍 原始对偶模式 线性规划松弛的整间隙 原始对偶模式的近似算法 总结 参考文献 原始对偶模式 背景回顾 在过去的四十年里,组合优化受到线 ...

  4. 原始-对偶(Primal-Dual)算法求解线性规划

    ​原始-对偶(Primal-Dual)算法(Dantzig, Ford, and Fulkerso,1956)是用来求解线性规划的一种算法,可以看作是单纯形法的一种变体,目的是减少迭代次数. 构建该算 ...

  5. 线性规划技巧: 如何写对偶问题

    给定一个优化问题,我们去理解它的时候,或者设计算法的时候,可以研究它的对偶. 有时候原问题不好解,但它的对偶相对容易.这个时候,可以从对偶问题出发,进而寻求原问题的解. 这篇文章总结了线性规划的对偶形 ...

  6. 线性规划的原始对偶算法

    假设有如下原始问题和对偶问题: 如果我们能够找到一个x,一个y,满足根据互补松弛定理,即使得: 那么这个x,y就是原始问题和对偶问题的最优解. 可是,直接这样找,相当于穷举,大海捞针,我们希望给出一个 ...

  7. 针对安全探索的受限强化学习:原始对偶优化算法

    ©作者 | 周宣含 学校 | 国防科技大学 研究方向 | 深度强化学习 在强化学习中,智能体通过在未知环境中探索与试错来学习如何决策.大多数 RL 算法允许智能体自由地探索环境,并采取任意能够提升奖励 ...

  8. 地理坐标xy表示什么_地理坐标怎么写 书写格式及方法

    地理坐标怎么写 书写格式及方法 地理坐标是用纬度.经度表示地面点位置的球面坐标.地理坐标系以地 轴为极轴,所有通过地球南北极的平面均称为子午面.地理坐标,就是用经 纬度表示地面点位的球面坐标. 1 地 ...

  9. js写css字体,js如何写出css动画 ?js写css动画的方法(代码)

    本篇文章给大家带来的内容是关于js如何写出css动画 ?js写css动画的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用setTimeout()或者setInter ...

最新文章

  1. 多款激光雷达性能评估
  2. java金额小写转大写(8.2)
  3. Spark With Mongodb 实现方法及error code -5, 6, 13127解决方案
  4. using bgp data to find spammers
  5. vue 导入element-ui css报错解决方法
  6. 7500 cpuz跑分 i5_核心硬盘 i5 7500性能测试_DIY攒机酷品测试-中关村在线
  7. 8tupian图片加密平台源码 v3.5
  8. hihoCoder-1037-数字三角形(dp)
  9. 使用Emit动态调用方法(技术原型)
  10. 190322每日一句
  11. git小乌龟日常提交
  12. html怎么快捷复制粘贴,怎么快速复制粘贴文本?快速粘贴文本教程
  13. 同步十二进制加法计数电路设计(D触发器)
  14. 修改360企业版杀毒软件备注名的方法
  15. 线性代数-MIT 18.06-5(b)
  16. 组态王安装error_组态王常见问题的解决方法
  17. GridView合并单元格求和方法
  18. python中的圆周率怎么表示_如何采用Python语言求解圆周率的π值
  19. Vmware虚拟机Linux配置固定IP地址(详细版)
  20. 大数相乘 - 浮点数

热门文章

  1. MacOS+Win10 双系统引导程序 Clover 的修复
  2. 金蝶银企平台服务器网页端打不开,金蝶云银企平台电子回单程序无法启动
  3. SENet实战详解:使用SE-ReSNet50实现对植物幼苗的分类
  4. python机器交易_[原创]Python 机器学习之 SVM 预测买卖 -- 基于 BotVS 量化平台
  5. VirtualBox中出现UUID have already exists ,并且数字键盘numlock效果相反
  6. Vue两个取路由参数的方法
  7. 武汉同等学力计算机专业推荐,同等学力计算机专业三个复习技巧
  8. 【matplotlib】 移动平均(Moving Average)
  9. 一次下载所有Keras数据集
  10. CSDN个人相册功能