欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/6/17 编程问答 43 豆豆

文章目录

  • 一、线性规划示例
  • 二、转化成标准形式
  • 三、初始基可行解
  • 四、列出单纯形表
  • 五、计算检验数
  • 六、选择入基变量与出基变量
  • 七、第一次迭代 : 列出单纯形表





一、线性规划示例



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

maxZ=x1+2x2+x3s.t{2x1−3x2+2x3≤1513x1+x2+5x3≤20xj≥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 . 处理约束变量 : 所有的约束变量都大于等于 000 , 这里无需处理 ;



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


① 添加松弛变量 : 上述两个不等式 {2x1−3x2+2x3≤1513x1+x2+5x3≤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 , 在左侧分别添加 x4,x5x_4 , x_5x4,x5 松弛变量 ;


② 最终结果 : 转化后的结果是 {2x1−3x2+2x3+x4=1513x1+x2+5x3+x5=20xj≥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 . 最终的标准形结果是 :

maxZ=x1+2x2+x3+0x4+0x5s.t{2x1−3x2+2x3+x4+0x5=1513x1+x2+5x3+0x4+x5=20xj≥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)





三、初始基可行解



找初始基可行解 :


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

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

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





四、列出单纯形表



maxZ=x1+2x2+x3+0x4+0x5s.t{2x1−3x2+2x3+x4+0x5=1513x1+x2+5x3+0x4+x5=20xj≥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)


cjc_jcjcjc_jcj111222111000000
CBC_BCB 基变量系数 (目标函数)基变量常数 bbbx1x_1x1x2x_2x2x3x_3x3x4x_4x4x5x_5x5θi\theta_iθi
000 ( 目标函数 x4x_4x4 系数 c4c_4c4 )x4x_4x4151515222−1-11222111000−-
000 ( 目标函数 x5x_5x5 系数 c5c_5c5)x5x_5x520202013\dfrac{1}{3}31111555000111202020
σj\sigma_jσj ( 检验数 )111 ( σ1\sigma_1σ1 )222 ( σ2\sigma_2σ2 )111 ( σ3\sigma_3σ3 )000000




五、计算检验数



计算非基变量的检验数 :

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


σ1\sigma_1σ1 检验数计算 : σ1=1−(0×2+0×13)=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

σ13\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 较大的非基变量作为入基变量 , x2x_2x2 ;


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


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





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



上述已经得到 x2x_2x2 作为入基变量 , 由非基变量转为基变量 , x5x_5x5 作为出基变量 , 由基变量转为非基变量 ; 使用 x2x_2x2 , 替换基变量中的 x5x_5x5 的位置 ;

基变量为 x4,x2x_4 , x_2x4,x2 , 注意顺序不要写反 ;


cjc_jcjcjc_jcj111222111000000
CBC_BCB 基变量系数 (目标函数)基变量常数 bbbx1x_1x1x2x_2x2x3x_3x3x4x_4x4x5x_5x5θi\theta_iθi
000 ( 目标函数 x4x_4x4 系数 c4c_4c4 )x4x_4x4151515222−1-11222111000−- (θ4\theta_4θ4)
000 ( 目标函数 x5x_5x5 系数 c5c_5c5)x5x_5x520202013\dfrac{1}{3}31111555000111202020 ( θ5\theta_5θ5 )
σj\sigma_jσj ( 检验数 )111 ( σ1\sigma_1σ1 )222 ( σ2\sigma_2σ2 )111 ( σ3\sigma_3σ3 )000000
第一次迭代
000 ( 目标函数 x4x_4x4 系数 c4c_4c4 )x4x_4x4151515???111???111?????? ( θ4\theta_4θ4 )
222 ( 目标函数 x2x_2x2 系数 c2c_2c2)x2x_2x2202020???000???000?????? (θ2\theta_2θ2)
σj\sigma_jσj ( 检验数 )111 ( σ1\sigma_1σ1 )000111 ( σ3\sigma_3σ3 )000??? ( σ2\sigma_2σ2 )

总结

以上是生活随笔为你收集整理的【运筹学】线性规划 单纯形法 案例二 ( 案例解析 | 标准形转化 | 查找初始基可行解 | 最优解判定 | 查找入基变量与出基变量 | 第一次迭代 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。