【运筹学】线性规划数学模型 ( 单纯形法 | 第二次迭代 | 方程组同解变换 | 生成新单纯形表 | 计算检验数 | 最优解判定 | 线性规划解个数分析 )
文章目录
- 一、第二次迭代
- 二、方程组同解变换
- 三、生成新的单纯形表
- 四、计算检验数、最优解判定
- 五、最优解个数说明
- 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+x3−31x4=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+x3−31x4=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+x3−31x4(35x1+0x2+x3−31x4)×53x1+0x2+53x3−51x4===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+53x3−51x4=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+53x3−51x4)×−31−31x1+0x2+−51x3+151x4==18×−31−6
② 与方程 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+x2−51x3+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+53x3−51x4=180x1+x2−51x3+156x4=4
三、生成新的单纯形表
更新一下单纯形表 : 将第三次迭代的矩阵填入下面的单纯形表中 ;
| CBC_BCB 基变量系数 (目标函数) | 基变量 | 常数 bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | θi\theta_iθi |
| 000 ( 目标函数 x3x_3x3 系数 c3c_3c3 ) | x3x_3x3 | 404040 | 222 | 111 | 111 | 000 | 404040 ( θ3\theta_3θ3 ) |
| 000 ( 目标函数 x4x_4x4 系数 c4c_4c4) | x4x_4x4 | 303030 | 111 | 333 | 000 | 111 | 101010 ( θ4\theta_4θ4 ) |
| σj\sigma_jσj | 333 ( σ1\sigma_1σ1 ) | 444 ( σ2\sigma_2σ2 ) | 000 | 000 | |||
| 第一次迭代 | – | – | – | – | – | – | – |
| 000 ( 目标函数 x3x_3x3 系数 c3c_3c3 ) | x3x_3x3 | 303030 | 53\dfrac{5}{3}35 | 000 | 111 | −13-\dfrac{1}{3}−31 | 181818 ( θ3\theta_3θ3 ) |
| 444 ( 目标函数 x2x_2x2 系数 c2c_2c2) | x2x_2x2 | 101010 | 13\dfrac{1}{3}31 | 111 | 000 | 13\dfrac{1}{3}31 | 303030 ( θ2\theta_2θ2 ) |
| σj\sigma_jσj ( 检验数 ) | 53\dfrac{5}{3}35 ( σ1\sigma_1σ1 ) | 000 | 000 | −43-\dfrac{4}{3}−34 ( σ4\sigma_4σ4 ) | |||
| 第二次迭代 | – | – | – | – | – | – | – |
| 333 ( 目标函数 x1x_1x1 系数 c1c_1c1 ) | x1x_1x1 | 181818 | 111 | 000 | 35\dfrac{3}{5}53 | −15-\dfrac{1}{5}−51 | ??? ( θ3\theta_3θ3 ) |
| 444 ( 目标函数 x2x_2x2 系数 c2c_2c2) | x2x_2x2 | 444 | 000 | 111 | −15-\dfrac{1}{5}−51 | 25\dfrac{2}{5}52 | ??? ( θ2\theta_2θ2 ) |
| σj\sigma_jσj ( 检验数 ) | 000 | 000 | ??? ( σ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=0−3×53−4×(−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=0−3×(−51)−4×52=53−58=−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+0x7−10x8 形式的 , 一个系数为 000 , 一个系数为 −10-10−10 ;
-
此时 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}⎩⎪⎨⎪⎧2x1−x2+x3=40x1−3x2+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 >0∀k>0 ;
当 kkk 大于等于 000 时 , 该解是线性规划的解 , 将上述解代入目标函数中 , 目标函数可以取值到正无穷 , 该解是无界解 ;
无界解的情况总结 ( 找不到出基变量 ) :
- 找不到出基变量 : 找到初始基可行解 , 其检验数大于 0 , 但是找不到出基变量 ;
- 出基变量选择 : 出基变量是需要常数项除以对应非基变量系数中大于 000 的数 , 取较小的那个系数对应的基变量 ;
- 这里两个系数都小于 000 , 找不到出基变量 , 此时无法继续进行迭代 , 这种情况下目标函数取不到最大值 , 目标函数可以取值无限大 ;
4、总结
根据检验数判定 :
- 唯一最优解 : 检验数全部小于 000 ;
- 无穷最优解 : 检验数有一个等于 000 ;
- 无界解: 能根据检验数找到入基变量 , 假如某个非基变量的系数全部小于 000 , 无法找到出击变量 , 此时是无界解 ;
线性规划无解的情况 : 线性规划中 , 假设是有初始基可行解的 , 如果没有解 , 初始基可行解也不存在 ;
六、出基变量选择说明
每次迭代时 , 先找到入基变量 ( 换入变量 ) , 然后根据换入变量计算 θ\thetaθ 值 , 找到出基变量 ( 换出变量 ) ;
出基变量查找方法 : 使用 常数项 , 与 入基变量中大于 000 的系数 做除法 , 如果有小于 000 的系数 , 那么不进行计算 , 该值没有任何参考价值 ;
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读总结
以上是生活随笔为你收集整理的【运筹学】线性规划数学模型 ( 单纯形法 | 第二次迭代 | 方程组同解变换 | 生成新单纯形表 | 计算检验数 | 最优解判定 | 线性规划解个数分析 )的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【运筹学】线性规划数学模型 ( 单纯形法
- 下一篇: 【运筹学】线性规划 单纯形法 阶段总结