线性规划的大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,说明原问题有可行解。