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





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

当前初始单纯形表 :

c j c_j cj c j c_j cj 3 3 3 2 2 2 − 1 -1 1 0 0 0 0 0 0 − M -M M − M -M M
C B C_B CB 基变量系数 (目标函数) X B X_B XB 基变量 常数 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 x 6 x_6 x6 x 7 x_7 x7 θ i \theta_i θi
− M -M M ( 目标函数 x 6 x_6 x6 系数 c 6 c_6 c6 ) x 6 x_6 x6 4 4 4 − 4 -4 4 3 3 3 1 1 1 − 1 -1 1 0 0 0 1 1 1 0 0 0 4 4 4 ( θ 6 \theta_6 θ6)
0 0 0 ( 目标函数 x 5 x_5 x5 系数 c 5 c_5 c5) x 5 x_5 x5 10 10 10 1 1 1 − 1 -1 1 2 2 2 0 0 0 1 1 1 0 0 0 0 0 0 5 5 5 ( θ 5 \theta_5 θ5 )
− M -M M ( 目标函数 x 7 x_7 x7 系数 c 7 c_7 c7) x 7 x_7 x7 1 1 1 2 2 2 − 2 -2 2 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 ( θ 7 \theta_7 θ7 )
σ j \sigma_j σj ( 检验数 ) 3 − 2 M 3-2M 32M ( σ 1 \sigma_1 σ1 ) 2 + M 2+M 2+M ( σ 2 \sigma_2 σ2 ) − 1 + 2 M -1 + 2M 1+2M ( σ 3 \sigma_3 σ3 ) − M -M M ( σ 4 \sigma_4 σ4 ) 0 0 0 0 0 0 0 0 0

中心元 : 入基变量为 x 3 x_3 x3 , 出基变量为 x 7 x_7 x7 , 在单纯形表中 , 入基变量与出基变量相交的位置 , 称为中心元 ;

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


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

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

当前约束方程组为 :

s . t { − 4 x 1 + 3 x 2 + x 3 − x 4 + 0 x 5 + x 6 + 0 x 7 = 4 x 1 − x 2 + 2 x 3 + 0 x 4 + x 5 + 0 x 6 + 0 x 7 = 10 2 x 1 − 2 x 2 + x 3 + 0 x 4 + 0 x 5 + 0 x 6 + x 7 = 1 x j ≥ 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)


方程 3 3 3 变换 : 2 x 1 − 2 x 2 + x 3 + 0 x 4 + 0 x 5 + 0 x 6 + x 7 = 1 2x_1 - 2x_2 + x_3 + 0x_4 + 0x_5 + 0x_6 + x_7 = 1 2x12x2+x3+0x4+0x5+0x6+x7=1 中 , x 3 x_3 x3 的系数是中心元 , 其系数需要变换成 1 1 1 , 其本身就是 1 1 1 , 方程 3 3 3 等式不用进行变换 ;


方程 2 2 2 变换 : x 1 − x 2 + 2 x 3 + 0 x 4 + x 5 + 0 x 6 + 0 x 7 = 10 x_1 - x_2 + 2x_3 + 0x_4 + x_5 + 0x_6 + 0x_7 = 10 x1x2+2x3+0x4+x5+0x6+0x7=10 等式中 x 3 x_3 x3 的系数变为 0 0 0 , 将 方程 3 3 3 左右两端乘以 − 2 -2 2 , 与方程 2 2 2 相加 ;

( 2 x 1 − 2 x 2 + x 3 + 0 x 4 + 0 x 5 + 0 x 6 + x 7 ) × − 2 + ( x 1 − x 2 + 2 x 3 + 0 x 4 + x 5 + 0 x 6 + 0 x 7 ) = − 2 + 10 − 3 x 1 + 3 x 2 + 0 x 3 + 0 x 4 + x 5 + 0 x 6 − 2 x 7 = 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


方程 1 1 1 变换 : − 4 x 1 + 3 x 2 + x 3 − x 4 + 0 x 5 + x 6 + 0 x 7 = 4 -4 x_1 + 3x_2 + x_3 - x_4 + 0x_5 + x_6 + 0x_7 = 4 4x1+3x2+x3x4+0x5+x6+0x7=4 等式中 x 3 x_3 x3 的系数变为 0 0 0 , 将 方程 3 3 3 左右两端乘以 − 1 -1 1 , 与方程 1 1 1 相加 ;

( 2 x 1 − 2 x 2 + x 3 + 0 x 4 + 0 x 5 + 0 x 6 + x 7 ) × − 1 + ( − 4 x 1 + 3 x 2 + x 3 − x 4 + 0 x 5 + x 6 + 0 x 7 ) = − 1 + 4 − 6 x 1 + 5 x 2 + 0 x 3 − x 4 + 0 x 5 + x 6 − x 7 = 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 { − 6 x 1 + 5 x 2 + 0 x 3 − x 4 + 0 x 5 + x 6 − x 7 = 3 − 3 x 1 + 3 x 2 + 0 x 3 + 0 x 4 + x 5 + 0 x 6 − 2 x 7 = 8 2 x 1 − 2 x 2 + x 3 + 0 x 4 + 0 x 5 + 0 x 6 + x 7 = 1 s.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





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

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

c j c_j cj c j c_j cj 3 3 3 2 2 2 − 1 -1 1 0 0 0 0 0 0 − M -M M − M -M M
C B C_B CB 基变量系数 (目标函数) X B X_B XB 基变量 常数 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 x 6 x_6 x6 x 7 x_7 x7 θ i \theta_i θi
− M -M M ( 目标函数 x 6 x_6 x6 系数 c 6 c_6 c6 ) x 6 x_6 x6 4 4 4 − 4 -4 4 3 3 3 1 1 1 − 1 -1 1 0 0 0 1 1 1 0 0 0 4 4 4 ( θ 6 \theta_6 θ6)
0 0 0 ( 目标函数 x 5 x_5 x5 系数 c 5 c_5 c5) x 5 x_5 x5 10 10 10 1 1 1 − 1 -1 1 2 2 2 0 0 0 1 1 1 0 0 0 0 0 0 5 5 5 ( θ 5 \theta_5 θ5 )
− M -M M ( 目标函数 x 7 x_7 x7 系数 c 7 c_7 c7) x 7 x_7 x7 1 1 1 2 2 2 − 2 -2 2 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 ( θ 7 \theta_7 θ7 )
σ j \sigma_j σj ( 检验数 ) 3 − 2 M 3-2M 32M ( σ 1 \sigma_1 σ1 ) 2 + M 2+M 2+M ( σ 2 \sigma_2 σ2 ) − 1 + 2 M -1 + 2M 1+2M ( σ 4 \sigma_4 σ4 ) − M -M M ( σ 3 \sigma_3 σ3 ) 0 0 0 0 0 0 0 0 0
第二次迭代
− M -M M ( 目标函数 x 6 x_6 x6 系数 c 6 c_6 c6 ) x 6 x_6 x6 3 3 3 − 6 -6 6 5 5 5 0 0 0 − 1 -1 1 0 0 0 1 1 1 移除 ? ? ? ( θ 6 \theta_6 θ6)
0 0 0 ( 目标函数 x 5 x_5 x5 系数 c 5 c_5 c5) x 5 x_5 x5 8 8 8 − 3 -3 3 3 3 3 0 0 0 0 0 0 1 1 1 0 0 0 移除 ? ? ? ( θ 5 \theta_5 θ5 )
− 1 -1 1 ( 目标函数 x 3 x_3 x3 系数 c 3 c_3 c3) x 3 x_3 x3 1 1 1 2 2 2 − 2 -2 2 1 1 1 0 0 0 0 0 0 0 0 0 移除 ? ? ? ( θ 3 \theta_3 θ3 )
σ j \sigma_j σj ( 检验数 ) ? ? ? ( σ 1 \sigma_1 σ1 ) ? ? ? ( σ 2 \sigma_2 σ2 ) 0 0 0 ? ? ? ( σ 4 \sigma_4 σ4 ) 0 0 0 0 0 0 移除




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

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


σ 1 = 3 − ( − M 0 − 1 ) × ( − 6 − 3 2 ) = 3 − ( − M × − 6 + 0 × − 3 + − 1 × 2 ) = 5 − 6 M \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

其中 M M M 是正无穷 + ∞ +\infin + , 5 − 6 M 5 - 6M 56M 是负数 ;

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



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


σ 2 = 2 − ( − M 0 − 1 ) × ( 5 3 − 2 ) = 2 − ( − M × 5 + 0 × 3 + − 1 × − 2 ) = 5 M \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

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

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



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


σ 4 = 0 − ( − M 0 − 1 ) × ( − 1 0 0 ) = 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

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

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





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

根据上述三个检验数 { σ 1 = 5 − 6 M ( 负 数 ) σ 2 = 5 M ( 正 数 ) σ 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 检验数大于 0 0 0 , 该基可行解不是最优解 ;

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





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

根据上述三个检验数 { σ 1 = 5 − 6 M ( 负 数 ) σ 2 = 5 M ( 正 数 ) σ 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 = 5 M \sigma_2= 5M σ2=5M 最大 , 这里选择 x 2 x_2 x2 作为入基变量 ;





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

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

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





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

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

c j c_j cj c j c_j cj 3 3 3 2 2 2 − 1 -1 1 0 0 0 0 0 0 − M -M M − M -M M
C B C_B CB 基变量系数 (目标函数) X B X_B XB 基变量 常数 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 x 6 x_6 x6 x 7 x_7 x7 θ i \theta_i θi
− M -M M ( 目标函数 x 6 x_6 x6 系数 c 6 c_6 c6 ) x 6 x_6 x6 4 4 4 − 4 -4 4 3 3 3 1 1 1 − 1 -1 1 0 0 0 1 1 1 0 0 0 4 4 4 ( θ 6 \theta_6 θ6)
0 0 0 ( 目标函数 x 5 x_5 x5 系数 c 5 c_5 c5) x 5 x_5 x5 10 10 10 1 1 1 − 1 -1 1 2 2 2 0 0 0 1 1 1 0 0 0 0 0 0 5 5 5 ( θ 5 \theta_5 θ5 )
− M -M M ( 目标函数 x 7 x_7 x7 系数 c 7 c_7 c7) x 7 x_7 x7 1 1 1 2 2 2 − 2 -2 2 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 ( θ 7 \theta_7 θ7 )
σ j \sigma_j σj ( 检验数 ) 3 − 2 M 3-2M 32M ( σ 1 \sigma_1 σ1) 2 + M 2+M 2+M ( σ 2 \sigma_2 σ2) − 1 + 2 M -1 + 2M 1+2M ( σ 4 \sigma_4 σ4) − M -M M ( σ 3 \sigma_3 σ3) 0 0 0 0 0 0 0 0 0
第二次迭代
− M -M M ( 目标函数 x 6 x_6 x6 系数 c 6 c_6 c6 ) x 6 x_6 x6 3 3 3 − 6 -6 6 5 5 5 0 0 0 − 1 -1 1 0 0 0 1 1 1 移除 3 5 \dfrac{3}{5} 53 ( θ 6 \theta_6 θ6)
0 0 0 ( 目标函数 x 5 x_5 x5 系数 c 5 c_5 c5) x 5 x_5 x5 8 8 8 − 3 -3 3 3 3 3 0 0 0 0 0 0 1 1 1 0 0 0 移除 8 3 \dfrac{8}{3} 38 ( θ 5 \theta_5 θ5 )
− 1 -1 1 ( 目标函数 x 3 x_3 x3 系数 c 3 c_3 c3) x 3 x_3 x3 1 1 1 2 2 2 − 2 -2 2 1 1 1 0 0 0 0 0 0 0 0 0 移除 − - ( θ 3 \theta_3 θ3 )
σ j \sigma_j σj ( 检验数 ) 5 − 6 M 5-6M 56M ( σ 1 \sigma_1 σ1) 5 M 5M 5M ( σ 2 \sigma_2 σ2) 0 0 0 − M -M M ( σ 4 \sigma_4 σ4) 0 0 0 0 0 0 移除