单纯形法之两阶段法
1. 问题描述与标准化
考虑标准形式的线性规划问题
其中 的元素可能有正有负。
为方便起见,通常将约束全部变为等式并且右端向量 b≥0(若不满足,可通过乘以 −1 调整),然后对不容易构造初始基本可行解的约束引入人工变量。
2. 构造人工变量及辅助问题
2.1 引入人工变量
对那些无法直接从原问题中获得初始可行解的约束,引入人工变量。设原问题经过适当变换后变为
若某些行约束中不存在明显的基本变量,则在相应位置引入人工变量 a≥0(假设共有 p 个这样的约束)。记人工变量构成向量 a ,则系统变为
2.2 辅助问题的构造
为消除人工变量,构造辅助目标函数,将所有人工变量的和作为新的目标函数(最小化形式):
辅助问题写为
若辅助问题的最优值 ,则说明存在一个满足原约束 Ax=b 且 x≥0 的解,此时去除人工变量得到原问题的初始可行解;若
,则原问题无可行解。
3. 两阶段法的具体推导与求解过程
阶段一:求解辅助问题
3.1 构造初始基
通常将所有人工变量 a 作为初始基变量,令原变量 x 均为零。此时基本解为
辅助目标函数值为
3.2 应用单纯形法求解辅助问题
利用单纯形法迭代,调整基变量组合,使辅助目标函数 W 得到最小化。在迭代过程中,我们进行以下两点操作:
-
进基变量的选择:根据辅助目标函数的相对成本,选择能降低 W 的变量进入基中。注意此时目标函数的系数来自于辅助问题的目标,即对人工变量系数均为 1,对原变量系数为 0。
-
出基变量的选择:利用最小比值法确定在保持可行性的前提下的最大步长,从而选择合适的基变量离开基。
当辅助问题经过若干次迭代后,若达到 且所有人工变量均为零,则成功获得一个原问题的基本可行解;否则若
,说明原问题无可行解。
阶段二:求解原问题
3.3 去除人工变量
在第一阶段结束后,若辅助问题的最优解满足 a=0 ,则将辅助问题中所构造的人工变量从约束中去除。注意:
-
有时可能存在基中仍含有人工变量(但其值为 0),此时需要通过适当的换基操作,将人工变量剔除出基,从而获得纯原变量构成的初始基。
3.4 构造原问题的单纯形表
利用第一阶段获得的基本可行解作为原问题的初始解,对原问题目标函数
重新构造单纯形表,调整目标函数系数,并利用单纯形法继续迭代求解,直至满足最优性条件。
4. 两阶段法推导总结
4.1 两阶段法的核心思想
-
阶段一:构造并求解辅助问题,消除人工变量,从而获得原问题的初始基本可行解。
-
通过构造目标函数
,使得只要存在满足原约束的解,辅助问题的最优值必为 0。
-
-
阶段二:利用第一阶段的解构造原问题的单纯形表,开始求解原问题。
-
在这一阶段,人工变量被剔除,目标函数变回原始目标
,然后继续利用单纯形法的换基操作寻找最优解。
-
4.2 数学依据
-
有限性:基本可行解的个数有限,因此辅助问题和原问题均在有限步内结束(在非循环规则下)。
-
保持可行性:在每一步迭代中,通过最小比值法确保解始终满足非负性条件。
-
目标函数改进:在单纯形迭代过程中,每一次换基(在非退化情况下)都会使目标函数改善,从而最终达到最优解。
总结
两阶段单纯形法的计算过程可概括为:
-
问题标准化:将原问题转为等式约束形式,并引入人工变量构造辅助问题。
-
阶段一:以人工变量为基本变量,构造辅助目标函数
,利用单纯形法求解辅助问题,判断原问题是否可行。
-
阶段二:在辅助问题最优解
的前提下,剔除人工变量,利用第一阶段得到的基本可行解作为原问题的初始解,重新构造原问题单纯形表并继续迭代求解原问题最优解。