欢迎访问 生活随笔!

生活随笔

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

编程问答

【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 第一次迭代 | 中心元变换 | 检验数计算 | 选择入基变量 | 选择出基变量 )

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

文章目录

  • 一、第一次迭代 : 中心元变换
  • 二、第一次迭代 : 单纯形表
  • 三、第一次迭代 : 计算检验数
  • 四、第一次迭代 : 最优解判定
  • 五、第一次迭代 : 选择入基变量
  • 六、第一次迭代 : 选择出基变量
  • 七、第一次迭代 : 更新单纯形表



上一篇博客 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 初始单纯形表 | 检验数计算 | 入基变量 | 出基变量 ) 中 , 使用了人工变量法解没有单位阵的线性规划问题 , 通过添加人工变量 , 构造了单位阵 , 生成初始单纯形表 , 计算该单纯形表检验数 , 进行最优解判定 , 该初始基可行解不是最优解 , 先选择入基变量 , 然后根据入基变量选择出基变量 ; 本篇博客中开始进行第一次迭代计算 ;





一、第一次迭代 : 中心元变换



当前初始单纯形表 :

cjc_jcjcjc_jcj333222−1-11000000−M-MM−M-MM
CBC_BCB 基变量系数 (目标函数)XBX_BXB 基变量常数 bbbx1x_1x1x2x_2x2x3x_3x3x4x_4x4x5x_5x5x6x_6x6x7x_7x7θi\theta_iθi
−M-MM ( 目标函数 x6x_6x6 系数 c6c_6c6 )x6x_6x6444−4-44333111−1-11000111000444 (θ6\theta_6θ6)
000 ( 目标函数 x5x_5x5 系数 c5c_5c5)x5x_5x5101010111−1-11222000111000000555 ( θ5\theta_5θ5 )
−M-MM ( 目标函数 x7x_7x7 系数 c7c_7c7)x7x_7x7111222−2-22111000000000111111 ( θ7\theta_7θ7 )
σj\sigma_jσj ( 检验数 )3−2M3-2M32M ( σ1\sigma_1σ1 )2+M2+M2+M ( σ2\sigma_2σ2 )−1+2M-1 + 2M1+2M ( σ3\sigma_3σ3 )−M-MM ( σ4\sigma_4σ4 )000000000

中心元 : 入基变量为 x3x_3x3 , 出基变量为 x7x_7x7 , 在单纯形表中 , 入基变量与出基变量相交的位置 , 称为中心元 ;


中心元变换 : 以中心元为轴 , 作系数矩阵变换 ;

  • 中心元位置变换成 111 ;
  • 中心元对应入基变量所在列其它位置变换为 000 ;

当前约束方程组为 :

s.t{−4x1+3x2+x3−x4+0x5+x6+0x7=4x1−x2+2x3+0x4+x5+0x6+0x7=102x1−2x2+x3+0x4+0x5+0x6+x7=1xj≥0(j=1,2,3,4,5,6,7)s.t\begin{cases} -4 x_1 + 3x_2 + x_3 - x_4 + 0x_5 + x_6 + 0x_7 = 4 \\\\ x_1 - x_2 + 2x_3 + 0x_4 + x_5 + 0x_6 + 0x_7 = 10 \\\\ 2x_1 - 2x_2 + x_3 + 0x_4 + 0x_5 + 0x_6 + x_7 = 1 \\\\ x_j \geq 0 \quad (j = 1 , 2 , 3, 4, 5 , 6 , 7 ) \end{cases}s.t4x1+3x2+x3x4+0x5+x6+0x7=4x1x2+2x3+0x4+x5+0x6+0x7=102x12x2+x3+0x4+0x5+0x6+x7=1xj0(j=1,2,3,4,5,6,7)


方程 333 变换 : 2x1−2x2+x3+0x4+0x5+0x6+x7=12x_1 - 2x_2 + x_3 + 0x_4 + 0x_5 + 0x_6 + x_7 = 12x12x2+x3+0x4+0x5+0x6+x7=1 中 , x3x_3x3 的系数是中心元 , 其系数需要变换成 111 , 其本身就是 111 , 方程 333 等式不用进行变换 ;


方程 222 变换 :x1−x2+2x3+0x4+x5+0x6+0x7=10x_1 - x_2 + 2x_3 + 0x_4 + x_5 + 0x_6 + 0x_7 = 10x1x2+2x3+0x4+x5+0x6+0x7=10 等式中 x3x_3x3 的系数变为 000 , 将 方程 333 左右两端乘以 −2-22 , 与方程 222 相加 ;

(2x1−2x2+x3+0x4+0x5+0x6+x7)×−2+(x1−x2+2x3+0x4+x5+0x6+0x7)=−2+10−3x1+3x2+0x3+0x4+x5+0x6−2x7=8\begin{array}{lcl} ( 2x_1 - 2x_2 + x_3 + 0x_4 + 0x_5 + 0x_6 + x_7 ) \times -2 + (x_1 - x_2 + 2x_3 + 0x_4 + x_5 + 0x_6 + 0x_7) = -2 + 10 \\\\ -3x_1 + 3x_2 + 0x_3 + 0x_4 + x_5 + 0x_6 - 2 x_7 = 8 \end{array}(2x12x2+x3+0x4+0x5+0x6+x7)×2+(x1x2+2x3+0x4+x5+0x6+0x7)=2+103x1+3x2+0x3+0x4+x5+0x62x7=8


方程 111 变换 :−4x1+3x2+x3−x4+0x5+x6+0x7=4-4 x_1 + 3x_2 + x_3 - x_4 + 0x_5 + x_6 + 0x_7 = 44x1+3x2+x3x4+0x5+x6+0x7=4 等式中 x3x_3x3 的系数变为 000 , 将 方程 333 左右两端乘以 −1-11 , 与方程 111 相加 ;

(2x1−2x2+x3+0x4+0x5+0x6+x7)×−1+(−4x1+3x2+x3−x4+0x5+x6+0x7)=−1+4−6x1+5x2+0x3−x4+0x5+x6−x7=3\begin{array}{lcl} ( 2x_1 - 2x_2 + x_3 + 0x_4 + 0x_5 + 0x_6 + x_7 ) \times -1 + (-4 x_1 + 3x_2 + x_3 - x_4 + 0x_5 + x_6 + 0x_7) = -1 + 4 \\\\ -6x_1 + 5x_2 + 0x_3 -x_4 + 0x_5 + x_6 - x_7 =3 \end{array}(2x12x2+x3+0x4+0x5+0x6+x7)×1+(4x1+3x2+x3x4+0x5+x6+0x7)=1+46x1+5x2+0x3x4+0x5+x6x7=3


最终方程组为 :

s.t{−6x1+5x2+0x3−x4+0x5+x6−x7=3−3x1+3x2+0x3+0x4+x5+0x6−2x7=82x1−2x2+x3+0x4+0x5+0x6+x7=1s.t\begin{cases} -6x_1 + 5x_2 + 0x_3 -x_4 + 0x_5 + x_6 - x_7 =3 \\\\ -3x_1 + 3x_2 + 0x_3 + 0x_4 + x_5 + 0x_6 - 2 x_7 = 8 \\\\ 2x_1 - 2x_2 + x_3 + 0x_4 + 0x_5 + 0x_6 + x_7 = 1 \end{cases}s.t6x1+5x2+0x3x4+0x5+x6x7=33x1+3x2+0x3+0x4+x5+0x62x7=82x12x2+x3+0x4+0x5+0x6+x7=1





二、第一次迭代 : 单纯形表



x7x_7x7 是后添加的人工变量 , 其取值肯定是 000 , 这里的单纯性表中 , 可以将 x7x_7x7 彻底删除 , 不再使用 ;

cjc_jcjcjc_jcj333222−1-11000000−M-MM−M-MM
CBC_BCB 基变量系数 (目标函数)XBX_BXB 基变量常数 bbbx1x_1x1x2x_2x2x3x_3x3x4x_4x4x5x_5x5x6x_6x6x7x_7x7θi\theta_iθi
−M-MM ( 目标函数 x6x_6x6 系数 c6c_6c6 )x6x_6x6444−4-44333111−1-11000111000444 (θ6\theta_6θ6)
000 ( 目标函数 x5x_5x5 系数 c5c_5c5)x5x_5x5101010111−1-11222000111000000555 ( θ5\theta_5θ5 )
−M-MM ( 目标函数 x7x_7x7 系数 c7c_7c7)x7x_7x7111222−2-22111000000000111111 ( θ7\theta_7θ7 )
σj\sigma_jσj ( 检验数 )3−2M3-2M32M ( σ1\sigma_1σ1 )2+M2+M2+M ( σ2\sigma_2σ2 )−1+2M-1 + 2M1+2M ( σ4\sigma_4σ4 )−M-MM ( σ3\sigma_3σ3 )000000000
第二次迭代
−M-MM ( 目标函数 x6x_6x6 系数 c6c_6c6 )x6x_6x6333−6-66555000−1-11000111移除??? (θ6\theta_6θ6)
000 ( 目标函数 x5x_5x5 系数 c5c_5c5)x5x_5x5888−3-33333000000111000移除??? ( θ5\theta_5θ5 )
−1-11 ( 目标函数 x3x_3x3 系数 c3c_3c3)x3x_3x3111222−2-22111000000000移除??? ( θ3\theta_3θ3 )
σj\sigma_jσj ( 检验数 )??? ( σ1\sigma_1σ1 )??? ( σ2\sigma_2σ2 )000??? ( σ4\sigma_4σ4 )000000移除




三、第一次迭代 : 计算检验数



1 . 计算非基变量 x1x_1x1 的检验数 σ1\sigma_1σ1 :


σ1=3−(−M0−1)×(−6−32)=3−(−M×−6+0×−3+−1×2)=5−6M\sigma_1 = 3 - \begin{pmatrix} \quad -M \quad 0 \quad -1 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad -6 \quad \\\\ \quad -3 \quad \\\\ \quad 2 \quad \end{pmatrix} = 3- ( -M \times -6 + 0 \times -3 + -1 \times 2) =5 - 6Mσ1=3(M01)×632=3(M×6+0×3+1×2)=56M

其中 MMM 是正无穷 +∞+\infin+ , 5−6M5 - 6M56M 是负数 ;



2 . 计算非基变量 x2x_2x2 的检验数 σ2\sigma_2σ2 :


σ2=2−(−M0−1)×(53−2)=2−(−M×5+0×3+−1×−2)=5M\sigma_2 = 2 - \begin{pmatrix} \quad -M \quad 0 \quad -1 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad 5 \quad \\\\ \quad 3 \quad \\\\ \quad -2 \quad \end{pmatrix} = 2- ( -M \times 5 + 0 \times 3 + -1 \times -2) =5Mσ2=2(M01)×532=2(M×5+0×3+1×2)=5M

其中 MMM 是正无穷 +∞+\infin+ , 5M5M5M 是正数 ;



3 . 计算非基变量 x4x_4x4 的检验数 σ4\sigma_4σ4 :


σ4=0−(−M0−1)×(−100)=0−(−M×−1+0×0+−1×0)=−M\sigma_4 = 0 - \begin{pmatrix} \quad -M \quad 0 \quad -1 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad -1 \quad \\\\ \quad 0 \quad \\\\ \quad 0 \quad \end{pmatrix} = 0- ( -M \times -1 + 0 \times 0 + -1 \times 0 ) = -Mσ4=0(M01)×100=0(M×1+0×0+1×0)=M

其中 MMM 是正无穷 +∞+\infin+ , −M-MM 是负数 ;





四、第一次迭代 : 最优解判定



根据上述三个检验数 {σ1=5−6M(负数)σ2=5M(正数)σ4=−M(负数)\begin{cases} \sigma_1 = 5 - 6M \quad ( 负数 )\\\\ \sigma_2= 5M \quad ( 正数 )\\\\ \sigma_4 = -M \quad ( 负数 ) \end{cases}σ1=56M()σ2=5M()σ4=M() 的值 , 其中 σ2\sigma_2σ2 检验数大于 000 , 该基可行解不是最优解 ;

只有当检验数都小于等于 000 时 , 该基可行解才是最优解 ;





五、第一次迭代 : 选择入基变量



根据上述三个检验数 {σ1=5−6M(负数)σ2=5M(正数)σ4=−M(负数)\begin{cases} \sigma_1 = 5 - 6M \quad ( 负数 )\\\\ \sigma_2= 5M \quad ( 正数 )\\\\ \sigma_4 = -M \quad ( 负数 ) \end{cases}σ1=56M()σ2=5M()σ4=M() 的值 , 选择检验数最大的非基变量作为入基变量 , σ2=5M\sigma_2= 5Mσ2=5M 最大 , 这里选择 x2x_2x2 作为入基变量 ;





六、第一次迭代 : 选择出基变量



出基变量选择 : 常数列 b=(381)b =\begin{pmatrix} \quad 3 \quad \\ \quad 8 \quad \\ \quad 1 \quad \\ \end{pmatrix}b=381 , 分别除以除以入基变量 x2x_2x2 大于 000 的系数列 (53−2)\begin{pmatrix} \quad 5 \quad \\\\ \quad 3 \quad \\\\ \quad -2 \quad \end{pmatrix}532 , 计算过程如下 (3583系数不符合要求)\begin{pmatrix} \quad \cfrac{3}{5} \quad \\\\ \quad \cfrac{8}{3} \quad \\\\ \quad 系数不符合要求 \quad \end{pmatrix}5338 , 得出结果是 (3583−)\begin{pmatrix} \quad \cfrac{3}{5} \quad \\\\ \quad \cfrac{8}{3} \quad \\\\ \quad - \quad \end{pmatrix}5338 , 如果系数小于等于 000 , 该值就是无效值 , 默认为无穷大 , 不进行比较 , 选择 35\cfrac{3}{5}53 对应的基变量作为出基变量 , 查看该最小值对应的变量是 x6x_6x6 , 选择该 x6x_6x6 变量作为出基变量 ;





七、第一次迭代 : 更新单纯形表



x7x_7x7 是后添加的人工变量 , 其取值肯定是 000 , 这里的单纯性表中 , 可以将 x7x_7x7 彻底删除 , 不再使用 ;

cjc_jcjcjc_jcj333222−1-11000000−M-MM−M-MM
CBC_BCB 基变量系数 (目标函数)XBX_BXB 基变量常数 bbbx1x_1x1x2x_2x2x3x_3x3x4x_4x4x5x_5x5x6x_6x6x7x_7x7θi\theta_iθi
−M-MM ( 目标函数 x6x_6x6 系数 c6c_6c6 )x6x_6x6444−4-44333111−1-11000111000444 (θ6\theta_6θ6)
000 ( 目标函数 x5x_5x5 系数 c5c_5c5)x5x_5x5101010111−1-11222000111000000555 ( θ5\theta_5θ5 )
−M-MM ( 目标函数 x7x_7x7 系数 c7c_7c7)x7x_7x7111222−2-22111000000000111111 ( θ7\theta_7θ7 )
σj\sigma_jσj ( 检验数 )3−2M3-2M32M (σ1\sigma_1σ1)2+M2+M2+M (σ2\sigma_2σ2)−1+2M-1 + 2M1+2M (σ4\sigma_4σ4)−M-MM (σ3\sigma_3σ3)000000000
第二次迭代
−M-MM ( 目标函数 x6x_6x6 系数 c6c_6c6 )x6x_6x6333−6-66555000−1-11000111移除35\dfrac{3}{5}53 (θ6\theta_6θ6)
000 ( 目标函数 x5x_5x5 系数 c5c_5c5)x5x_5x5888−3-33333000000111000移除83\dfrac{8}{3}38 ( θ5\theta_5θ5 )
−1-11 ( 目标函数 x3x_3x3 系数 c3c_3c3)x3x_3x3111222−2-22111000000000移除−- ( θ3\theta_3θ3 )
σj\sigma_jσj ( 检验数 )5−6M5-6M56M (σ1\sigma_1σ1)5M5M5M (σ2\sigma_2σ2)000−M-MM (σ4\sigma_4σ4)000000移除

总结

以上是生活随笔为你收集整理的【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 第一次迭代 | 中心元变换 | 检验数计算 | 选择入基变量 | 选择出基变量 )的全部内容,希望文章能够帮你解决所遇到的问题。

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