simplex 简单形法
TRANSCRIPT
1
第二章 单纯形法 单纯形法的一般原理 表格单纯形法 借助人工变量求初始的基本可行解 单纯形表与线性规划问题的讨论 改进单纯形法
2
考虑到如下线性规划问题
其中A一个 m×n 矩阵,且秩为 m ,b总可以被调整为一个 m 维非负列向量,C为 n维行向量,X为 n维列向量。
根据线性规划基本定理: 如果可行域D ={ X∈R n / AX =b,X≥ 0}非空有界, 则D上的最优目标函数值Z = CX一定可以在D的一个顶点上达到
。 这个重要的定理启发了 Dantzig 的单纯形法, 即将寻优的目标集中在 D的各个顶点上。
maxZ=CX
AX=b
X 0
单纯形法的一般原理
3
Dantzig 的单纯形法把寻优的目标集中在所有基本可行解 (即可行域顶点)中。 其基本思路是从一个初始的基本可行解出发,寻找一条达到 最优基本可行解的最佳途径。 单纯形法的一般步骤如下: ( 1)寻找一个初始的基本可行解。 ( 2)检查现行的基本可行解是否最优,如果为最优, 则停止迭代,已找到最优解,否则转一步。 ( 3)移至目标函数值有所改善的另一个基本可行解, 然后转会到步骤( 2)。
4
确定初始的基本可行解
确定初始的基本可行解等价于确定初始的可行基,一旦初始的可行基确定了,那么对应的初始基本可行解也就唯一确定 为了讨论方便,不妨假设在标准型线性规划中,系数矩阵A中前 m个系数列向量恰好构成一个可行基,即 A =(BN),其中 B =(P 1 ,P 2 ,…P m )为基变量 x1 , x2 ,… xm 的系数列向
量 构成的可行基,
N =( P m+1 , Pm+2 , … Pn) 为非基变量 xm+1 , xm+2 , … xn 的
系数列向量构成的矩阵。
5
所以约束方程 就可以表示为
BB N
N
XAX=(BN) =BX +NX =b
X
用可行基B的逆阵B -1 左乘等式两端,再通过移项可推得:
若令所有非基变量 , 则基变量
由此可得初始的基本可行解1B b
X=0
AX=b
-1 -1B NX =B b-B NX
-1BX =B bNX =0
6
问题:要判断 m个系数列向量是否恰好构成一个基并不是一件容易的事。基由系数矩阵A中 m个线性无关的系数列向量构成。但是要判断 m个系数列向量是否线性无关并非易事。
即使系数矩阵A中找到了一个基 B ,也不能保证该基恰好是可行基。因为不能保证基变量X B= B -1b≥0。
为了求得基本可行解 ,必须求基B的逆阵B -1 。
但是求逆阵B -1 也是一件麻烦的事。
结论:在线性规划标准化过程中设法得到一个 m 阶单位矩阵 I 作为初始可行基B,
1B bX=
0
-1 -1 -1B N B N N BAX=b BX +NX =b X =B b-B NX X =0,X =B b
7
若在化标准形式前,约束方程中有“≥”不等式,那么在化标准形时除了在方程式左端减去剩余变量使不等式变成等式以外,还必须在左端再加上一个非负新变量,称为人工变量.
若在化标准形式前,约束方程中有等式方程,那么可以直接在等式左端添加人工变量。
为了设法得到一个 m阶单位矩阵 I作为初始可行基B,可在性规划标准化过程中作如下处理:
若在化标准形式前, m个约束方程都是“≤”的形式, 那么在化标准形时只需在一个约束不等式左端都加上一个松弛变 量 xn+i (i=12…m) 。
8
判断现行的基本可行解是否最优
假如已求得一个基本可行解
将这一基本可行解代入目标函数,可求得相应的目标函数值
其中 分别表示基变量和
非基变量所对应的价值系数子向量。
1B bX=
0
1-1
B N B
B bZ=CX=(C C ) =C B b
0
B 1 2 m N m+1 m+2 nC =(c ,c , c ), C =(c ,c , c )
9
要判定 是否已经达到最大值,只需将 代入目标函数,使目标函数用非基变量表示,即:
m+1
m+2-1 -1B N N B m+1, m+1, n
n
x
xC B b+σ X C B b+(σ σ σ )
x
其中 称为非基变量X N
的检验向量,它的各个分量称为检验数。若 σN的每一个检验数均小
于等于 0,即 σN≤0,那么现在的基本可行解就是最优解。
-1 -1B NX =B b-B NX
-1BZ=C B b
-1N N B m+1 m+1 n=C -C B N=( , , )
BB N
N
-1 -1B B N N B N N N
-1 -1B N B N
XZ=CX=(C C )
X
=C X +C X =C (B b-B NX )+C X
=C B b+(C -C B N)X
10
定理 1:最优解判别定理 对于线性规划问题 若某个基本可行解所对应的检验向量 , 则这个基本可行解就是最优解。
定理 2:无穷多最优解判别定理 若 是一个基本可行解,所对应的检验向量
,其中存在一个检验数 σm+k=0 ,
则线性规划问题有无穷多最优解。
nmaxZ=CX, D= X R /AX=b,X 0 -1
N N B=C -C B N 0
1B bX=
0
-1N N B=C -C B N 0
m+1
m+2-1B m+1, m+1, n
n
x
xZ C B b+(σ σ σ )
x
11
基本可行解的改进 如果现行的基本可行解X不是最优解,即在检验向量 中存在正的检验数,则需在原基本可行解X的基
础上寻找一个新的基本可行解,并使目标函数值有所改善。具体做法是:先从检验数为正的非基变量中确定一个换入变量,使它从非基
变量变成基变量(将它的值从零增至正值),再从原来的基变量中确定一个换出变量,使它从基变量变成非
基变量(将它的值从正值减至零)。 由此可得一个新的基本可行解,由 可知,这样的变换一定能使目标函数值有所增加。
-1N N B=C -C B N
m+1
m+2-1B m+1, m+1, n
n
x
xZ C B b+(σ σ σ )
x
12
换入变量和换出变量的确定:
换入变量的确定— 最大增加原则
假设检验向量 , 若其中有两个以上的检验数为正,那么为了使目标函数值增加得
快些,通常要用“最大增加原则”,即选取最大正检验数所对应的非基变量为换入变量,即若
则选取对应的 为换入变量, 由于 且为最大, 因此当 由零增至正值,
可使目标函数值 最大限度的增加。
-1N N B m+1 m+2 n=C -C B N=( , , )
j j m+kmax σ /σ >0,m+1 j n =σ m+kx
m+kxm+k 0
m+1
m+2-1B m+1, m+1, n
n
x
xZ C B b+(σ σ σ )
x
13
换出变量的确定— 最小比值原则 如果确定 为换入变量,方程 其中 为A中与 对应的系数列向量。 现在需在 中确定一个基变量为换出变量。
当 由零慢慢增加到某个值时, 的非负性可能被打破。为保持解的可行性,可以按最小比值原则确定换出变量: 若
B 1 2 mX =(x , x , x )T
-1-1-1i
m+k i-1 -1m+k i m+k
(B b)(B b)min /(B P ) >0,1 i m =
(B P ) (B P )l
l
m+kx-1 -1 -1 -1
B N B m+k m+kX =B b-B NX X =B b-B P x
m+kPm+kx
m+kx
则选取对应的基变量 为换出变量。 x l
BX
14
定理 3:无最优解判别定理
若 是一个基本可行解,有一个检验数 ,
但是 ,则该线性规划问题无最优解。
1B bX=
0
-1m+kB P 0
m+k 0
证:令 ,则得新的可行解
将上式代入
因为 , 故当λ→+∞时, Z→+∞。
-1 -1 -1 -1B m+k m+k m+kX =B b-B P x B b-B P
m+1
-1 -1B m+1 m+k n B m+k
n
x
Z=C B b+(σ , σ , σ ) C B b+σ
x
m+kx , ( 0)
m+k 0
15
用初等变换求改进了的基本可行解
假设B是线性规划 的可行基,则
令非基变量 ,则基变量 。
可得基本可行解 。 1B b
X=0
B
N
XAX=b (BN) b
X
maxZ=CX,AX=b,X 0
B-1 -1
N
X(I,B N) =B b
X
用逆阵 左乘约束方程组的两端,等价于对方程组施以一系列的初等“行变换”。变换的结果是将系数矩阵A中的可行基B变换成单位矩阵 I,把非基变量系数列向量构成的矩阵N变换成 ,把资源向量 b变换成 。
1B
1BX =B b
1B N
1B b
NX =0
16
且改进了的基本可行解 只是在X的基变量的基础上用一个换入变量替代其中一个换出变量,其它的基变量仍然保持不变。这些基变量的系数列向量是单位矩阵 I中的单位向量。为了求得改进的基本可行解 ,只需对增广矩阵
施行初等行变换,将换入变量的系数列向量变换成换出变量所对应的单位向量即可。
由于行初等变换后的方程组
与原约束方程组 或 同解
B-1 -1
N
X(I,B N) =B b
X
AX=b
'X
-1 -1(I,B N,B b)
B
N
X(B,N) =b
X
'X
17
1 2 3 4 5
1 2 3 4
1 2 3 5
1 2 3 4 5
maxZ=5x 2x 3x x x
x 2x 2x x 8
3x 4x x x 7
x ,x ,x ,x ,x 0
1 2 2 1 0A=
3 4 1 0 1
8b
7
C=(5,2,3, 1,1)
例 1
解:(1 ) 确定初始的基本可行解。
,基变量 ,非基变量 。4 5
1 0B=(P P )=
0 1
4 5x ,x 1 2 3x ,x , x
14 B
B N 25 N
3
xx C =(-1,1)1 0 1 2 2 8
X = ,X = x ,B= ,N= , ,b=x C =(5,2,3)0 1 3 4 1 7
x
1
N B
8X =0 X =B b=
7
X=(0,0,0,8,7)T
1B
8Z=C B b=(-1,1) 1
7
18
(2) 检验 是否最优。
检验向量
因为 σ1=3 , σ3=4 均大于零,
所以 不是最优解。
X=(0,0,0,8,7)T
-1N N B
1 2 3
1 2 2σ =C -C B N=(5,2,3)-(-1,1)
3 4 1
=(5,2,3)-(2,2,-1)=(3, 0, 4)
σ σ σ
14 B
B N 25 N
3
xx C =(-1,1)1 0 1 2 2 8
X = ,X = x ,B= ,N= , ,b=x C =(5,2,3)0 1 3 4 1 7
x
X=(0,0,0,8,7)T
19
( 3 )基本可行解 的改进 ① 选取换入变量
因为 max{3 , 4}=4,取 x3 为换入变量。
② 选取换出变量 且 ,
选取 x4为换出变量 .
8 7 8min ,
2 1 2
X=(0,0,0,8,7)T
1 13
8 2B b= ,B P 0
7 1
14 B
B N 25 N
3
xx C =(-1,1)1 0 1 2 2 8
X = ,X = x ,B= ,N= , ,b=x C =(5,2,3)0 1 3 4 1 7
x
N 1 2 3=( , , ) (3,0,4)
4 -1 -13 3 3
5
x 8 2=B b-B P x = - x
x 7 1
20
( 4 )求改进了的基本可行解
对约束方程组的增广矩阵施以初等行变换,使换入变量 x3 所对应
的系数列向量 变换成换出变量 x4所对应的单位向量
,
注意保持基变量 x5的系数列向量 为单位向量不变。
3
2P =
1
4
1P
0
5
0P =
1
1 11 1 0 41 2 2 1 0 8 2 23 4 1 0 1 7 3 4 1 0 1 7
1 11 1 0 42 2 5 -13 0 1 32 2
'X
14 B
B N 25 N
3
xx C =(-1,1)1 0 1 2 2 8
X = ,X = x ,B= ,N= , ,b=x C =(5,2,3)0 1 3 4 1 7
x
第一行除以2
第二行减去第一行
21
——————————————————————————可得改进的基本可行解。
,基变量 , 非基变量 。
基本可行解 目标函数值
易见目标函数值比原来的 Z=-1增加了, 再转向步骤 (2)
3 5
1 0B=(P P )=
0 1
13 B
B N 25 N
4
1 1x 1x C =(3,1)1 0 42 2X = ,X = x ,B= ,N= , ,b=x C =(5,2,-1)0 1 5 -1 3
3x2 2
1
N B
4X =0 X =B b=
3
X=(0,0,4,0,3)T
1B
4Z=C B b=(3,1) 15
3
C=(5,2,3, 1,1)C=(5,2,3, 1,1)1 11 1 0 41 2 2 1 0 8 2 2 53 4 1 0 1 7 -13 0 1 32 2
3 5x x 1 2 4x ,x , x
22
( 2 )检验 是否最优。
检验向量
因为 ,
所以 仍不是最优解。
X=(0,0,4,0,3)T
-1N N B
1 2 4
1 11
2 2σ =C -C B N=(5,2,-1)-(3,1)5 -1
32 2
=(5,2,-1)-(4,6,1)=(1, -4, -2)
σ σ σ
X=(0,0,4,0,3)T
13 B
B N 25 N
4
1 1x 1x C =(3,1)1 0 42 2X = ,X = x ,B= ,N= , ,b=x C =(5,2,-1)0 1 5 -1 3
3x2 2
1 1 0
23
( 3 )基本可行解 的改进
① 选取换入变量 因为 ,取 为换入变量。 ② 选取换出变量
且 ,
选取 为换出变量 .
4 3 3min ,
1/ 2 5 / 2 5 / 2
X=(0,0,4,0,3)T
1 11
14 2B b= ,B P 03 5
2
1 1 0 1x
5x
13 B
B N 25 N
4
1 1x 1x C =(3,1)1 0 42 2X = ,X = x ,B= ,N= , ,b=x C =(5,2,-1)0 1 5 -1 3
3x2 2
3 -1 -11 1 1
5
x 4 1/2=B b-B P x = - x
x 3 5/2
24
( 4 )求改进了的基本可行解 对约束方程组的增广矩阵施以初等行变换,使换入变量 所对应
的系数列向量 变换成换出变量 所对应的单位向量 ,
1
1
2P =5
2
5
0P
1
''X1x
5x
1 11 1 1 1 0 41 1 0 4 2 22 26 65 -1 2-1 1 03 0 1 35 5 5 52 2
3 172 -10 1 5 5 5 5
6 6-1 21 05 5 5 5
13 B
B N 25 N
4
1 1x 1x C =(3,1)1 0 42 2X = ,X = x ,B= ,N= , ,b=x C =(5,2,-1)0 1 5 -1 3
3x2 2
第二行乘以2 /5
第一行减以第二行的1 /2倍
25
——————————————————————————可得改进的基本可行解。
,基变量 ,非基变量
基本可行解
目标函数值 比 Z=15 增加了,再转向步骤 (2)
3 1
1 0B=(P P )=
0 1
2B3
B N 4N1
5
2 3 -1 17xC =(3,5)x 1 0 5 5 5 5X = ,X = x ,B= ,N= , ,b=
C =(2,-1,1)x 0 1 6 -1 2 6x
5 5 5 5
1N B
17
5X =0 X =B b=6
5
6 17X=( ,0, ,0,0)
5 5T
1B
17815Z=C B b=(3,5)
6 5
5
C=(5,2,3, 1,1)C=(5,2,3, 1,1)
3 1x ,x 2 4 5x ,x , x
3 172 -11 1 0 11 1 0 45 5 5 52 2
5 6 6-1 -1 23 0 1 3 1 02 2 5 5 5 5
26
( 2 )检验 是否最优。
检验向量
因为所有检验数均小于零,
所以 是最优解,
-1N N B
2 4 5
2 3 -1
5 5 5σ =C -C B N=(2,-1,1)-(3,5)6 -1 2
5 5 536 4 7 -26 -9 -2
=(2,-1,1)-( , , )=( , , )5 5 5 5 5 5
σ σ σ
6 17''X =( ,0, ,0,0)5 5
T
* 6 17''X =X =( ,0, ,0,0)5 5
T * 81Z =
5
2B3
B N 4N1
5
2 3 -1 17xC =(3,5)x 1 0 5 5 5 5X = ,X = x ,B= ,N= , ,b=
C =(2,-1,1)x 0 1 6 -1 2 6x
5 5 5 5
27
表格单纯形法 通过例1我们发现,在单纯形法的求解过程中,有下列重要指标:每一个基本可行解的检验向量根据检验向量可以确定所求得的基本可行解是否为最优解。如果不
是最优又可以通过检验向量确定合适的换入变量。每一个基本可行解所对应的目标函数值通过目标函数值可以观察单纯形法的每次迭代是否能使目标函数值
有效地增加,直至求得最优目标函数为止。 在单纯形法求解过程中,每一个基本可行解X都以某个经过初等行
变换的约束方程组中的单位矩阵 Ι 为可行基。当B =I时,B -1=I,易知:
-1N N Bσ =C -C B N
1BZ=C B b
N N Bσ =C -C N BZ=C b
28
可将这些重要结论的计算设计成如下一个简单的表格,即单纯形表来完成:
C CB CN
θ CB XB b X1 X2 ··· Xm X m+1 Xm+2 ··· Xn
C1
C2
.
.
Cm
X1
X2
.
Xm
b1
b2
.
.
bm
I N θ1
θ2
.
.
θm
Z CBb 0 CN- CBN
29
例 2、试利用单纯形表求例 1 中的最优解解:
得初始的单纯形表:
C=(5,2,3, 1,1)1 2 2 1 0 8
(Ab)=3 4 1 0 1 7
1 2 3 4 5
1 2 3 4
1 2 3 5
1 2 3 4 5
maxZ=5x 2x 3x x x
x 2x 2x x 8
3x 4x x x 7
x ,x ,x ,x ,x 0
N N Bσ =C -C NBZ=C b
初始基本可行解 , Z= -1 ,X=(0,0,0,8,7)T
1 2 2 1 08x4-1
3 0 4 0 0-1Z
3 4 1 0 17x51
x1 x2 x3 x4 x5bXBCB
Θ 5 2 3 -1 1C
30
换入变量, 换出变量,2为主元进行旋转变换3x 4x
基本可行解 , Z= 15,X=(0,0,4,0,3)T
1/2 1 1 1/2 04x33
1 -4 0 -2 015Z
5/2 3 0 -1/2 13x51
x1 x2 x3 x4 x5bXBCB
Θ 5 2 3 -1 1C
1 2 2 1 08x4-1
3 0 4 0 0-1Z
3 4 1 0 17x51
x1 x2 x3 x4 x5bXBCB
Θ 5 2 3 -1 1C
8/2
7/1
31 最优解 最优值
6 17
X ,0, ,0,05 5
T
换入变量, 换出变量,5 /2为主元进行旋转变换1x 5x
N N Bσ =C -C N 0 81Z
5
4/1/21/2 1 1 1/2 04x33
1 -4 0 -2 015Z
3/5/25/2 3 0 -1/2 13x51
x1 x2 x3 x4 x5bXBCB
Θ 5 2 3 -1 1C
0 2/5 1 3/5 -1/517/5x33
0 -26/5 0 -9/5 -2/581/5Z
1 6/5 0 -1/5 2/56/5x15
x1 x2 x3 x4 x5bXBCB
Θ 5 2 3 -1 1C
32
例 3、用单纯形方法求解线性规划问题
解:本题的目标函数是求极小化的线性函数,可以令
则
这两个线性规划问题具有相同的可行域和最优解,只是目标函数相差一个符号而已。
1 2
1 3
2 4
1 2 5
j
minZ=-x -2x
x x 4
x x 3
x 2x x 8
x 0 j 1,2,3,4,5
,
1 2'Z = -Z = x +2x
'1 2 1 2minZ=-x -2x max x +2xZ
33
0 1 0 1 03x22
0 0 1 2 -12x30
-0 1 0 1 03x22
4/11 0 1 0 04x30
3/10 1 0 1 03x40
_1 0 1 0 04x30
0 0 0 0 -18Z’
1 0 0 -2 12x11
1 0 0 -2 06Z’
2/11 0 0 -2 12x50
1 2 0 0 00Z’
8/21 2 0 0 18x50
x1 x2 x3 x4 x5bXBCB
Θ 1 2 0 0 0C
最优解 最优值 X 2,3,2,0,0T 'maxZ =8 or minZ=-8
2/2
3/1
-
34
因为非基变量 x4的检验数 σ4=0 ,由无穷多最优解判别定理,本例的线性规划问题存在无穷多最优解。事实上若以 x4为换入变量,以 x
3 为换出变量,再进行一次迭代,可得一下单纯形表:
最优解 最优值
最优解的一般表示式
'maxZ =8 or minZ=-8 X 4,2,0,1,0T
X (2,3,2,0,0) (1 ) 4,2,0,1,0 ,0 1.TT
C 1 2 0 0 0Θ
CB XB b x1 x2 x3 x4 x5
021
x4
x2
x1
124
0 0 1/2 1 -1/2 0 1 -1/2 0 1/2 1 0 1 0 0
Z’ 8 0 0 0 0 -1
35
对于极小化的线性规划问题的处理:先化为标准型,即将极小化问题变换为极大化问题,然后利用
单纯形方法求解.
直接利用单纯形方法求解,但是检验是否最优的准则有所不同,
即: 若某个基本可行解的所有非基变量对应的检验数 (而不是≤0),则基本可行解为最优解.否则采用最大减少原则(而非最大增加原则)来确定换入变量,即: 若
则选取对应的非基变量 xm+k为换入变量.
确定了换入变量以后,换出变量仍采用最小比值原则来确定。
N N Bσ =C -C N 0
j j m+kmin σ /σ <0,m+1 j n =σ
36
借助人工变量求初始的基本可行解 若约束方程组含有“≥”不等式,那么在化标准形时除了在方程式左端减去剩余变量,还必须在左端加上一个非负的人工变量。 因为人工变量是在约束方程已为等式的基础上,人为的加上去的一个新变量,因此加入人工变量后的约束方程组与原约束方程组是不等价的。
加上人工变量以后,线性规划的基本可行解不一定是原线性规划的问题的基本可行解。只有当基本可行解中所有人工变量都为取零值的非基变量时,该基本可行解对原线性规划才有意义。因为此时只需去掉基本可行解中的人工变量部分,剩余部分即为原线性规划的一个基本可行解.而这正是我们引入人工变量的主要目的。
37
考虑线性规划问题:
为了在约束方程组的系数矩阵中得到一个 m阶单位矩阵作为初始可行基,在每个约束方程组的左端加上一个人工变量 可得到:
n
j jj=1
n
i j j ij=1
j
maxZ= c x
a x =b ,i=1,2,...,m
x 0,j=1,2,....,n
n+ix (i=1,2, m)n
j jj=1
n
i j j n+i ij=1
j
maxZ= c x
a x +x =b ,i=1,2,...,m
x 0,j=1,2,....,n+m
38
———————————————————————— 添加了 m 个人工变量以后,在系数矩阵中得到一个 m阶单位矩阵,
以该单位矩阵对应的人工变量 为基变量, 即可得到一个初始的基本可行解
这样的基本可行解对原线性规划没有意义的。 但是我们可以从 X(0) 出发进行迭代,一旦所有的人工变量都从基变
量迭代出来,变成只能取零值的非基变量,那么我们实际上已经求得了原线性规划问题的一个初始的基本可行解。
此时可以把所有人工变量剔除,开始正式进入求原线性规划最优解的过程。
n+ix (i=1,2, m)
(0)1 2 mX =(0,0, ,0,b ,b , b )T
n
i j j ij=1
j
a x =b ,i=1,2,...,m
x 0,j=1,2,....,n
n
i j j n+i ij=1
j
a x +x =b ,i=1,2,...,m
x 0,j=1,2,....,n+m
39
大 M 法 大 M法首先将线性规划问题化为标准型。如果约束方程组中包含有一个单位矩阵 I ,那么已经得到了一个初始可行基。否则在约束方程组的左边加上若干个非负的人工变量,使人工变量对应的系数列向量与其它变量的系数列向量共同构成一个单位矩阵。以单位矩阵为初始基,即可求得一个初始的基本可行解。 为了求得原问题的初始基本可行解,必须尽快通过迭代过程把人工变量从基变量中替换出来成为非基变量。为此可以在目标函数中赋予人工变量一个绝对值很大的负系数 -M。这样只要基变量中还存在人工变量,目标函数就不可能实现极大化。 以后的计算与单纯形表解法相同,M只需认定是一个很大的正数即可。假如在单纯形最优表的基变量中还包含人工变量,则说明原问题无可行解。否则最优解中剔除人工变量的剩余部分即为原问题的初始基本可行解。
40
例 4、用大 M法求解下面的线性规划问题 :解: 首先将原问题化为标准型
添加人工变量 ,并在目标函数中分别赋予 -M
1 2
1 2
1 2
2
1 2
maxZ=-x +2x
x x 2
-x x 1
x 3
x ,x 0
1 2 3
1 2 4
2 5
j
x x -x 2
-x x -x 1
x x 3
x 0,j 1,2,3,4,5
1 2 6 7
1 2 3 6
1 2 4 7
2 5
j
maxZ= -x +2x -Mx -Mx
x x -x x 2
-x x -x x 1
x x 3
x 0,j 1,2,3,4,5,6,7
6 7x ,x
41
- 0 1 -1/2 -1/2 0 1/2 1/23/2X22
1 0 -1/2 1/2 0 1/2 -1/21/2X1-1
- -1 1 0 -1 0 0 11X22
1/2 2 0 -1 1 0 1 -11X6-M
1/1 -1 1 0 -1 0 0 11X7-M
2/1 1 1 -1 0 0 1 02X6-M
0 0 1/2 3/2 0 -1/2-M -3/2-M5/2Z
0 0 1/2 1/2 1 -1/2 -1/23/2X50
1+2M 0 -M 2+M 0 0 -2-2M2-MZ
2/1 1 0 0 1 1 0 -12X50
-1 2+2M -M -M 0 0 0-3MZ
3/1 0 1 0 0 1 0 03X50
X1 x2 x3 x4 x5 x6 x7bXBCB
θ -1 2 0 0 0 -M -MC
42
0 1 0 0 1 0 03X22
1 0 0 1 1 0 -12X40
1 1 -1 0 0 1 02X22
2 0 -1 1 0 1 -11X40
- 0 1 -1/2 -1/2 0 1/2 1/23/2X22
1/2/1/2 1 0 -1/2 1/2 0 1/2 -1/21/2X1-1
-1 0 0 0 -2 -M -M6Z
-1 0 1 0 1 -1 01X30
-3 0 2 0 0 -2-M -M4Z
-1 0 1 0 1 -1 01X50
0 0 1/2 3/2 0 -1/2-M -3/2-M5/2Z
3/2 /1/2 0 0 1/2 1/2 1 -1/2 -1/23/2X50
X1 x2 x3 x4 x5 x6 x7bXBCB
θ -1 2 0 0 0 -M -MC
最优解 最优值 X 0,3,1,2,0T Z 6
43
两阶段法
两阶段法引入人工变量的目的和原则与大 M法相同,所不同的是处理人工变量的方法。 两阶段法的步骤: 求解一个辅助线性规划。目标函数取所有人工变量之和,并取极小化;约束条件为原问题中引入人工变量后包含一个单位矩阵的标准型的约束条件。 如果辅助线性规划存在一个基本可行解,使目标函数的最小值等于零,则所有人工变量都已经“离基”。表明原问题已经得了一个初始的基本可行解,可转入第二阶段继续计算;否则说明原问题没有可行解,可停止计算。
求原问题的最优解。在第一阶段已求得原问题的一个初始基本可行解的基础上,继续用单纯形法求原问题的最优解
44
例 5、用两阶段法求解例 4中的线性规划问题。解:首先将问题化为标准型
添加人工变量 x6,x7, 并建立辅助线性规划如下:
1 2
1 2
1 2
2
1 2
maxZ=-x +2x
x x 2
-x x 1
x 3
x ,x 0
1 2 3
1 2 4
2 5
j
x x -x 2
-x x -x 1
x x 3
x 0, j 1,2,3,4,5
6 7
1 2 3 6
1 2 4 7
2 5
j
minZ=x +x
x x -x x 2
-x x -x x 1
x x 3
x 0, j 1,2,3,4,5,6,7
由于辅助线性规划的目标函数是极小化,因此最优解的判别准则应为:
N N Bσ =C -C N 0
45
0 1 -1/2 -1/2 0 1/2 1/23/2X20
1 0 -1/2 1/2 0 1/2 -1/21/2X10
- -1 1 0 -1 0 0 11X20
1/2 2 0 -1 1 0 1 -11X61
1/1 -1 1 0 -1 0 0 11X71
2/1 1 1 -1 0 0 1 02X61
0 0 0 0 0 1 10W
0 0 1/2 1/2 1 -1/2 -1/23/2X50
-2 0 1 -1 0 0 21W
2/1 1 0 0 1 1 0 -12X50
0 -2 1 1 0 0 03W
3/1 0 1 0 0 1 0 03X50
x1 x2 x3 x4 x5 x6 x7bXBCB
θ 0 0 0 0 0 1 1C
辅助规划所有检验数:
N N Bσ =C -C N 0 minW=01 3 3
X=( , ,0,0, )2 2 2
原问题已得一个初始基本可行解,
46
由上表可知,通过若干次旋转变换,原问题的约束方程组已变换成包含一个单位矩阵的约束方程组
该约束方程组可作为第二阶段初始约束方程组,将目标函数则还原成原问题的目标函数,可继续利用单纯形表求解。
1 3 4
2 3 4
3 4 5
j
1 1 1x - x x
2 2 21 1 3
x - x - x 2 2 21 1 3
x x x2 2 2
x 0, j 1,2,3,4,5
1 2 3
1 2 4
2 5
j
x x -x 2
-x x -x 1
x x 3
x 0, j 1,2,3,4,5
47
-1 0 0 0 -26Z
1 0 0 1 1 0 1 0 0 1 -1 0 1 0 1
231
X4
X2
X3
020
-3 0 2 0 04Z
2 0 -1 1 0 1 1 -1 0 0 -1 0 1 0 1
121
X4
X2
X5
020
0 0 1/2 3/2 05/2Z
1/2/1/2
-3/2/1/2
1 0 -1/2 1/2 0 0 1 -1/2 -1/2 0 0 0 1/2 1/2 1
1/23/23/2
X1
X2
X5
-120
x1 x2 x3 x4 x5 bXBCB
θ -1 2 0 0 0C
可得最优解 ,目标函数值 maxZ=6,与用大 M法的结果完全相同。
X 0,3,1,2,0T
48
单纯形表与线性规划问题的讨论 无可行解
通过大M法或两阶段法求初始的基本可行解。但是如果在大
M法的最优单纯形表的基变量中仍含有人工变量,或者两阶段法的辅助线性规划的目标函数的极小值大于零,那么该线性规划就不存在可行解。 人工变量的值不能取零,说明了原线性规划的数学模型的约束条件出现了相互矛盾的约束方程。此时线性规划问题的可行域为空集。
49
例 6、求解下列线性规划问题
解: 首先将问题化为标准型 令 ,则
1 2 3
1 2 3
1 3
2 3
1 2 3
minZ=3x +2x +x
x x x 6
x -x 4
x -x 3
x ,x ,x 0
'1 2 3 7 8
1 2 3 4
1 3 5 7
2 3 6 8
M MmaxZ = -3x -2x -x - x - x
x +x +x +x =6
x -x -x +x =4
x -x -x +x =3
xj 0, j=1,2, 8.
'Z = -Z
故引入人工变量 ,并利用大 M法求解
7 8x ,x
1 2 3
1 2 3 4
1 3 5
2 3 6
'maxZ = -3x -2x -x
x +x +x +x =6
x -x -x =4
x -x -x =3
xj 0, j=1,2, 6.
50
C -3 -2 -1 0 0 0 -M -M
CB XB b x1 x2 x3 x4 x5 x6 x7 x8 θ
0-M-M
x4
x7
x8
643
1 1 1 1 0 0 0 01 0 -1 0 -1 0 1 00 1 -1 0 0 -1 0 1
6/1-
3/1
Z’ -7M
-6-4M
-15-M
-3+M -2+M -1-2M 0 -M -M 0 0
0-M-2
x4
x7
x2
343
1 0 2 1 0 1 0 -11 0 -1 0 -1 0 1 00 1 -1 0 0 -1 0 1
3/14/1-
Z’
Z’
-3+M 0 -3-M 0 -M -2 0 2-M
-3-M-2
x1
x7
x2
313
1 0 2 1 0 1 0 -10 0 -3 -1 -1 -1 1 10 1 -1 0 0 -1 0 1
0 0 3-3M 3-M -M 1-M 0 -1
在以上最优单纯形表中,所有非基变量检验数都小于零,但在该表中人工变量 x7=1 为基变量,所以原线性规划不存在可行解。
51
无最优解 无最优解与无可行解时两个不同的概念。 无可行解是指原规划不存在可行解,从几何的角度解释是指 线性规划问题的可行域为空集; 无最优解则是指线性规划问题存在可行解,但是可行解的目 标函数达不到最优值,即目标函数在可行域内可以趋于无穷大(或者无穷小)。无最优解也称为有限最优解,或无界解。 判别方法:无最优解判别定理 在求解极大化的线性规划问题过程中,若某单纯形表的检验 行存在某个大于零的检验数,但是该检验数所对应的非基变量 的系数列向量的全部系数都为负数或零,则该线性规划问题 无最优解,
-1 -1B m+k m+kX =B b-B P x -1
B m+k m+kZ=C B b+σ xm+k 0 -1
m+kB P 0 m+kx 可以 Z 可以
52
例 7、试用单纯形法求解下列线性规划问题:
解:引入松弛变量 x3,x4化为标准型1 2
1 2
1 2
1 2
maxZ=2x +2x
x - x -1
1- x x 2
2x 0,x 0
1 2
1 2 3
1 2 4
j
maxZ=2x +2x
-x x x 1
1- x x +x 2
2x 0,j 1,2,3,4
C 2 2 0 0 θ
C XB B x1 x2 x3 x4
0 X3 1 -1 1 1 0
0 X4 2 -1/2 1 0 1
Z 0 2 2 0 0
1= 2>0因
但
所以原问题无最优解
1
-1P = 01
-2
53
退化解 当线性规划问题的基本可行解中有一个或多个基变量取零值时,称此基本可行解为退化解。 产生的原因:在单纯形法计算中用最小比值原则确定换出变量时,有时存在两个或两个以上相同的最小比值 θ ,那么在下次迭代中就会出现一个甚至多个基变量等于零。遇到的问题:当某个基变量为零,且下次迭代以该基变量作为换出变量时,目标函数并不能因此得到任何改变(由旋转变换性质可知,任何一个换入变量只能仍取零值,其它基变量的取值保持不变)。通过基变换以后的前后两个退化的基本可行解的坐标形式完全相同。从几何角度来解释,这两个退化的基本可行解对应线性规划可行域的同一个顶点,解决的办法:最小比值原则计算时存在两个及其以上相同的最小比值时,选取下标最大的基变量为换出变量,按此方法进行迭代一定能避免循环现象的产生(摄动法原理)。
54
例 8、求解下述线性规划问题:
解:引入松弛变量 化标准型
1 2 3 4
1 2 3 4
1 2 3 4
3
j
maxZ=3x -80x +2x -24x
x -32x -4x 36x 0
x -24x - x 6x 0
x 1
x 0,j 1,2,3,4
1 2 3 4
1 2 3 4 5
1 2 3 4 6
3 7
j
maxZ=3x -80x +2x -24x
x -32x -4x 36x x 0
x -24x - x 6x x 0
x x 1
x 0,j 1,2,3,4,5,6,7
5 6 7x ,x ,x
55
000-242-8030Z
-5-60-420-805Z
10001001x3 2
12060-2411x1 3
321300-803x5 0
0-30-425-800Z
1100 1001x7 0
0106-1-2410x1 3
0-1130-3-800x5 0
-11001001x7 0
00106-1-2410x6 0
000136-4-3210x5 0
x7 x6 x5 x4 x3 x2 x1 b XB CB
000-242-803C θ
第一次迭代中使用了摄动法原理,选择下标为 6 的基变量 x6 离基。
可得最优解 ,目标函数值maxZ=5,
X 1,0,1,0,3T
56
无穷多最优解 无穷多最优解判别原理:若线性规划问题某个基本可行解所有的非基变量检验数都小于等于零,但其中存在一个检验数等于零,那么该线性规划问题有无穷多最优解。
例3:最优表:非基变量检验数 ,所以有无穷多最优解。
最优解集为可行域两个顶点的凸组合:
C 1 2 0 0 0θ
CB XB b x1 x2 x3 x4 x5
021
x3
x2
x1
232
0 0 1 2 -10 1 0 1 01 0 0 -2 1
2/23/1-
Z’ 8 0 0 0 0 -1
4 = 0
X (2,3,2,0,0) (1 ) 4,2,0,1,0 ,0 1.TT
57
改进单纯形法的特点 利用单纯形表求解线性规划时,每一次迭代都把整个单纯形表计算一遍,事实上我们关心的只是以下一些数据:基本可行解 ,其相应的目标函数值 ,非基变量检验数 ,及其换入变量 , 设 主元列元素 ,及其换出变量 , 设
利用它们可得到一组新的基变量以及新的可行基B 1 。
1-1-1i
k i-1 1k i k
(B b)(B b)min /(B P ) >0, i
(B P ) (B P )l
l
改进单纯形法
-1BX =B b
-1BZ=C B b
-1N N B=C -C B N kx
x l-1kB P
为基变量下标
j j kmax σ / σ >0, j =σ为非基变量下标
58
对任一基本可行解X,只要知道 ,上述关键数据都可以从
线性规划问题的初始数据直接计算出来。因此如何计算基本可行解
X对应的可行基B的逆阵 成为改进单纯形法的关键.
改进单纯形法推导出从可行基B变换到B 1 时, 到
的变换公式。当初始可行基为单位矩阵 Ι 时,变换公式将更具有优
越性,因为这样可以避免矩阵求逆的麻烦
以下推导从 到 的变换公式:
-1B
-1B
-1B-11B
-1B-11B
-1BX =B b
-1BZ=C B b -1
N N B=C -C B N -1kB P
59
-1 -1 -1 -1 -1 -1 -11 2 1 1 mB B (B P ,B P , ,B P ,B P ,B P , B P )l l l
m m
1 . 0
. .
0 . 1
-1 -1 -1 -1 -1 -1 -11 1 2 1 k 1 mB B (B P ,B P , ,B P ,B P ,B P , B P )l l
-11 2 1 k 1 m( , , , ,B P , , )l le e e e e
1 2 1 1 mB (P ,P , ,P ,P ,P , P )l l l 假设当前基 , 基变换中用非基变量 取代基变量
可得新基前后二个基相比仅相差一列,且
比较以上二式,可得
x l
1 1 2 1 k 1 mB (P ,P , ,P ,P ,P , P )l l kx
其中 表示第 个元素为 1,其它元素均为零的单位列向量,
为主元列元素。
ie i-1
kB P
60
假设 ,
则
1k
2k
-1K
k
mk
a'
a'
B P =a'
a'
l
1k
lk
2k
lk
k
mk
lk
a'1 - 0
a'
a'-
a'
1 1 1k 1
a'
a'0 - 1
a'
- -E (B B )l
l
-1 -11 1 2 1 1 mB B ( , , , ,B P , , )l k le e e e e
第 列(换出变量 对应列 )
第 行
l
l
所以由 -1 -1 -1 -1 -1k 1 1 1 kE (B B ) B B B E Bl l
x l
主元素
61
改进单纯形法的步骤
( 1) 根据给出的线性规划问题的标准型,确定初始基变量和初始可行基B。求初始可行基 B的逆阵B -1 ,得初始基本可行解 。 ( 2)计算单纯形乘子 ,得目标函数当前值( 3) 计算非基变量检验数 ,
若 σN≤0,则当前解已是最优解,停止计算;否则转下一步。
( 4) 根据 ,确定非基变量 为换入变量,计算 ,若 ≤ 0,则问题没有有限最优解,停止计算,
否则转下一步。
-1Bπ=C B
-1N N B N=C -C B N=C -πN
-1BZ=C B b=πb
-1B NX =B b,X 0
j j kmax σ /σ >0 =σkx
-1kB P -1
kB P
62
( 5) 根据 ,确定基变量 为换出变量。
( 6) 用 替代 得新基B 1 ,由变换公式
计算新基的逆阵B 1-1 ,求出新的基本可行解
其中 为变换矩阵,构造方法是: 从一个单位矩阵出发,把换出变量 在基 B中的对应列的单位 向量,替换成换入变量 对应的系数列向量 ,并做如下变形, 主元素 (应在主对角线上)取倒数,其它元素除以主元素 并取相反数。 重复( 2)~( 6)直至求得最优解。
-1-1-1i
k i-1 -1k i k
(B b)(B b)min /(B P ) >0 =
(B P ) (B P )l
l
x l
PlkP-1 -1
1 k B E Bl
k El
'ka l
-1kB P
x lkx
'ka l
63
B=I
-1B NX =B b,X 0
-1Bπ=C B
Z=πbN N=C -πN
kx换入
-1kB P 无界解换出 x l1 B
-1 -11 k B E Bl
≤ 0
≤ 0
①
②
④
③
⑤
最优解
j j kmax σ /σ >0 =σ
-1-1-1i
k i-1 -1k i k
(B b)(B b)min /(B P ) >0 =
(B P ) (B P )l
l
初始基maxZ=CX
AX=b
X 0
新基⑥
64
例 9、试用改进单纯形法求解
解:
(1)观察法确定 , 为基变量 为非基变量
1 2
1 2 3
1 2 4
1 2 3 4
maxZ=3x +2x
x +x +x =40
2x +x +x =60
x ,x ,x ,x 0
1 1 1 0
A=2 1 0 1
C=(3,2,0,0)
40b=
60
0 3 4
1 0B =(P P )=
0 1
3 4x ,x
-1 -10 B 0 0
1 0 1 0 40 40B , X =B b= = , X (0,0,40,60)
0 1 0 1 60 60T
1 2x ,x
65
( 2 )计算单纯行乘子 目标函数当前值
( 3)非基变量检验数
-1 -10 B 0 3 4 0
1 0π =C B (c ,c )B (0,0) (0,0)
0 1
0 0
40Z = π b = (0,0) 0
60
N N 0 1 2 0 1 2
1 2
1 1σ =C -π N=(c ,c )-π (P P )=(3,2)-(0,0) = (3, 2)
2 1
(4) 选择换入变量 故 为换入变量。计算
j jmax σ /σ >0 = 3,2 =3
1x
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
-10 1
1 0 1 1B P 0
0 1 2 2
66
(5 ) 确定换出变量
确定 为换出变量,主元素=2
(6) 用 代替 得新可行基 为基变量, 为非基变量,
重复以上步骤,进入第二循环
1 10 03 4
1 10 1 0 13 4
B b B b 40 60 60min , ,
1 2 2B P B P
4x
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
-1B 0
40 X =B b=
60
-10 1
1B P
2
1P 4P 1 3 1
1 1 B =(P ,P )=
0 2
3 1x ,x
-1 -11 41 0
-1 -11 11 02 2B = E B = =
1 0 1 10 0
2 2
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
-1B 0
40 X =B b=
60
2 4x ,x
-11
21
02
1 0 1 1
0 1 0 2
67
(1)
(2)
(3)
-1B 1 1
1
2
1
2
1 40 10X =B b= , X (30,0,10,0)
60 300
T
-1 -11 B 1 3 1 1
11
32π =C B (c ,c )B (0,3) (0, )1 2
02
1 1
403Z = π b = (0, ) 90
602
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
1 3 1
1 1 B =(P ,P )=
0 2
-11
-11
2B =1
02
N N 1 2 4 1 2 4
2 4
1 03 1 3σ =C -π N=(c ,c )-π (P P )=(2,0)-(0, ) =( , - )
1 12 2 2
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
1 3 1
1 1 B =(P ,P )=
0 2
-11
-11
2B =1
02
68
(4) 选择 换入变量
(5)
选择 换出变量 ,主元素=
(6) 用 代替 得新可行基 为基变量, 为非基变量, 进入第三循环 .
2x-11 2
1 11 12 2B P 0
1 1 10
2 2
1 11 13 1
1 11 2 1 23 1
B b B b 10 30 10min , ,
1/ 2 1/ 2 1/ 2B P B P
3x -11 2 3
1(B P )
2
3P2P 2 1x ,x
-1 -12 32 1
-112 0 2 -12B = E B = =
1 1 1 -1 10
2
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
-1B 1
10X =B b=
30
1 3 1
1 1 B =(P ,P )=
0 2
2 2 1
1 1 B =(P ,P )=
1 2
1 0
0 1
10
21
12
2 0
-1 1
3 4x ,x
69
(1)
(2)
(3)
非基变量对应的检验数全部非正,
故当前解 即为最优解, 相应的目标函数最优值 。
-1B 2 2
2 1 40 20X =B b= , X (20,20,0,0)
1 1 60 20T
-1 -1
2 B 2 2 1 2
2 1π =C B (c ,c )B (2,3) (1, 1)
1 1
2 2
40Z = π b = (1,1) 100
60
N N 2 3 4 2 3 4
3 4
1 0σ =C -π N=(c ,c )-π (P P )=(0,0)-(1,1) =(-1, -1)
0 1
*2X =X =(20,20,0,0)T
maxZ 100
C=(3,2,0,0)1 1 1 0
A=2 1 0 1
40b=
60
-12
2 -1B =
-1 1
2 2 1
1 1 B =(P ,P )=
1 2