文章目录

  • 人工变量法
  • 1. 大M法
    • 1.1. 题目
    • 1.2. 转化为标准型
    • 1.3. 添加人工变量
  • 2. 两阶段法
    • 2.1. 步骤
    • 2.2. 题目
      • 2.2.1. 转化为标准型
      • 2.2.2. 添加人工变量
      • 2.2.3. 两阶段
  • 3. 参考

人工变量法

在一些模型中并不包含单位矩阵,为了得到一组基向量和初始可行解,在约束条件的等式左端添加一组虚拟变量,得到一组基向量。这种人为添加的变量称为人工变量,构成的可行基称为人工基,用大M法两阶段法求解。

1. 大M法

大M法,通过引进人工变量,构造一个辅助的线性规划问题, 然后由辅助的线性规划问题找出原问题的第一个初始可行基,在此基础上,利用单纯形法求出原问题的最优解。

1.1. 题目

用大 M 法解下列线性规划

max⁡Z=3x1+2x2−x3\max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1​+2x2​−x3​

s.t.{−4x1+3x2+x3≥4x1−x2+2x3≤10−2x1+2x2−x3=−1xi≥0,i=1,2,3\text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 \geq 4 \\ x_1 - x_2 + 2x_3 \leq 10 \\ -2x_1 + 2x_2 - x_3 = -1 \\ x_i \geq 0, i=1,2,3 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧​−4x1​+3x2​+x3​≥4x1​−x2​+2x3​≤10−2x1​+2x2​−x3​=−1xi​≥0,i=1,2,3​

1.2. 转化为标准型

首先将线性规划转换成标准型

max⁡Z=3x1+2x2−x3+0x4+0x5\max Z = 3x_1 + 2x_2 - x_3 + 0x_4 + 0x_5 maxZ=3x1​+2x2​−x3​+0x4​+0x5​

s.t.{−4x1+3x2+x3−x4=4x1−x2+2x3+x5=102x1−2x2+x3=1xi≥0,i=1,2,…,5\text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 = 1 \\ x_i \geq 0, i=1,2,\dots, 5 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧​−4x1​+3x2​+x3​−x4​=4x1​−x2​+2x3​+x5​=102x1​−2x2​+x3​=1xi​≥0,i=1,2,…,5​

画出其对应的单纯形表(如果这一步,还不会的话,可以参考单纯形法求解步骤:一个简单例子)

CCC CCC CCC 3 2 -1 0 0
CBC_BCB​ bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​
4 -4 3 1 -1 0
10 1 -1 2 0 1
1 2 -2 1 0 0
σ\sigmaσ σ\sigmaσ σ\sigmaσ

在这个表的系数矩阵中,没有单位矩阵存在,所以无法直接进行求解,需要使用一些辅助手段–人工变量法。

1.3. 添加人工变量

max⁡Z=3x1+2x2−x3+0x4+0x5−Mx6−Mx7\max Z = 3x_1 + 2x_2 - x_3 + 0x_4 + 0x_5 - Mx_6 - Mx_7 maxZ=3x1​+2x2​−x3​+0x4​+0x5​−Mx6​−Mx7​

s.t.{−4x1+3x2+x3−x4+x6=4x1−x2+2x3+x5=102x1−2x2+x3+x7=1xi≥0,i=1,2,…,7\text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 + x_6 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 + x_7 = 1 \\ x_i \geq 0, i=1,2,\dots,7 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧​−4x1​+3x2​+x3​−x4​+x6​=4x1​−x2​+2x3​+x5​=102x1​−2x2​+x3​+x7​=1xi​≥0,i=1,2,…,7​

CCC CCC CCC 3 2 -1 0 0 -M -M
CBC_BCB​ bbb x1x_1x1​ x2x_2x2​ x3↓x_3 \downarrowx3​↓ x4x_4x4​ x5x_5x5​ x6x_6x6​ x7x_7x7​
-M x6x_6x6​ 4 -4 3 1 -1 0 1 0
0 x5x_5x5​ 10 1 -1 2 0 1 0 0
-M ←x7\leftarrow x_7←x7​ 1 2 -2 [1] 0 0 0 1
σ\sigmaσ σ\sigmaσ σ\sigmaσ 3-2M 2+M -1+2M -M 0 0 0

入基变量 x3x_3x3​,出基变量 x7x_7x7​;

CCC CCC CCC 3 2 -1 0 0 -M -M
CBC_BCB​ bbb x1x_1x1​ x2↓x_2 \downarrowx2​↓ x3x_3x3​ x4x_4x4​ x5x_5x5​ x6x_6x6​ x7x_7x7​
-M ←x6\leftarrow x_6←x6​ 3 -6 [5] 0 -1 0 1 -1
0 x5x_5x5​ 8 -3 3 0 0 1 0 -2
-1 x3x_3x3​ 1 2 -2 1 0 0 0 1
σ\sigmaσ σ\sigmaσ σ\sigmaσ 5-6M 5M 0 -M 0 0 1-M

入基变量 x2x_2x2​,出基变量 x6x_6x6​;

CCC CCC CCC 3 2 -1 0 0 -M -M
CBC_BCB​ bbb x1↓x_1 \downarrowx1​↓ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ x6x_6x6​ x7x_7x7​
2 x2x_2x2​ 35\frac{3}{5}53​ −65-\frac{6}{5}−56​ 1 0 −15-\frac{1}{5}−51​ 0 15\frac{1}{5}51​ −15-\frac{1}{5}−51​
0 ←x5\leftarrow x_5←x5​ 315\frac{31}{5}531​ [35\frac{3}{5}53​] 0 0 35\frac{3}{5}53​ 1 −35-\frac{3}{5}−53​ −75-\frac{7}{5}−57​
-1 x3x_3x3​ 115\frac{11}{5}511​ −25-\frac{2}{5}−52​ 0 1 −25-\frac{2}{5}−52​ 0 25\frac{2}{5}52​ 35\frac{3}{5}53​
σ\sigmaσ σ\sigmaσ σ\sigmaσ 5 0 0 0 0 -M 1-M

入基变量 x1x_1x1​,出基变量 x5x_5x5​;

CCC CCC CCC 3 2 -1 0 0 -M -M
CBC_BCB​ bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ x6x_6x6​ x7x_7x7​
2 x2x_2x2​ 13 0 1 0 1 2 1 -3
3 x1x_1x1​ 313\frac{31}{3}331​ 1 0 0 1 53\frac{5}{3}35​ -1 −73-\frac{7}{3}−37​
-1 x3x_3x3​ 193\frac{19}{3}319​ 0 0 1 0 23\frac{2}{3}32​ 0 −13-\frac{1}{3}−31​
σ\sigmaσ σ\sigmaσ σ\sigmaσ 0 0 0 -5 −253-\frac{25}{3}−325​ 1-M 383\frac{38}{3}338​-M

因为 σj≤0\sigma_j \leq 0σj​≤0,对所有的 jjj 成立,所以迭代结束。
最优解为

x∗=(313,13,193,0,0)T,x^*=(\frac{31}{3}, 13, \frac{19}{3}, 0, 0)^T, x∗=(331​,13,319​,0,0)T,

Z∗=3x1+2x2−x3=3∗313+2∗13−193=1523.Z^* = 3x_1 + 2x_2 - x_3 = 3*\frac{31}{3} + 2*13-\frac{19}{3}= \frac{152}{3}. Z∗=3x1​+2x2​−x3​=3∗331​+2∗13−319​=3152​.

2. 两阶段法

在原来问题引入人工变量后分两个阶段求解线性规划问题的方法。其中,第一阶段在原来问题中引入人工变量,设法构造一个单位矩阵的初始可行基。在此基础上,建立辅助线性规划问题。然后运用单纯形法求解,直到辅助目标函数为0为止。第二阶段重新回到原来的问题,以第一阶段得到的可行基为初始可行基,运用单纯形法求出原来问题的解。

2.1. 步骤

  1. 不考虑原问题是否存在基可行解,引进人工变量,构造辅助线性规划问题;
  2. 用单纯形法求解辅助问题,若辅助问题的目标函数值 Z≠0Z \neq 0Z​=0,则原问题无可行解,停止计算;
  3. 若辅助问题的目标函数值 Z=0Z = 0Z=0,则将第一阶段计算得到的最终表,除去人工变量,将目标函数行的系数换为原问题的目标函数系数,作为第二阶段的初始表;
  4. 使用单纯形法求解。

2.2. 题目

用两阶段法求解线性规划问题

max⁡Z=3x1+2x2−x3\max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1​+2x2​−x3​

s.t.{−4x1+3x2+x3≥4x1−x2+2x3≤10−2x1+2x2−x3=−1xi≥0,i=1,2,3\text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 \geq 4 \\ x_1 - x_2 + 2x_3 \leq 10 \\ -2x_1 + 2x_2 - x_3 = -1 \\ x_i \geq 0, i=1,2,3 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧​−4x1​+3x2​+x3​≥4x1​−x2​+2x3​≤10−2x1​+2x2​−x3​=−1xi​≥0,i=1,2,3​

2.2.1. 转化为标准型

max⁡Z=3x1+2x2−x3\max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1​+2x2​−x3​

s.t.{−4x1+3x2+x3−x4=4x1−x2+2x3+x5=102x1−2x2+x3=1xi≥0,i=1,2,…,5\text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 = 1 \\ x_i \geq 0, i=1,2,\dots, 5 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧​−4x1​+3x2​+x3​−x4​=4x1​−x2​+2x3​+x5​=102x1​−2x2​+x3​=1xi​≥0,i=1,2,…,5​

2.2.2. 添加人工变量

max⁡Z=3x1+2x2−x3\max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1​+2x2​−x3​

s.t.{−4x1+3x2+x3−x4+x6=4x1−x2+2x3+x5=102x1−2x2+x3+x7=1xi≥0,i=1,2,…,7\text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 + x_6 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 + x_7 = 1 \\ x_i \geq 0, i=1,2,\dots, 7 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧​−4x1​+3x2​+x3​−x4​+x6​=4x1​−x2​+2x3​+x5​=102x1​−2x2​+x3​+x7​=1xi​≥0,i=1,2,…,7​

2.2.3. 两阶段

  • 第一阶段

min⁡W=0x1+0x2+0x3+0x4+0x5+x6+x7\min W = 0x_1 + 0x_2 + 0x_3 + 0x_4 + 0x_5 + x_6 + x_7 minW=0x1​+0x2​+0x3​+0x4​+0x5​+x6​+x7​

⟺\iff ⟺

max⁡−W=0x1+0x2+0x3+0x4+0x5−x6−x7\max -W = 0x_1 + 0x_2 + 0x_3 + 0x_4 + 0x_5 - x_6 - x_7 max−W=0x1​+0x2​+0x3​+0x4​+0x5​−x6​−x7​

CCC CCC CCC 0 0 0 0 0 -1 -1
CBC_BCB​ bbb x1x_1x1​ x2x_2x2​ x3↓x_3 \downarrowx3​↓ x4x_4x4​ x5x_5x5​ x6x_6x6​ x7x_7x7​
-1 x6x_6x6​ 4 -4 3 1 -1 0 1 0
0 x5x_5x5​ 10 1 -1 2 0 1 0 0
-1 ←x7\leftarrow x_7←x7​ 1 2 -2 [1] 0 0 0 1
σ\sigmaσ σ\sigmaσ σ\sigmaσ -2 1 2 -1 0 0 0

入基变量 x3x_3x3​,出基变量 x7x_7x7​;

CCC CCC CCC 0 0 0 0 0 -1 -1
CBC_BCB​ bbb x1x_1x1​ x2↓x_2 \downarrowx2​↓ x3x_3x3​ x4x_4x4​ x5x_5x5​ x6x_6x6​ x7x_7x7​
-1 ←x6\leftarrow x_6←x6​ 3 -6 [5] 0 -1 0 1 -1
0 x5x_5x5​ 8 -3 3 0 0 1 0 -2
0 x3x_3x3​ 1 2 -2 1 0 0 0 1
σ\sigmaσ σ\sigmaσ σ\sigmaσ -6 5 0 -1 0 0 -2

入基变量 x2x_2x2​,出基变量 x6x_6x6​;

CCC CCC CCC 0 0 0 0 0 -1 -1
CBC_BCB​ bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ x6x_6x6​ x7x_7x7​
0 x2x_2x2​ 35\frac{3}{5}53​ −65-\frac{6}{5}−56​ 1 0 −15-\frac{1}{5}−51​ 0 15\frac{1}{5}51​ −15-\frac{1}{5}−51​
0 x5x_5x5​ 315\frac{31}{5}531​ 35\frac{3}{5}53​ 0 0 35\frac{3}{5}53​ 1 −35-\frac{3}{5}−53​ −75-\frac{7}{5}−57​
0 x3x_3x3​ 115\frac{11}{5}511​ −25-\frac{2}{5}−52​ 0 1 −25-\frac{2}{5}−52​ 0 25\frac{2}{5}52​ 35\frac{3}{5}53​
σ\sigmaσ σ\sigmaσ σ\sigmaσ 0 0 0 0 0 -1 -1

所有的人工变量都是非基变量,第一阶段结束。

  • 第二阶段
CCC CCC CCC 3 2 -1 0 0
CBC_BCB​ bbb x1↓x_1 \downarrowx1​↓ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​
2 x2x_2x2​ 35\frac{3}{5}53​ −65-\frac{6}{5}−56​ 1 0 −15-\frac{1}{5}−51​ 0
0 ←x5\leftarrow x_5←x5​ 315\frac{31}{5}531​ [35\frac{3}{5}53​] 0 0 35\frac{3}{5}53​ 1
-1 x3x_3x3​ 115\frac{11}{5}511​ −25-\frac{2}{5}−52​ 0 1 −25-\frac{2}{5}−52​ 0
σ\sigmaσ σ\sigmaσ σ\sigmaσ 5 0 0 0 0

入基变量 x1x_1x1​,出基变量 x5x_5x5​;

CCC CCC CCC 3 2 -1 0 0
CBC_BCB​ bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​
2 x2x_2x2​ 13 0 1 0 1 2
3 x1x_1x1​ 313\frac{31}{3}331​ 1 0 0 1 53\frac{5}{3}35​
-1 x3x_3x3​ 193\frac{19}{3}319​ 0 0 1 0 23\frac{2}{3}32​
σ\sigmaσ σ\sigmaσ σ\sigmaσ 0 0 0 -5 −253-\frac{25}{3}−325​

σj≤0\sigma_j \leq 0σj​≤0, 对所有的 jjj 都成立,因此求解结束。

最优解

x∗=(313,13,193,0,0)T,x^* = (\frac{31}{3}, 13, \frac{19}{3}, 0, 0)^T, x∗=(331​,13,319​,0,0)T,

Z∗=3x1+2x2−x3=3∗313+2∗13−193=1523.Z^* = 3x_1 + 2x_2 - x_3 = 3 * \frac{31}{3} + 2 * 13 - \frac{19}{3} = \frac{152}{3}. Z∗=3x1​+2x2​−x3​=3∗331​+2∗13−319​=3152​.

3. 参考

  1. 正气清风:(完整版)单纯形法、大M法
  2. Homyee King:初始解----两阶段的单纯形法

单纯形法之人工变量法求解步骤:一个简单例子相关推荐

  1. SAP MM采购定价过程的一个简单例子

    SAP MM采购定价过程的一个简单例子 本文以一个简单的例子阐述了SAP MM模块中采购定价的基本原理.本例中,假定采购订单里输入的是含税采购价,然后系统自动计算出物料最终的采购价格(含税价-税额=采 ...

  2. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  3. KaTex的一个简单例子

    在网页中可以用KaTex显示数学公式,KaTex官网是https://katex.org 以下是KaTex的一个简单例子: 下载https://github.com/KaTeX/KaTeX/archi ...

  4. 初次使用CTex时的一个简单例子

    初次使用CTex时的一个简单例子 1.初次使用Ctex时的例子 第一次使用 LATEX,在WinEdt编辑以下代码,然后使用PDFLaTeX生成PDF文档. \documentclass{articl ...

  5. 协方差检验用在什么地方_通过一个简单例子,通俗讲下协方差分析

    内容来自:"小白学统计"微信公众号,感谢作者授权. 临床中经常碰到这种设计:研究对象分为两组,接受不同治疗(如治疗组和安慰组),每组分别在治疗前和治疗后测量观察指标(如血压值).目 ...

  6. 通过一个简单例子理解 RecyclerView.ItemDecoration

    一.前言 RecyclerView 是从5.0推出的 MD 风格的控件.RecyclerView 之前有 ListView.GridView,但是功能很有限,例如 ListView 只能实现垂直方向上 ...

  7. 什么是量子计算机?用一个简单例子来解释

    译者:王亮  作者:YK Sugi  原文:http://t.cn/EZAElk0 Hi,大家好! 不久前,我参观了加拿大温哥华的D-Wave Systems公司,这是一家制造前沿量子计算机的公司. ...

  8. 词法分析程序 LEX和VC6整合使用的一个简单例子

    词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...

  9. Coolite一个简单例子-GridPanel列表增删改预览

    本篇教程:Coolite Toolkit中文站首发. 我从http://www.cnblogs.com/magical/archive/2009/10/27/1590701.html转载. 这个例子只 ...

最新文章

  1. 线性O(N)时间复杂度求素数 , 筛法
  2. linux上安装pycharm
  3. Kotlin一大特色之空安全
  4. 面向对象(上)知识点
  5. CEO 赠书 | 甲之蜜糖乙之砒霜,创新者也将成为守旧者
  6. listagg 函数--oracle 11g release 2
  7. php反射机制详解,PHP反射机制实现插件的可插拔设计
  8. GraphQL:验证与授权
  9. C:打印菱形(自己的方法)
  10. 做一个关于我和她微信聊天记录的爱心词云图
  11. C语言输入函数换行符赋给变量B,C语言程序设计第3章顺序结构程序设计.pptx-资源下载在线文库www.lddoc.cn...
  12. java 数组大数乘法_java – 在数组中查找3个数字的最大乘积
  13. express url跳转(重定向)的实现:res.location() res.redirect()
  14. 收藏 | NLP论文、代码、博客、视频资源(LSTM,指针模型,Attention, ELMo,GPT,BERT、多任务学习等)...
  15. 我们精心整理的2019最新全栈资料!首次公布
  16. 浏览器播放语音SpeechSynthesisUtterance
  17. php遵义旅游管理系统毕业设计源码091801
  18. Date.getyear()、Date.getMonth()、Date.getDay() 已经作废,其他解决办法
  19. Android EditText输入光标居于开头最开始位置
  20. 树莓派4b搭建个人云_用树莓派搭建私人简易网盘 2/5 树莓派4B初始设置

热门文章

  1. jq中阿贾克斯的格式及作用
  2. java 的图片BufferedImage方式缩小后有严重色差/严重偏红怎么办
  3. Python网络爬虫(三)网易云音乐热评
  4. 【编译原理】第三章作业
  5. 易语言-画板取色和画点
  6. 新建文本文档 (3)
  7. MySQL数据库创建索引
  8. push和pop的区别?
  9. platform.pk8 和platform.x509.pem转jks
  10. C语言源代码系列-管理系统之职工信息管理系统