文章目录

  • 一、原问题与对偶问题标准形式
  • 二、互补松弛定理
  • 三、已知原问题最优解求对偶问题最优解
  • 四、使用单纯形法求解
  • 五、使用互补松弛定理公式一求解
  • 六、使用互补松弛定理公式二求解 ( 无效方法 )
  • 七、总结

一、原问题与对偶问题标准形式


原问题 P\rm PP : maxZ=CXs.t{AX≤bX≥0\begin{array}{lcl} \rm maxZ = C X \\\\ \rm s.t\begin{cases} \rm AX \leq b \\\\ \rm X \geq 0 \end{cases}\end{array}maxZ=CXs.t⎩⎪⎨⎪⎧​AX≤bX≥0​​ ; \ \ \ \ \ \ \ \ \ \ \,           对偶问题 D\rm DD : minW=bTYs.t{ATY≥CTY≥0\begin{array}{lcl} \rm minW = b^T Y \\\\ \rm s.t\begin{cases} \rm A^TY \geq C^T \\\\ \rm Y \geq 0 \end{cases}\end{array}minW=bTYs.t⎩⎪⎨⎪⎧​ATY≥CTY≥0​​

等价方法 :

  • 生产 : 目标函数追求 利润最大化 , 约束方程设备的使用时长受约束 , 小于等于 某个时间值 ;
  • 出租设备 : 目标函数追求 租金最小化 , 约束方程设备产生的利润要 大于等于 生产的利润 , 不能亏钱 ;

二、互补松弛定理


X0\rm X^0X0 和 Y0\rm Y^0Y0 分别是 原问题 P\rm PP 问题 和 对偶问题 D\rm DD 的 可行解 ,

这两个解各自都是对应 线性规划问题 的 最优解

的 充要条件是 : {Y0Xs=0YsX0=0\begin{cases} \rm Y^0 X_s = 0 \\\\ \rm Y_sX^0 = 0 \end{cases}⎩⎪⎨⎪⎧​Y0Xs​=0Ys​X0=0​

其中 Xs,Ys\rm X_s , Y_sXs​,Ys​ 是 松弛变量 或 剩余变量 ;

三、已知原问题最优解求对偶问题最优解


已知线性规划 :

maxZ=3x1+4x2+x3{x1+2x2+x3≤102x1+2x2+x3≤16x1,x2,x3≥0\begin{array}{lcl} \rm maxZ = 3x_1 + 4x_2 + x_3 \\\\ \rm \begin{cases} \rm x_1 + 2x_2 + x_3 \leq 10 \\\\ \rm 2x_1 + 2x_2 + x_3 \leq 16 \\\\ \rm x_1,x_2, x_3 \geq 0 \end{cases}\end{array}maxZ=3x1​+4x2​+x3​⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​x1​+2x2​+x3​≤102x1​+2x2​+x3​≤16x1​,x2​,x3​≥0​​

上述线性规划的最优解是 X0=(620)\rm X^0 = \begin{pmatrix} \quad \rm 6 \quad \rm 2 \quad 0 \quad \end{pmatrix}X0=(620​) , 求其对偶问题最优解 ;

四、使用单纯形法求解


方法一 : 写出上述线性规划的对偶问题 , 然后使用单纯形法求最优解 ,

首先写出 对偶问题 , 然后转为 标准形式 , 找 单位阵 作为基矩阵 , 然后得到基变量 , 假设非基变量为 000 求出 基解 ,

在单纯形表中计算 检验数 , 如果 检验数都小于 000 就是最优解 , 如果检验数都大于 000 , 则不是最优解 ;

根据检验数确定 出基变量 , 然后计算出 入基变量 , 进行下一次迭代 ;

方程组 同解变换, 构造单位阵 , 然后计算检验数 , 继续按照上述方法进行迭代 ;

该方法比较麻烦 ;

五、使用互补松弛定理公式一求解


方法二 : 利用 互补松弛定理 计算 ;

写出原问题的对偶问题 :

minW=10y1+16y2{y1+2y2≥32y1+2y2≥4y1+y2≥1y1,y2≥0\begin{array}{lcl} \rm minW = 10y_1 + 16y_2 \\\\ \rm \begin{cases} \rm y_1 + 2y_2 \geq 3 \\\\ \rm 2y_1 + 2y_2 \geq 4 \\\\ \rm y_1 + y_2 \geq 1 \\\\ \rm y_1,y_2 \geq 0 \end{cases}\end{array}minW=10y1​+16y2​⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​y1​+2y2​≥32y1​+2y2​≥4y1​+y2​≥1y1​,y2​≥0​​

给对偶问题的约束方程添加剩余变量 :

{y1+2y2−y3=32y1+2y2−y4=4y1+y2−y5=1y1,y2,y3,y4,y5≥0\begin{cases} \rm y_1 + 2y_2 - y_3 = 3 \\\\ \rm 2y_1 + 2y_2 - y_4 = 4 \\\\ \rm y_1 + y_2 - y_5 = 1 \\\\ \rm y_1,y_2, y_3 , y _4, y_5 \geq 0 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​y1​+2y2​−y3​=32y1​+2y2​−y4​=4y1​+y2​−y5​=1y1​,y2​,y3​,y4​,y5​≥0​

互补松弛定理 :

" X0\rm X^0X0 和 Y0\rm Y^0Y0 分别是 原问题 P\rm PP 问题 和 对偶问题 D\rm DD 的 最优解 " ⇔\Leftrightarrow⇔ {Y0Xs=0YsX0=0\begin{cases} \rm Y^0 X_s = 0 \\\\ \rm Y_sX^0 = 0 \end{cases}⎩⎪⎨⎪⎧​Y0Xs​=0Ys​X0=0​

其中 Xs,Ys\rm X_s , Y_sXs​,Ys​ 是 松弛变量 或 剩余变量 ;

原问题 P\rm PP 线性规划最优解是 X0=(620)\rm X^0 = \begin{pmatrix} \quad \rm 6 \quad \rm 2 \quad 0 \quad \end{pmatrix}X0=(620​) ,

对偶问题的剩余变量是 Ys=(y3y4y5)\rm Y_s= \begin{pmatrix} \quad \rm y_3 \quad \\\\ \quad \rm y_4 \quad \\\\ \quad \rm y_5 \quad \\ \end{pmatrix}Ys​=⎝⎜⎜⎜⎜⎛​y3​y4​y5​​⎠⎟⎟⎟⎟⎞​

互补松弛定理中 YsX0=0\rm Y_sX^0 = 0Ys​X0=0 , 将上述 X0\rm X^0X0 和 Ys\rm Y_sYs​ 代入上述式子得到 :

YsX0=(620)×(y3y4y5)=6y3+2y4+0y5=6y3+2y4=0\rm Y_sX^0 = \begin{pmatrix} \quad \rm 6 \quad \rm 2 \quad 0 \quad \end{pmatrix} \times \begin{pmatrix} \quad \rm y_3 \quad \\\\ \quad \rm y_4 \quad \\\\ \quad \rm y_5 \quad \\ \end{pmatrix} = 6y_3 + 2y_4 + 0y_5 = 6y_3 + 2y_4 =0Ys​X0=(620​)×⎝⎜⎜⎜⎜⎛​y3​y4​y5​​⎠⎟⎟⎟⎟⎞​=6y3​+2y4​+0y5​=6y3​+2y4​=0

已知 y3,y4≥0\rm y_3, y_4 \geq 0y3​,y4​≥0 , 上述 6y3+2y4=0\rm 6y_3 + 2y_4 = 06y3​+2y4​=0 , 因此 y3=0,y4=0\rm y_3 = 0 , y_4 = 0y3​=0,y4​=0 ;

将 y3=0,y4=0\rm y_3 = 0 , y_4 = 0y3​=0,y4​=0 代入到约束方程 {y1+2y2−y3=32y1+2y2−y4=4y1+y2−y5=1y1,y2,y3,y4,y5≥0\begin{cases} \rm y_1 + 2y_2 - y_3 = 3 \\\\ \rm 2y_1 + 2y_2 - y_4 = 4 \\\\ \rm y_1 + y_2 - y_5 = 1 \\\\ \rm y_1,y_2, y_3 , y _4, y_5 \geq 0 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​y1​+2y2​−y3​=32y1​+2y2​−y4​=4y1​+y2​−y5​=1y1​,y2​,y3​,y4​,y5​≥0​ 中 ;

得到 {y1+2y2=32y1+2y2=4\begin{cases} \rm y_1 + 2y_2 = 3 \\\\ \rm 2y_1 + 2y_2 = 4 \end{cases}⎩⎪⎨⎪⎧​y1​+2y2​=32y1​+2y2​=4​ , 解上述方程 ,

① 变换 : {2y1+4y2=62y1+2y2=4\begin{cases} \rm 2y_1 + 4y_2 = 6 \\\\ \rm 2y_1 + 2y_2 = 4 \end{cases}⎩⎪⎨⎪⎧​2y1​+4y2​=62y1​+2y2​=4​

② 求解 : {y1=1y2=1\begin{cases} \rm y_1 = 1 \\\\ \rm y_2 = 1 \end{cases}⎩⎪⎨⎪⎧​y1​=1y2​=1​

上述求出的值就是最优解 , 即 Y0=(11)\rm Y^0 = \begin{pmatrix} \quad \rm 1 \quad 1 \quad \end{pmatrix}Y0=(11​) ;

六、使用互补松弛定理公式二求解 ( 无效方法 )


方法三 : 利用 互补松弛定理 计算 ;

互补松弛定理 :

" X0\rm X^0X0 和 Y0\rm Y^0Y0 分别是 原问题 P\rm PP 问题 和 对偶问题 D\rm DD 的 最优解 " ⇔\Leftrightarrow⇔ {Y0Xs=0YsX0=0\begin{cases} \rm Y^0 X_s = 0 \\\\ \rm Y_sX^0 = 0 \end{cases}⎩⎪⎨⎪⎧​Y0Xs​=0Ys​X0=0​

其中 Xs,Ys\rm X_s , Y_sXs​,Ys​ 是 松弛变量 或 剩余变量 ;

上面 " 五、使用互补松弛定理公式一求解 " 小节 使用的是 YsX0=0\rm Y_sX^0 = 0Ys​X0=0 公式进行求解 , 在本小节中使用 Y0Xs=0\rm Y^0 X_s = 0Y0Xs​=0 公式进行求解 ;

原问题 P\rm PP 线性规划最优解是 X0=(620)\rm X^0 = \begin{pmatrix} \quad \rm 6 \quad \rm 2 \quad 0 \quad \end{pmatrix}X0=(620​) , 将该最优解代入原问题的约束条件中 , 求出原问题的约束变量 Xs\rm X_sXs​ ;

原问题 :

maxZ=3x1+4x2+x3{x1+2x2+x3≤102x1+2x2+x3≤16x1,x2,x3≥0\begin{array}{lcl} \rm maxZ = 3x_1 + 4x_2 + x_3 \\\\ \rm \begin{cases} \rm x_1 + 2x_2 + x_3 \leq 10 \\\\ \rm 2x_1 + 2x_2 + x_3 \leq 16 \\\\ \rm x_1,x_2, x_3 \geq 0 \end{cases}\end{array}maxZ=3x1​+4x2​+x3​⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​x1​+2x2​+x3​≤102x1​+2x2​+x3​≤16x1​,x2​,x3​≥0​​

原问题添加松弛变量后 :

maxZ=3x1+4x2+x3{x1+2x2+x3+x4=102x1+2x2+x3+x5=16x1,x2,x3,x4,x5≥0\begin{array}{lcl} \rm maxZ = 3x_1 + 4x_2 + x_3 \\\\ \rm \begin{cases} \rm x_1 + 2x_2 + x_3 + x_4 = 10 \\\\ \rm 2x_1 + 2x_2 + x_3 + x_5 =16 \\\\ \rm x_1,x_2, x_3, x_4 , x_5 \geq 0 \end{cases}\end{array}maxZ=3x1​+4x2​+x3​⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​x1​+2x2​+x3​+x4​=102x1​+2x2​+x3​+x5​=16x1​,x2​,x3​,x4​,x5​≥0​​

将最优解 X0=(620)\rm X^0 = \begin{pmatrix} \quad \rm 6 \quad \rm 2 \quad 0 \quad \end{pmatrix}X0=(620​) 代入原问题 :

{6+2×2+0+x4=102×6+2×2+0+x5=16\begin{cases} \rm 6 + 2\times 2 + 0 + x_4 = 10 \\\\ \rm 2 \times 6 + 2 \times 2 + 0 + x_5 = 16 \end{cases}⎩⎪⎨⎪⎧​6+2×2+0+x4​=102×6+2×2+0+x5​=16​

得到 : {x4=0x5=10\begin{cases} \rm x_4 = 0 \\\\ \rm x_5 = 10 \end{cases}⎩⎪⎨⎪⎧​x4​=0x5​=10​

Xs=(00)\rm X_s = \begin{pmatrix} \quad \rm 0 \quad \\\\ \quad \rm 0 \quad \end{pmatrix}Xs​=⎝⎛​00​⎠⎞​

这个信息是无用的 , 根据这个 Xs\rm X_sXs​ 乘以任意的 Y0\rm Y^0Y0 值都是 000 , 求不出对偶问题的最优解 ;

七、总结


互补松弛定理 :

" X0\rm X^0X0 和 Y0\rm Y^0Y0 分别是 原问题 P\rm PP 问题 和 对偶问题 D\rm DD 的 最优解 " ⇔\Leftrightarrow⇔ {Y0Xs=0YsX0=0\begin{cases} \rm Y^0 X_s = 0 \\\\ \rm Y_sX^0 = 0 \end{cases}⎩⎪⎨⎪⎧​Y0Xs​=0Ys​X0=0​

其中 Xs,Ys\rm X_s , Y_sXs​,Ys​ 是 松弛变量 或 剩余变量 ;

原问题 P\rm PP 线性规划最优解是 X0=(620)\rm X^0 = \begin{pmatrix} \quad \rm 6 \quad \rm 2 \quad 0 \quad \end{pmatrix}X0=(620​) ,

对偶问题的剩余变量是 Ys=(y3y4y5)\rm Y_s= \begin{pmatrix} \quad \rm y_3 \quad \\\\ \quad \rm y_4 \quad \\\\ \quad \rm y_5 \quad \\ \end{pmatrix}Ys​=⎝⎜⎜⎜⎜⎛​y3​y4​y5​​⎠⎟⎟⎟⎟⎞​

最优解中不等于 000 的 , 对应的剩余变量中对应的一定为 000 ,

如果最优解中等于 000 , 那么剩余变量中的对应的值就不确定了 ;

【运筹学】对偶理论 : 互补松弛定理应用 ( 原问题与对偶问题标准形式 | 已知原问题最优解求对偶问题最优解 | 使用单纯形法求解 | 使用互补松弛定理公式一求解 | 互补松弛定理公式二无效 ) ★★相关推荐

  1. 【运筹学】对偶理论 : 互补松弛性 ( 原问题与对偶问题标准形式 | 互补松弛定理 | 互补松弛定理示例说明 )

    文章目录 一.原问题与对偶问题标准形式 二.互补松弛定理 三.互补松弛定理示例说明 一.原问题与对偶问题标准形式 原问题 P\rm PP : maxZ=CXs.t{AX≤bX≥0\begin{arra ...

  2. c语言中的原码反码补码,c语言中的原码 反码 补码

    陈独秀的秘密 所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. 反码表示法规定:正数的反码与其原码 ...

  3. 原码反码补码的概念,以及原码反码的表示形式

    本文主要讲解计算机的原码, 反码和补码.的概念,以及原码反码的表示形式,以及原码反码补码之前如何相互转换,还有计算机中数字是怎么样存储的. 原码: 假设机器字长为n,原码(自然二进制码)是一种计算机中 ...

  4. 计算机原码补码和反码的计算方法,一个数的原码,反码,补码怎么算,原码 反码 补码...

    数在计算机中是以二进制形式表示的. 数分为有符号数和无符号数. 原码.反码.补码都是有符号定点数的表示方法. 一个有符号定点数的最高位为符号位,0是正,1是副. 以下都以8位整数为例, 原码就是这个数 ...

  5. 【数学思维】运筹学-线性规划之标准形式与Hidden LP

    [数学思维]运筹学-线性规划之标准形式与Hidden LP 一.线性规划的标准形式 二.LP规约为标准形式的常见情况 三.Hidden LP 本篇博文内容来自于我学习的研究生课程,由祁琦老师主讲的&l ...

  6. /*已知一个排好序的数组,按数组原排序方式插入一个数据*/

    /*已知一个排好序的数组,按数组原排序方式插入一个数据*/std::vector<int>shuzu = {1,2,3,4,5,7,8,9};int x = 0, caru = 6;std ...

  7. atomic原子类实现机制_JUC学习笔记--Atomic原子类

    Atomic 原子操作类包 Atomic包 主要是在多线程环境下,无锁的进行原子操作.核心操作是基于UnSafe类实现的CAS方法 CAS CAS: compareAndSwap :传入两个值:期望值 ...

  8. 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质示例 | 证明 原序列实部 x_R(n) 的 傅里叶变换 是 原序列傅里叶变换 的 共轭对称序列 )

    文章目录 一.前置公式定理 1.相关元素说明 x(n) 分解为实部序列与虚部序列 x(n) 分解为共轭对称序列与共轭反对称序列 ( 序列对称分解 ) X(e^{jω}) 分解为实部序列与虚部序列 X( ...

  9. 【运筹学】线性规划 单纯形法 阶段总结 ( 初始基可行解 | 判定最优解 | 迭代 | 得到最优解 | 全流程详细解析 ) ★

    文章目录 一.线性规划示例 二.转化标准形式 三.查找初始基可行解 四.初始基可行解的最优解判定 五.第一次迭代 : 入基与出基变量选择 六.第一次迭代 : 方程组同解变换 七.第一次迭代 : 生成新 ...

最新文章

  1. 如何用python制作动态二维码,提升表白成功率?
  2. 表格转化为Latex代码
  3. Sharding-JDBC 1.3.0发布——支持读写分离
  4. stm32之实时时钟RTC(掉电计时保持、秒中断、闹钟中断、溢出中断)
  5. NEERC2017 Archery Tournament 线段树 新套路
  6. Spring快速开启计划任务
  7. 【原创】MapReduce编程系列之表连接
  8. centos7/RHEL7最小化系统安装gnome图形界面
  9. 【WinHex篇】WinHex磁盘克隆教程
  10. 一切成功源于积累——20140928 认识货币——加元
  11. Python3.8场景式编程学习与训练- 第1章 入门基础 沙箱技术与虚拟环境创建
  12. Riverbed’s Modeler Academic
  13. 1317: PIPI的生日礼物
  14. html中创建表格在正上方的表格标题
  15. HTML/CSS-花样边框案例
  16. 低代码学习教程:通讯录支持设置子管理员
  17. 融云--快速集成融云
  18. js map基本操作和循环取值
  19. 日常记录,vue-table表格背景透明
  20. 阿里十年经验输出,大数据平台“数加”的前世今生

热门文章

  1. keras 自定义Layer
  2. 软考的意义,要不要考软考
  3. 2022学Django----基础五之Ajax
  4. 学习之旅-计算语言学工作者需要了解的数学知识
  5. 经验分享:新媒体运营离不开的几款运营软件
  6. 10-38 A4-7在订单详细信息表中查找包含产品种类数超过特定值的订单信息 (20 分)
  7. Mac报错:TSM AdjustCapsLockLEDForKeyTransitionHandling_ISSetPhysicalKeyboardCapsLockLED Inhibit
  8. 比较员工的年龄大小(继承、异类集合、static)
  9. 嗨格式数据恢复的 10 种最佳替代方法
  10. cocos2dx fnt字体、自定义字体制作