【运筹学】线性规划 单纯形法 案例二 ( 案例解析 | 标准形转化 | 查找初始基可行解 | 最优解判定 | 查找入基变量与出基变量 | 第一次迭代 )

本文详细介绍了如何使用单纯形法解决线性规划问题,包括将线性规划转化为标准形式,寻找初始基可行解,列出单纯形表,计算检验数,选择入基与出基变量,以及进行迭代优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >





一、线性规划示例



线性规划示例 : 使用单纯形法求解下面的线性规划 ;

m a x Z = x 1 + 2 x 2 + x 3 s . t { 2 x 1 − 3 x 2 + 2 x 3 ≤ 15 1 3 x 1 + x 2 + 5 x 3 ≤ 20 x j ≥ 0 ( j = 1 , 2 , 3 ) \begin{array}{lcl} max Z = x_1 + 2x_2 + x_3 \\ \\ s.t\begin{cases} 2 x_1 - 3x_2 + 2x_3 \leq 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 \leq 20 \\ \\x_j \geq 0 & (j = 1 , 2 , 3 ) \end{cases}\end{array} maxZ=x1+2x2+x3s.t2x13x2+2x31531x1+x2+5x320xj0(j=1,2,3)





二、转化成标准形式



首先将现行规划转化成标准形式 :

参考 【运筹学】线性规划数学模型标准形式 ( 标准形式 | 目标函数转化 | 决策变量转化 | 约束方程转化 | 固定转化顺序 | 标准形式转化实例 ) 线性规划 普通形式 -> 标准形式 转化顺序说明 博客 , 先处理变量约束 , 再将不等式转为等式 , 最后更新目标函数 ;


1 . 处理约束变量 : 所有的约束变量都大于等于 0 0 0 , 这里无需处理 ;



2 . 将不等式转为等式 : 两个不等式都是小于等于不等式 , 在左侧加入松弛变量即可 ;


① 添加松弛变量 : 上述两个不等式 { 2 x 1 − 3 x 2 + 2 x 3 ≤ 15 1 3 x 1 + x 2 + 5 x 3 ≤ 20 \begin{cases} 2 x_1 - 3x_2 + 2x_3 \leq 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 \leq 20 \end{cases} 2x13x2+2x31531x1+x2+5x320 , 在左侧分别添加 x 4 , x 5 x_4 , x_5 x4,x5 松弛变量 ;


② 最终结果 : 转化后的结果是 { 2 x 1 − 3 x 2 + 2 x 3 + x 4 = 15 1 3 x 1 + x 2 + 5 x 3 + x 5 = 20 x j ≥ 0 ( j = 1 , 2 , 3 , 4 , 5 ) \begin{cases} 2 x_1 - 3x_2 + 2x_3 + x_4 = 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + x_5 = 20 \\ \\x_j \geq 0 \quad (j = 1 , 2 , 3, 4, 5 ) \end{cases} 2x13x2+2x3+x4=1531x1+x2+5x3+x5=20xj0(j=1,2,3,4,5)



3 . 处理目标函数取最大值 : 目标函数就是取最大值 , 无需处理 ;



4 . 最终的标准形结果是 :

m a x Z = x 1 + 2 x 2 + x 3 + 0 x 4 + 0 x 5 s . t { 2 x 1 − 3 x 2 + 2 x 3 + x 4 + 0 x 5 = 15 1 3 x 1 + x 2 + 5 x 3 + 0 x 4 + x 5 = 20 x j ≥ 0 ( j = 1 , 2 , 3 , 4 , 5 ) \begin{array}{lcl} max Z = x_1 + 2x_2 + x_3 + 0x_4 + 0x_5 \\ \\ s.t\begin{cases} 2 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 = 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 20 \\ \\x_j \geq 0 \quad (j = 1 , 2 , 3, 4, 5 ) \end{cases}\end{array} maxZ=x1+2x2+x3+0x4+0x5s.t2x13x2+2x3+x4+0x5=1531x1+x2+5x3+0x4+x5=20xj0(j=1,2,3,4,5)





三、初始基可行解



找初始基可行解 :


① 查找单位阵 : 该线性规划标准形的系数矩阵中 , x 4 , x 5 x_4 , x_5 x4,x5 的系数矩阵是 ( 1 0 0 1 ) \begin{pmatrix} \quad 1 \quad 0 \quad \\ \quad 0 \quad 1 \quad \\ \end{pmatrix} (1001) , 该矩阵是单位阵 ;

② 可行基 : 选择该矩阵作为可行基 ;

③ 初始基可行解 : 其对应的解是基可行解 ( 0 0 0 15 20 ) \begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 0 \quad \\ \quad 15 \quad \\ \quad 20 \quad \\ \end{pmatrix} 0001520 ;





四、列出单纯形表



m a x Z = x 1 + 2 x 2 + x 3 + 0 x 4 + 0 x 5 s . t { 2 x 1 − 3 x 2 + 2 x 3 + x 4 + 0 x 5 = 15 1 3 x 1 + x 2 + 5 x 3 + 0 x 4 + x 5 = 20 x j ≥ 0 ( j = 1 , 2 , 3 , 4 , 5 ) \begin{array}{lcl} max Z = x_1 + 2x_2 + x_3 + 0x_4 + 0x_5 \\ \\ s.t\begin{cases} 2 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 = 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 20 \\ \\x_j \geq 0 \quad (j = 1 , 2 , 3, 4, 5 ) \end{cases}\end{array} maxZ=x1+2x2+x3+0x4+0x5s.t2x13x2+2x3+x4+0x5=1531x1+x2+5x3+0x4+x5=20xj0(j=1,2,3,4,5)


c j c_j cj c j c_j cj 1 1 1 2 2 2 1 1 1 0 0 0 0 0 0
C B C_B CB 基变量系数 (目标函数)基变量常数 b b b x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4 x 5 x_5 x5 θ i \theta_i θi
0 0 0 ( 目标函数 x 4 x_4 x4 系数 c 4 c_4 c4 ) x 4 x_4 x4 15 15 15 2 2 2 − 1 -1 1 2 2 2 1 1 1 0 0 0 − -
0 0 0 ( 目标函数 x 5 x_5 x5 系数 c 5 c_5 c5) x 5 x_5 x5 20 20 20 1 3 \dfrac{1}{3} 31 1 1 1 5 5 5 0 0 0 1 1 1 20 20 20
σ j \sigma_j σj ( 检验数 ) 1 1 1 ( σ 1 \sigma_1 σ1 ) 2 2 2 ( σ 2 \sigma_2 σ2 ) 1 1 1 ( σ 3 \sigma_3 σ3 ) 0 0 0 0 0 0




五、计算检验数



计算非基变量的检验数 :

单个检验数计算公式 : σ j = c j − ∑ c i a i j \sigma_j = c_j - \sum c_i a_{ij} σj=cjciaij , 其中 c j c_j cj 是对应目标函数非基变量系数 , c i c_i ci 是目标函数中基变量系数 , a i j a_{ij} aij 是系数矩阵中对应的 x j x_j xj 非基变量列向量 ;


σ 1 \sigma_1 σ1 检验数计算 : σ 1 = 1 − ( 0 × 2 + 0 × 1 3 ) = 1 \sigma_1 = 1 - ( 0 \times 2 + 0 \times \dfrac{1}{3} ) = 1 σ1=1(0×2+0×31)=1

在这里插入图片描述
σ 2 \sigma_2 σ2 检验数计算 : σ 2 = 2 − ( 0 × ( − 1 ) + 0 × 1 ) = 2 \sigma_2 = 2 - ( 0 \times (-1) + 0 \times 1 ) = 2 σ2=2(0×(1)+0×1)=2
在这里插入图片描述

σ 1 3 \sigma_13 σ13 检验数计算 : σ 3 = 1 − ( 0 × 2 + 0 × 5 ) = 1 \sigma_3 = 1 - ( 0 \times 2 + 0 \times 5 ) = 1 σ3=1(0×2+0×5)=1

在这里插入图片描述





六、选择入基变量与出基变量



入基变量选择 : 选择检验数 σ j \sigma_j σj 较大的非基变量作为入基变量 , x 2 x_2 x2 ;


出基变量是根据 θ \theta θ 值来选择的 , 选择 θ \theta θ 值较小的值对应的基变量作为出基变量 ;


出基变量选择 : 常数列 b = ( 15 20 ) b =\begin{pmatrix} \quad 15 \quad \\ \quad 20 \quad \end{pmatrix} b=(1520) , 分别除以除以入基变量 x 2 x_2 x2 大于 0 0 0 的系数列 ( − 1 1 ) \begin{pmatrix} \quad -1 \quad \\\\ \quad 1 \quad \end{pmatrix} 11 , 计算过程如下 ( 系 数 小 于 0 不 计 算 20 1 ) \begin{pmatrix} \quad 系数小于0 不计算 \quad \\\\ \quad \cfrac{20}{1} \quad \end{pmatrix} 0120 , 得出结果是 ( 无 效 值 20 ) \begin{pmatrix} \quad 无效值 \quad \\\\ \quad 20 \quad \end{pmatrix} 20 , 如果系数小于等于 0 0 0 , 该值就是无效值 , 默认为无穷大 , 不进行比较 , 选择 20 20 20 对应的基变量作为出基变量 , 查看该最小值对应的变量是 x 5 x_5 x5 , 选择该 x 5 x_5 x5 变量作为出基变量 ;

在这里插入图片描述





七、第一次迭代 : 列出单纯形表



上述已经得到 x 2 x_2 x2 作为入基变量 , 由非基变量转为基变量 , x 5 x_5 x5 作为出基变量 , 由基变量转为非基变量 ; 使用 x 2 x_2 x2 , 替换基变量中的 x 5 x_5 x5 的位置 ;

基变量为 x 4 , x 2 x_4 , x_2 x4,x2 , 注意顺序不要写反 ;


c j c_j cj c j c_j cj 1 1 1 2 2 2 1 1 1 0 0 0 0 0 0
C B C_B CB 基变量系数 (目标函数)基变量常数 b b b x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4 x 5 x_5 x5 θ i \theta_i θi
0 0 0 ( 目标函数 x 4 x_4 x4 系数 c 4 c_4 c4 ) x 4 x_4 x4 15 15 15 2 2 2 − 1 -1 1 2 2 2 1 1 1 0 0 0 − - ( θ 4 \theta_4 θ4)
0 0 0 ( 目标函数 x 5 x_5 x5 系数 c 5 c_5 c5) x 5 x_5 x5 20 20 20 1 3 \dfrac{1}{3} 31 1 1 1 5 5 5 0 0 0 1 1 1 20 20 20 ( θ 5 \theta_5 θ5 )
σ j \sigma_j σj ( 检验数 ) 1 1 1 ( σ 1 \sigma_1 σ1 ) 2 2 2 ( σ 2 \sigma_2 σ2 ) 1 1 1 ( σ 3 \sigma_3 σ3 ) 0 0 0 0 0 0
第一次迭代
0 0 0 ( 目标函数 x 4 x_4 x4 系数 c 4 c_4 c4 ) x 4 x_4 x4 15 15 15 ? ? ? 1 1 1 ? ? ? 1 1 1 ? ? ? ? ? ? ( θ 4 \theta_4 θ4 )
2 2 2 ( 目标函数 x 2 x_2 x2 系数 c 2 c_2 c2) x 2 x_2 x2 20 20 20 ? ? ? 0 0 0 ? ? ? 0 0 0 ? ? ? ? ? ? ( θ 2 \theta_2 θ2)
σ j \sigma_j σj ( 检验数 ) 1 1 1 ( σ 1 \sigma_1 σ1 ) 0 0 0 1 1 1 ( σ 3 \sigma_3 σ3 ) 0 0 0 ? ? ? ( σ 2 \sigma_2 σ2 )
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值