运筹优化学习15:求解线性规划的单纯形法【手把手计算,够你应付考试了,看不懂算我输】

目录

1 理论部分

1.1 单纯形表的要素含义解释

1.2 计算步骤

2 计算示例

2.1 初始单纯形表

2.2 第二次变换

2.3 第三次变换

2.4 第四次变换

3 参考文档


本博主研究了一天没有搞明白,幸得大神指点迷津,现将学习过程记录如下

1 理论部分

1.1 单纯形表的要素含义解释

1.2 计算步骤

 

1.3 黄丽娟老师的课件

初始单纯形表

计算检验数:

计算换出比率:

得到主元:

做初等行变换:

2 计算示例

& max z=2x_{1}+3x_{2} \\ & x_1 + 2x_2 \leq 8 \\& 4x_1 \leq 16 \\ &4x_2 \leq 12

2.1 初始单纯形表

 

【敲黑板:单位矩阵的检验数一定是0;单位矩阵对应的变量为基变量】

 

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
0x_38121004
0x_41640010-
0x_512040013
\sigma _j 023000 

检验数的计算:

\sigma _1 =& c_1 - (C_1*a_{11} + C_2 * a_{12} + C_3 * a_{13}) =2 - (0 * 1 + 0 * 4 + 0 * 0) = 2

\sigma _2 =& c_2 - (C_1*a_{12} + C_2 * a_{22} + C_3 * a_{32}) =3 - (0 * 2 + 0 * 0 + 0 * 4) = 3

依次计算所有的检验数,选择其中检验数最大的变量作为入基变量,即x_2

分别计算b列与a_{i2}列的比值,得到换入变量比率;

计算过程:

\theta _1 = b_1 / a_{12} = 8/2 = 4

\theta _2 = b_2 / a_{22} = 8/0 = [-]   【分母为负数或0,比率用 - 标记】

\theta _3 = b_3 / a_{32} = 12/4 = 3

取比率最小值的x_5作为换出变量

因此我们确定出入基变量为x_2和出基变量x_5

2.2 第二次变换

要把系数矩阵中的x_3,x_4,x_2变换成单位矩阵

在初始单纯形表的基础上,

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
0x_3812100 
0x_41640010 
0x_51204001 
\sigma _j        

确定主元列为x_2,更新入基变量的C_B值;然后,将主元列化为单位向量,执行如下两步变换:

  1.  第三行 * (-1/2)加到第一行,得到变换后的第一行;
  2. 第三行 * (1/4)

得到更新后的单纯形表,

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
0x_321010-1/2 
0x_41640010 
3x_2301001/4 
\sigma _j        

重新计算检验数和价值比率

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
0x_321010-1/22
0x_416400104
3x_2301001/4-
\sigma _j  2000-3/4 

计算两个检验数:

\sigma_{1} = c_1 - (C_1 * a_{11} + C_2 * a_{12} + C_3 * a_{13}) = 2 - (0 * 1 + 0 * 4 + 0 * 0) = 2

\sigma_{5} &= c_5 - (C_1 * a_{15} + C_2 * a_{25} + C_3 * a_{35}) \\&= 0 - (0 * (-1/2)) + 0 * 0 + 3 * 1/4) \\&= -3/4

存在正检验数,需要继续计算换入比率

计算换入比率:

\theta _1 = b_1 / a_{11} = 2/1 = 2

\theta _2 = b_2 / a_{21} = 16/4 = 4   

\theta _3 = b_3 / a_{31} = 3/0 = [-]【分母为负数或0,比率用 - 标记】

确定入基变量为x_1和出基变量为x_3

2.3 第三次变换

更新C_B,将主元列化为单位向量

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
2x_121010-1/2 
0x_41640010 
3x_2301001/4-
\sigma _j        

只需变换x_4这一行即可【第一行 * (-4)加到第二行上】:

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
2x_121010-1/2-
0x_4800-4124
3x_2301001/412
\sigma _j  00-201/4 

计算检验数:

\sigma_{3} = c_3 - (C_1 * a_{13} + C_2 * a_{23} + C_3 * a_{33}) = 0 - (2 * 1 + 0 * (-4) + 3 * 0) = -2

\sigma_{5} = c_5 - (C_1 * a_{15} + C_2 * a_{25} + C_3 * a_{35}) = 0 - (2 * (-1/2) + 0 * 2 + 3 * (1/4)) = 1/4

 

存在正检验数,继续计算换入比率:

\theta _1 = b_1 / a_{15} = 2/(-1/2) = [-]【分母为负数或0,比率用 - 标记】

\theta _2 = b_2 / a_{25} = 8/2 = 4   

\theta _3 = b_3 / a_{35} = 3*(1/4) = 12

确定入基变量x_5和出基变量x_4

2.4 第四次变换

更新C_B,将主元列化为单位向量:

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
2x_121010-1/2 
0x_5800-412 
3x_2301001/4 
\sigma _j        

变换步骤:

  1. 第二行 / 2
  2. 第二行 * 1/2 加到第一行
  3. 第二行 * (-1/4) 加到第三行

 

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
2x_141001/40 
0x_5400-21/21 
3x_22011/2-1/80 
\sigma _j        

计算检验数:

c_j23000\theta_{j}
C_Bbx_1x_2x_3x_4x_5
2x_141001/40 
0x_5400-21/21 
3x_22011/2-1/80 
\sigma _j  00-3/2-1/80 

\sigma_{3} = c_3 - (C_1 * a_{13} + C_2 * a_{23} + C_3 * a_{33}) = 0 - (2 * 0 + 0 * (-2) + 3 * (1/2) = -3/2

\sigma_{4} = c_4 - (C_1 * a_{14} + C_2 * a_{24} + C_3 * a_{34}) = 0 - (2 * (1/4) + 0 * 1 + 3 * (-1/8)) = -1/8

所有检验数为负数,得到最优解

目标函数值为:

z = 2 * 4 + 3 * 2 = 14

2.4 软件求解

3 参考文档

单纯形法的计算步骤

线性规划之单纯形法【超详解+图解】

运筹学课件 单纯形法的计算步骤

运筹学单纯形法计算步骤.pptx

单纯形法例题详解

欢迎关注个人公众账号【运筹优化与图像处理算法编程】及【学而立行】,一起学习,共同进步!

 

 

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛桂琴

喜欢的读者,可以打赏鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值