欢迎访问 生活随笔!

生活随笔

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

编程问答

【运筹学】线性规划数学模型 ( 单纯形法 | 第二次迭代 | 方程组同解变换 | 生成新单纯形表 | 计算检验数 | 最优解判定 | 线性规划解个数分析 )

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

文章目录

  • 一、第二次迭代
  • 二、方程组同解变换
  • 三、生成新的单纯形表
  • 四、计算检验数、最优解判定
  • 五、最优解个数说明
    • 1、唯一最优解
    • 2、无穷最优解
    • 3、无界解
    • 4、总结
  • 六、出基变量选择说明



上一篇博客 【运筹学】线性规划数学模型 ( 单纯形法 | 第一次迭代 | 方程组同解变换 | 计算新单纯形表 | 计算检验数 | 入基变量选择 | 出基变量选择 | 第三次迭代 | 得到最优解 ) 中进行了线性规划的第一次迭代 , 本篇博客中进行第二次迭代 ;





一、第二次迭代



当前的方程组为 {53x1+0x2+x3−13x4=3013x1+x2+0x3+13x4=10\begin{cases} \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 = 30 \\\\ \dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4 = 10 \end{cases}35x1+0x2+x331x4=3031x1+x2+0x3+31x4=10 , 选择 x1,x2x_1, x_2x1,x2 作为基变量 , 基矩阵为 (530131)\begin{pmatrix} \quad \dfrac{5}{3} \quad 0 \quad \\\\ \quad \dfrac{1}{3} \quad 1 \quad \end{pmatrix}350311 , 进行同解变换 , 将基矩阵转为单位阵 ;





二、方程组同解变换



方程 111 同解变换 :


53x1+0x2+x3−13x4=30\dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 = 3035x1+0x2+x331x4=30 方程中的 x1x_1x1 的系数变为 111 , x2x_2x2 的系数为 000 保持不变 ;


方程的左右变量乘以 35\dfrac{3}{5}53 :

53x1+0x2+x3−13x4=30(53x1+0x2+x3−13x4)×35=30×35x1+0x2+35x3−15x4=18\begin{array}{lcl} \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 &=& 30 \\\\ ( \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 ) \times \dfrac{3}{5} &=& 30 \times \dfrac{3}{5} \\\\ x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 &=& 18 \end{array}35x1+0x2+x331x4(35x1+0x2+x331x4)×53x1+0x2+53x351x4===3030×5318


当前方程组变成 {x1+0x2+35x3−15x4=1813x1+x2+0x3+13x4=10\begin{cases} x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 = 18 \\\\ \dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4 = 10 \end{cases}x1+0x2+53x351x4=1831x1+x2+0x3+31x4=10




方程 222 同解变换 : 将方程 111 乘以 −13-\dfrac{1}{3}31 , 与方程 222 相加 ;


① 方程 111 乘以 −13-\dfrac{1}{3}31 :

(x1+0x2+35x3−15x4)×−13=18×−13−13x1+0x2+−15x3+115x4=−6\begin{array}{lcl} ( x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 ) \times -\dfrac{1}{3} &=& 18 \times -\dfrac{1}{3} \\\\ -\dfrac{1}{3} x_1 + 0x_2 + -\dfrac{1}{5}x_3 + \dfrac{1}{15} x_4 &=& -6 \end{array}(x1+0x2+53x351x4)×3131x1+0x2+51x3+151x4==18×316

② 与方程 222 相加 :

(−13x1+0x2+−15x3+115x4)+(13x1+x2+0x3+13x4)=−6+100x1+x2−15x3+25x4=4\begin{array}{lcl} (-\dfrac{1}{3} x_1 + 0x_2 + -\dfrac{1}{5}x_3 + \dfrac{1}{15} x_4) + (\dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4)&=& -6 + 10 \\\\ 0x_1 + x_2 -\dfrac{1}{5}x_3 + \dfrac{2}{5} x_4 &=& 4 \end{array}(31x1+0x2+51x3+151x4)+(31x1+x2+0x3+31x4)0x1+x251x3+52x4==6+104


当前方程组变成 {x1+0x2+35x3−15x4=180x1+x2−15x3+615x4=4\begin{cases} x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 = 18 \\\\ 0x_1 + x_2 -\dfrac{1}{5}x_3 + \dfrac{6}{15} x_4 = 4 \end{cases}x1+0x2+53x351x4=180x1+x251x3+156x4=4





三、生成新的单纯形表



更新一下单纯形表 : 将第三次迭代的矩阵填入下面的单纯形表中 ;

cjc_jcjcjc_jcj333444000000
CBC_BCB 基变量系数 (目标函数)基变量常数 bbbx1x_1x1x2x_2x2x3x_3x3x4x_4x4θi\theta_iθi
000 ( 目标函数 x3x_3x3 系数 c3c_3c3 )x3x_3x3404040222111111000404040 ( θ3\theta_3θ3 )
000 ( 目标函数 x4x_4x4 系数 c4c_4c4)x4x_4x4303030111333000111101010 ( θ4\theta_4θ4 )
σj\sigma_jσj333 ( σ1\sigma_1σ1 )444 ( σ2\sigma_2σ2 )000000
第一次迭代
000 ( 目标函数 x3x_3x3 系数 c3c_3c3 )x3x_3x330303053\dfrac{5}{3}35000111−13-\dfrac{1}{3}31181818 ( θ3\theta_3θ3 )
444 ( 目标函数 x2x_2x2 系数 c2c_2c2)x2x_2x210101013\dfrac{1}{3}3111100013\dfrac{1}{3}31303030 ( θ2\theta_2θ2 )
σj\sigma_jσj ( 检验数 )53\dfrac{5}{3}35 ( σ1\sigma_1σ1 )000000−43-\dfrac{4}{3}34 ( σ4\sigma_4σ4 )
第二次迭代
333 ( 目标函数 x1x_1x1 系数 c1c_1c1 )x1x_1x118181811100035\dfrac{3}{5}53−15-\dfrac{1}{5}51??? ( θ3\theta_3θ3 )
444 ( 目标函数 x2x_2x2 系数 c2c_2c2)x2x_2x2444000111−15-\dfrac{1}{5}5125\dfrac{2}{5}52??? ( θ2\theta_2θ2 )
σj\sigma_jσj ( 检验数 )000000??? ( σ3\sigma_3σ3 )??? ( σ4\sigma_4σ4 )




四、计算检验数、最优解判定



计算检验数 σ\sigmaσ :

σ3=0−3×35−4×(−15)=−95+45=−1\sigma_3 = 0 - 3 \times \dfrac{3}{5} - 4 \times (-\dfrac{1}{5}) = -\dfrac{9}{5} + \dfrac{4}{5} = -1σ3=03×534×(51)=59+54=1


σ4=0−3×(−15)−4×25=35−85=−1\sigma_4 = 0 - 3 \times (-\dfrac{1}{5}) - 4 \times \dfrac{2}{5} = \dfrac{3}{5} - \dfrac{8}{5} = -1σ4=03×(51)4×52=5358=1


两个非基变量的检验数都是小于等于 000 , 因此该基可行解 (18400)\begin{pmatrix} \quad 18 \quad \\ \quad 4 \quad \\ \quad 0 \quad \\ \quad 0 \quad \end{pmatrix}18400是最优解 ;





五、最优解个数说明





1、唯一最优解


唯一最优解 : 上述示例中有最优解 , 两个检验数全都小于 000 , 说明该线性规划有唯一最优解 ;

如果有一个检验数等于 000 , 该线性规划有无穷多最优解 ;
如果非基变量系数都是负数 , 该线性规划有无界解



2、无穷最优解


无数最优解 : 如果线性规划中有两个最优解 , 那么这两个最优解之间的连线都是最优解 , 那么该线性规划有无数个最优解 ;


无数最优解示例 : 非基变量检验数为 000 , 就会产生无穷最优解 ;

  • 假如计算检验数时 , 有一个非基变量的检验数小于 000 , 另外一个 检验数等于 000 ;

  • 假设目标函数是 maxZ=b0+0x7−10x8maxZ = b^0 + 0x_7 - 10x_8maxZ=b0+0x710x8 形式的 , 一个系数为 000 , 一个系数为 −10-1010 ;

  • 此时 x7x_7x7 不论取何值 , 都是最优解 , 该线性规划就有无数个最优解 ;



3、无界解


无界解 :

假设线性规划是如下方程组 {2x1−x2+x3=40x1−3x2+x4=30\begin{cases} 2x_1 - x_2 + x_3 = 40 \\\\ x_1 - 3x_2 + x_4 = 30 \end{cases}2x1x2+x3=40x13x2+x4=30 , 该线性规划一定没有最优解 ;

构造一个解 (0k40+k30+3k)\begin{pmatrix} \quad 0 \quad \\ \quad k \quad \\ \quad 40 + k \quad \\ \quad 30 + 3k \quad \end{pmatrix}0k40+k30+3k , 其中 kkk 是任意一个大于 000 的正数 , ∀k>0\forall k >0k>0 ;

kkk 大于等于 000 时 , 该解是线性规划的解 , 将上述解代入目标函数中 , 目标函数可以取值到正无穷 , 该解是无界解 ;



无界解的情况总结 ( 找不到出基变量 ) :

  • 找不到出基变量 : 找到初始基可行解 , 其检验数大于 0 , 但是找不到出基变量 ;
  • 出基变量选择 : 出基变量是需要常数项除以对应非基变量系数中大于 000 的数 , 取较小的那个系数对应的基变量 ;
  • 这里两个系数都小于 000 , 找不到出基变量 , 此时无法继续进行迭代 , 这种情况下目标函数取不到最大值 , 目标函数可以取值无限大 ;


4、总结


根据检验数判定 :

  • 唯一最优解 : 检验数全部小于 000 ;
  • 无穷最优解 : 检验数有一个等于 000 ;
  • 无界解: 能根据检验数找到入基变量 , 假如某个非基变量的系数全部小于 000 , 无法找到出击变量 , 此时是无界解 ;

线性规划无解的情况 : 线性规划中 , 假设是有初始基可行解的 , 如果没有解 , 初始基可行解也不存在 ;





六、出基变量选择说明



每次迭代时 , 先找到入基变量 ( 换入变量 ) , 然后根据换入变量计算 θ\thetaθ 值 , 找到出基变量 ( 换出变量 ) ;

出基变量查找方法 : 使用 常数项 , 与 入基变量中大于 000 的系数 做除法 , 如果有小于 000 的系数 , 那么不进行计算 , 该值没有任何参考价值 ;

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的【运筹学】线性规划数学模型 ( 单纯形法 | 第二次迭代 | 方程组同解变换 | 生成新单纯形表 | 计算检验数 | 最优解判定 | 线性规划解个数分析 )的全部内容,希望文章能够帮你解决所遇到的问题。

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