线性规划的大M法求解示例
字数 2896 2025-10-25 22:15:07

线性规划的大M法求解示例

题目描述
考虑以下线性规划问题:
最小化 \(z = -3x_1 + x_2 + x_3\)
满足约束:

  1. \(x_1 - 2x_2 + x_3 \leq 11\)
  2. \(-4x_1 + x_2 + 2x_3 \geq 3\)
  3. \(-2x_1 + x_3 = 1\)
  4. \(x_1, x_2, x_3 \geq 0\)

目标:使用大M法求解该问题,找到最优解和最小值。


解题过程

步骤1:将问题转化为标准型
线性规划的标准型要求:

  • 目标函数为最小化(本题已满足)。
  • 所有约束为等式,且右端常数非负(需调整)。
  • 所有变量非负(本题已满足)。

处理约束:

  1. 约束1是“≤”,添加松弛变量 \(s_1\)\(s_1 \geq 0\)):
    \(x_1 - 2x_2 + x_3 + s_1 = 11\)
  2. 约束2是“≥”,减去剩余变量 \(s_2\)\(s_2 \geq 0\)),但需处理右端常数:
    原约束 \(-4x_1 + x_2 + 2x_3 \geq 3\) 的常数为正,直接减 \(s_2\)
    \(-4x_1 + x_2 + 2x_3 - s_2 = 3\)
  3. 约束3是等式“=”,直接保留:
    \(-2x_1 + x_3 = 1\)

此时所有约束为等式,但约束2的右端常数3已非负,无需调整。

步骤2:引入人工变量
由于约束2有“≥”和约束3是“=”,需引入人工变量 \(a_1, a_2\)\(a_1, a_2 \geq 0\))构造初始可行基:

  • 约束2变为:\(-4x_1 + x_2 + 2x_3 - s_2 + a_1 = 3\)
  • 约束3变为:\(-2x_1 + x_3 + a_2 = 1\)

目标函数中加入惩罚项 \(M(a_1 + a_2)\)(M为极大正数),使人工变量尽快离基:
新目标函数:\(z = -3x_1 + x_2 + x_3 + M a_1 + M a_2\)

步骤3:构建初始单纯形表
变量顺序:\(x_1, x_2, x_3, s_1, s_2, a_1, a_2\)
约束组:

  1. \(x_1 - 2x_2 + x_3 + s_1 = 11\)
  2. \(-4x_1 + x_2 + 2x_3 - s_2 + a_1 = 3\)
  3. \(-2x_1 + x_3 + a_2 = 1\)

目标函数改写为:
\(z + 3x_1 - x_2 - x_3 - M a_1 - M a_2 = 0\)
用非基变量表示基变量 \(a_1, a_2\) 并代入目标函数:

  • 从约束2和3解出 \(a_1 = 3 + 4x_1 - x_2 - 2x_3 + s_2\)\(a_2 = 1 + 2x_1 - x_3\)
    代入目标函数:
    \(z + 3x_1 - x_2 - x_3 - M(3 + 4x_1 - x_2 - 2x_3 + s_2) - M(1 + 2x_1 - x_3) = 0\)
    整理常数项和系数:
    \(z + (3 - 6M)x_1 + (-1 + M)x_2 + (-1 + 3M)x_3 - M s_2 = 4M\)

初始单纯形表(基变量为 \(s_1, a_1, a_2\)):

基变量 右端 \(x_1\) \(x_2\) \(x_3\) \(s_1\) \(s_2\) \(a_1\) \(a_2\)
\(s_1\) 11 1 -2 1 1 0 0 0
\(a_1\) 3 -4 1 2 0 -1 1 0
\(a_2\) 1 -2 0 1 0 0 0 1
\(z\) 4M 3-6M -1+M -1+3M 0 -M 0 0

步骤4:迭代求解

  • 第1次迭代
    检验数中 \(3-6M\) 最负(因M极大),选 \(x_1\) 入基。
    计算比率(右端/\(x_1\)列正系数):
    \(s_1\) 行:11/1 = 11;\(a_1\) 行(系数-4,忽略);\(a_2\) 行(系数-2,忽略)。
    最小正比率为11,选 \(s_1\) 出基。
    主元化:将 \(x_1\) 列化为单位向量(主元行1除以1,其他行消元)。
    新表基变量为 \(x_1, a_1, a_2\)

  • 第2次迭代
    更新后检验数中 \(x_3\) 的系数最负,选 \(x_3\) 入基。
    比率检验:
    \(x_1\) 行:11/1 = 11;
    \(a_1\) 行:47/6 ≈ 7.83(需具体计算);
    \(a_2\) 行:23/3 ≈ 7.67(最小正比率)。
    \(a_2\) 出基,主元化后人工变量 \(a_2\) 离基。

  • 第3次迭代
    检验数中仅 \(s_2\) 的系数为负(-M/3 + 某值),选 \(s_2\) 入基。
    比率检验后选 \(a_1\) 出基,主元化后所有人工变量离基。

  • 第4次迭代
    检验数均非负,达到最优。
    最终基变量:\(x_1 = 4, x_2 = 1, x_3 = 9\);非基变量 \(s_1 = s_2 = 0\)
    目标函数值:\(z = -3(4) + 1 + 9 = -2\)

最优解\(x_1 = 4, x_2 = 1, x_3 = 9\),最小值 \(z = -2\)

总结:大M法通过引入人工变量和惩罚项处理无显式可行基的问题,最终解中人工变量均为0,说明原问题有可行解。

线性规划的大M法求解示例 题目描述 考虑以下线性规划问题: 最小化 \( z = -3x_ 1 + x_ 2 + x_ 3 \) 满足约束: \( x_ 1 - 2x_ 2 + x_ 3 \leq 11 \) \( -4x_ 1 + x_ 2 + 2x_ 3 \geq 3 \) \( -2x_ 1 + x_ 3 = 1 \) \( x_ 1, x_ 2, x_ 3 \geq 0 \) 目标 :使用大M法求解该问题,找到最优解和最小值。 解题过程 步骤1:将问题转化为标准型 线性规划的标准型要求: 目标函数为最小化(本题已满足)。 所有约束为等式,且右端常数非负(需调整)。 所有变量非负(本题已满足)。 处理约束: 约束1是“≤”,添加松弛变量 \( s_ 1 \)(\( s_ 1 \geq 0 \)): \( x_ 1 - 2x_ 2 + x_ 3 + s_ 1 = 11 \)。 约束2是“≥”,减去剩余变量 \( s_ 2 \)(\( s_ 2 \geq 0 \)),但需处理右端常数: 原约束 \( -4x_ 1 + x_ 2 + 2x_ 3 \geq 3 \) 的常数为正,直接减 \( s_ 2 \): \( -4x_ 1 + x_ 2 + 2x_ 3 - s_ 2 = 3 \)。 约束3是等式“=”,直接保留: \( -2x_ 1 + x_ 3 = 1 \)。 此时所有约束为等式,但约束2的右端常数3已非负,无需调整。 步骤2:引入人工变量 由于约束2有“≥”和约束3是“=”,需引入人工变量 \( a_ 1, a_ 2 \)(\( a_ 1, a_ 2 \geq 0 \))构造初始可行基: 约束2变为:\( -4x_ 1 + x_ 2 + 2x_ 3 - s_ 2 + a_ 1 = 3 \)。 约束3变为:\( -2x_ 1 + x_ 3 + a_ 2 = 1 \)。 目标函数中加入惩罚项 \( M(a_ 1 + a_ 2) \)(M为极大正数),使人工变量尽快离基: 新目标函数:\( z = -3x_ 1 + x_ 2 + x_ 3 + M a_ 1 + M a_ 2 \)。 步骤3:构建初始单纯形表 变量顺序:\( x_ 1, x_ 2, x_ 3, s_ 1, s_ 2, a_ 1, a_ 2 \)。 约束组: \( x_ 1 - 2x_ 2 + x_ 3 + s_ 1 = 11 \) \( -4x_ 1 + x_ 2 + 2x_ 3 - s_ 2 + a_ 1 = 3 \) \( -2x_ 1 + x_ 3 + a_ 2 = 1 \) 目标函数改写为: \( z + 3x_ 1 - x_ 2 - x_ 3 - M a_ 1 - M a_ 2 = 0 \)。 用非基变量表示基变量 \( a_ 1, a_ 2 \) 并代入目标函数: 从约束2和3解出 \( a_ 1 = 3 + 4x_ 1 - x_ 2 - 2x_ 3 + s_ 2 \),\( a_ 2 = 1 + 2x_ 1 - x_ 3 \)。 代入目标函数: \( z + 3x_ 1 - x_ 2 - x_ 3 - M(3 + 4x_ 1 - x_ 2 - 2x_ 3 + s_ 2) - M(1 + 2x_ 1 - x_ 3) = 0 \) 整理常数项和系数: \( z + (3 - 6M)x_ 1 + (-1 + M)x_ 2 + (-1 + 3M)x_ 3 - M s_ 2 = 4M \)。 初始单纯形表(基变量为 \( s_ 1, a_ 1, a_ 2 \)): | 基变量 | 右端 | \( x_ 1 \) | \( x_ 2 \) | \( x_ 3 \) | \( s_ 1 \) | \( s_ 2 \) | \( a_ 1 \) | \( a_ 2 \) | |--------|------|-----------|-----------|-----------|-----------|-----------|-----------|-----------| | \( s_ 1 \) | 11 | 1 | -2 | 1 | 1 | 0 | 0 | 0 | | \( a_ 1 \) | 3 | -4 | 1 | 2 | 0 | -1 | 1 | 0 | | \( a_ 2 \) | 1 | -2 | 0 | 1 | 0 | 0 | 0 | 1 | | \( z \) | 4M | 3-6M | -1+M | -1+3M | 0 | -M | 0 | 0 | 步骤4:迭代求解 第1次迭代 : 检验数中 \( 3-6M \) 最负(因M极大),选 \( x_ 1 \) 入基。 计算比率(右端/\( x_ 1 \)列正系数): \( s_ 1 \) 行:11/1 = 11;\( a_ 1 \) 行(系数-4,忽略);\( a_ 2 \) 行(系数-2,忽略)。 最小正比率为11,选 \( s_ 1 \) 出基。 主元化:将 \( x_ 1 \) 列化为单位向量(主元行1除以1,其他行消元)。 新表基变量为 \( x_ 1, a_ 1, a_ 2 \)。 第2次迭代 : 更新后检验数中 \( x_ 3 \) 的系数最负,选 \( x_ 3 \) 入基。 比率检验: \( x_ 1 \) 行:11/1 = 11; \( a_ 1 \) 行:47/6 ≈ 7.83(需具体计算); \( a_ 2 \) 行:23/3 ≈ 7.67(最小正比率)。 选 \( a_ 2 \) 出基,主元化后人工变量 \( a_ 2 \) 离基。 第3次迭代 : 检验数中仅 \( s_ 2 \) 的系数为负(-M/3 + 某值),选 \( s_ 2 \) 入基。 比率检验后选 \( a_ 1 \) 出基,主元化后所有人工变量离基。 第4次迭代 : 检验数均非负,达到最优。 最终基变量:\( x_ 1 = 4, x_ 2 = 1, x_ 3 = 9 \);非基变量 \( s_ 1 = s_ 2 = 0 \)。 目标函数值:\( z = -3(4) + 1 + 9 = -2 \)。 最优解 :\( x_ 1 = 4, x_ 2 = 1, x_ 3 = 9 \),最小值 \( z = -2 \)。 总结 :大M法通过引入人工变量和惩罚项处理无显式可行基的问题,最终解中人工变量均为0,说明原问题有可行解。