上一篇
单纯形方法原理
c
B
B
−
1
P
j
−
c
j
c_BB^{-1}P_j - c_j
cBB−1Pj−cj为正的的话目标函数值
f
(
x
)
f(x)
f(x) 还可以再减小
⇒
\Rightarrow
⇒ 判别数
基变量的判别数等于0
P
i
为选择的基变量的系数
P_i 为选择的基变量的系数
Pi为选择的基变量的系数
为了方便起见,第一次找的基矩阵一般是单位矩阵
B
−
1
b
为解
B^{-1}b为解
B−1b为解
c
B
B
−
1
P
j
−
c
j
为检验数
c_BB^{-1}P_j - c_j为检验数
cBB−1Pj−cj为检验数
找最大的检验数
B
−
1
b
为最右端的数
B^{-1}b为最右端的数
B−1b为最右端的数
用最右端的数比对应入基变量对应列的系数(
b
i
y
i
k
\frac{b_i}{y_{ik}}
yikbi)找最小的一个,但是如果这一列上每一个数
y
i
k
y_{ik}
yik都是小于0的话那么原问题无界
如果右端有<0的则原问题无解
如果非基检验数有等于0的,则原问题有多个解
入基变量的那一列要变成基变量对应系数(初等行变换)
使用表格的单纯形方法
首先将标准形式中的系数定义相应的代数符号
(
1
)
→
(
2
)
(1)\rightarrow(2)
(1)→(2)是用B和N写成分块矩阵的形式
(
2
)
→
(
3
)
(2)\rightarrow(3)
(2)→(3)是将基本可行解带入,所有
x
x
x 表示成对应已知量的形式,非基变量
x
N
x_N
xN为0
(
3
)
→
(
4
)
(3)\rightarrow(4)
(3)→(4)是将目标函数化成约束条件的形式加入其中
将第
(
4
)
(4)
(4)个方程组写成表格的形式
当满足最优解的条件的时候,基变量的值就是右端的值,非基变量的值都是0,最优解的值就是右下角的那个数
x B x_B xB | x N x_N xN | 右端 | |
---|---|---|---|
x B x_B xB | I m I_m Im | B − 1 N B^{-1}N B−1N | B − 1 b B^{-1}b B−1b |
f | 0 | c B B − 1 N − c N c_BB^{-1}N\ -\ c_N cBB−1N − cN | c B B − 1 b c_BB^{-1}b cBB−1b |
例题:
- 最小值问题
2. 最大值问题
3. 不存在有限最优解情况(无界解)
例如这个可以图解法的无界解的情况
4. 无穷多解情况
两阶段法
当引入松弛变量之后,发现系数矩阵中无法找到单位矩阵,则可以通过引入人工变量构造系数矩阵
由于此时
x
a
x_a
xa为基变量,而其他变量为非基变量,有前面的性质可知非基变量为0,所以单位矩阵对应后面的b
→
\rightarrow
→ 基本可行解
例:
但是由于改变了系数矩阵,所以改变后的问题可能与原问题不同,
要保证与原问题相同需要引入的人工变量为非基变量
又因为人工变量也要满足 > = 0 >= 0 >=0的约束条件,要是非基变量,那么人工变量都为0, m i n x a min\ x_a min xa为0
所以第一个阶段就是求 m i n x a min\ x_a min xa
第一个阶段的目的就是取找一个基矩阵,同时可以判断是否存在最优解。
第二个阶段就是换回原来的目标函数
由于此时,人工变量为非基变量所以为0,可以从单纯形表中删去,剩下的系数,相当于原来系数做初等行变换的到的,所以约束条件是不变的。
其他情况:
- 添加的人工变量 ≠ 0 \not = 0 =0,则无可行解
- 人工变量 = 0 = 0 =0,且人工变量都是非基变量,则存在可行解(如上例题)
- 人工变量 = 0 = 0 =0,但是人工变量有些是基变量,此时需要设法将它从基变量中去掉
如果有主动选择人工变量为非基变量的意识的话就是一般流程
如果选择
x
4
x_4
x4为出基变量时,在第二步就已经到了最优解,但是此时,人工变量
x
5
,
x
6
x_5, x_6
x5,x6仍为基变量,这时,仍进行进击出击活动,直到将人工变量变为非基变量,此时不必考虑检验数,相当于已经验证了最优解的存在性,只需要进行初等行变换找出第二阶段的基矩阵即可。
当非人工变量无法取代人工基变量时:
这种情况说明那个方程是多余的,可以直接删去
大M法
大M法,是在找不到基矩阵的情况下,对目标函数加上M参数的人工变量,这个M是个无穷大的数
这个M相当于一个惩罚项,当人工变量不为0时,目标函数将无穷大,不符合
m
i
n
min
min的需求
(*)问题是加了M之后的
(L)问题是原来的问题
相比上一条,有些人工变量不为0,某些人工变量在基变量里上条解无界,这条无可行解
总结:人工变量不等于0就无可行解,其他情况与一般情况类似,最后人工变量不能为基变量
无可行解情况:
其他情况
退化情况:当确定出基变量时存在两个或以上的最小比值,这时会出现退化解。
又是退化解会造成计算过程循环,永远达不到最优解
出现循环的特点:
- 线性规划必然是退化的,即存在某个基变量取值为0
- 在迭代过程中,即使基变量是在发生改变的,但是整个解仍对应这同一个极点