对于标准线性规划问题
m
a
x
C
T
X
s
.
t
.
A
X
=
b
⃗
X
≥
0
max\ C^TX\\ s.t. AX=\vec{b}\\ X\geq0
max CTXs.t.AX=bX≥0
若已知最优可行基矩阵B,如果某些参数发生某些变化,如何利用已知数据求取最优解?
目标函数变化
可行性条件不变,原来的最优顶点的最优性可能丧失,即检验数可能不满足最优性。
直接在原来的单纯行表中进行初等行变化,使得基变量的检验数为0。如果仍然满足最优性,则最优顶点不变。否则,在此基础上继续迭代即可。
右端常数列 b ⃗ \vec{b} b变化
最优性条件仍然满足,检验数不变,但是可行域发生变化,可行性条件可能不满足。
此时用对偶单纯形法。
增加变量
基矩阵的维数不变(因为维数取决于约束条件的个数),仍然是
m
×
m
m\times m
m×m。
计算新变量的检验数,如果满足最优性,则新变量是非基变量,设为0即可。如果不满足最优性,则加入单纯形表继续迭代。
系数矩阵变化
1、 变化的列向量
P
r
P_r
Pr不在基矩阵中
此时,B不变,处理方法类似于新增加变量,即计算其检验数是否满足最优性条件。
2、变化的列向量
P
r
P_r
Pr在基矩阵中
此时B发生变化,要重新计算
B
−
1
B^-1
B−1。
如果满足原问题的可行行条件,用单纯形法。
如果满足原问题的最优性条件(即满足对偶问题的可行性条件),用对偶单纯形法。
如果两者都不满足,则要重新开始计算,引入新的人工变量,用两阶段法等重新计算。
增加约束条件
此时可行域变小,问题的关键在于判断原理的最优顶点是否还在新问题的可行域中。
如果当前最优解仍然满足新的约束条件,则最优解不变。
如果不满足,则要用两阶段法等重新计算。