第二节单纯形法(简化)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例1.8:填出表中空白:
C X B b
0 x 360 0 x 200 0 x 300
0
x 3
84
7
x 1
20
12 x 24 2
xx x x x
1
2
3
4
5
9 41 4 50 3 10 0
7 12 0
00 10 01
00
0
1 -3.12 1.16
0
10
0 0.4 - 0.2
01
0 - 0.12 0.16
弛量”,若在左边加上这个松弛量,则化为等式。而这
个松弛量也是变量,记为X3 ,则有
9x 4x x 360
1
2
3
X3称为松弛变量。问题:它的实际意义是什么?
—— 煤资源的“剩余”。
练习:请将例1.1的约束化为标准型
9x 1 4x 2 360
s
.t
.34xx
1 1
5x 2 10x
200 2 300
x 6 4
x 1 , x 2 , x 3 , x 4 0
1 -2 0 0
C X B b
xxxx
1
2
3
4
0
x 3
2
-1 1 1 0
0
x 4
6
[ 1] 2 0 1
6
1 -2 0 0
0
x 3
8
1x 6 1
03 12
0 -4
11 01
0 -1
X (6, 0, 8, 0) s 6
总结表的规律: 1. 表中基变量的系数列有何特征? ——均为单位向量列; 2. 基变量的检验数有何特征? ——均为零。
第二节 单纯形法
单纯形法是求解线性规划的主要算法,1947 年由美国斯坦福大学教授丹捷格(G.B.Dantzig) 提出。
尽管在其后的几十年中,又有一些算法问世, 但单纯形法以其简单实用的特色始终保持着绝对 的“市场”占有率。
单纯形法是一种迭代的算法(设计在单纯形表上实
现),它的思想是在可行域的角点(称为基本可行解) 中寻优。
0 0 0 -1.36 - 0.52
问题:如果空白的不是基变量列怎么办呢?
事实上,
3. 表上每一列的含义:B (b , A) (B b , B P , , B P )
4. 每张表上B-1的位置在哪?——对应于初表中I 的位置。
因此,若已知初表和任意表的B-1,则可用矩阵与 向量法的乘法计算得到任意表中的空白列。
练习:用单纯形法求解下面的线性规划
Mins -x 1 2x 2
x 1 - x 2 -2 s .t .x 1 2x 2 6
x 1, x 2 0
解:增加松弛变量 x , x , 将模型化为标准型:
3
4
Maxz x 1 2x 2
- x 1 x 2 x
2
s .t .x 1 2x 2
3
2.建立初始单纯形表
前提:模型
Maxz CX
s.t.
AX X
0
b
的系数阵A中含I
(单位阵)。否则用人工变量法。
初始单纯形表的结构
约束右端项
B b
与A中的I 相应
b 的变量(称基
变量)名
CX
C
变量的价格系数
X
全体变量名
A
约束系数阵
基变量X 的 B
价格系数
例1.5:列出例1.1标准模型的初始单纯形表
C X B b
xxxx
1
2
3
4
0
x 3
15
3 5 10
5
0 x 10 4
[ 5] 2
01
2
2.5 1 0 0
0
x 3
9
2.5 x 1
2
0
19 5
1
-
3 5
1
2 5
0
1 5
0 0 0 - 0.5
X (2, 0, 9, 0)
z 5
例1.7:用单纯形法求解例1.1 Maxz 7x1 12x2
9x1 4x2 360
Maxz/ CX
因为,求一个函数 的极小点,等价于求该 函数的负函数的极大点。
f (x)
x*
f (x)
注意: Min型化为Max型求解后,最优解不变,但最优值差负号。
2) 不等式约束化为等式约束
分析:以例1.1中煤的约束为例
9x 4x 360
1
2
之所以“不等”是因为左右两边有一个差额,称为“松
,x
3
,x
4
5
0
问题:标准模型的A中是否含I? ——松弛变量系数恰好构成I。
C X B b
0 x 360 0 x 200 0 x 300
7 12 0 0 0
xx x x x
1
2
3
4
5
9 4 100
90
4 5 010
40
3 [10] 0 0 1
30
7 12 0 0 0
9
其中检验数 c C
来自百度文库
1
1
B
1
p 1
0 0 0 -1.36 - 0.52
1 3.12 1.16 360 84
1 3.12 1.16 4 0
解:B b1 0
0.4
0.2200 20, B P1 0
0.4
0.2
5
0
0 0.12 0.16 300 24
0 0.12 0.16 10 1
例如
2.5 1 0 0
C X B b
xxxx
1
2
3
4
0
x 3
15
3 5 10
5
0 x 10 4
[ 5] 2
01
2
2.5 1 0 0
(2)基于主元计算下一张单纯形表
•用初等行变换方法,先将主元消成1,再用此1将 其所在列的其余元消成0,所得结果写在新表上;
•转第3步(即检验新表是否最优)。
例如
2.5 1 0 0
C X B b
0 x 360 0 x 200 0 x 300
7 12 0 0 0
xx x x x
1
2
3
4
5
9 4 100
4 5 010
3 10 0 0 1
7 12 0 0 0
9
检验数1
c1
CB B1
p1
7
(0
0
0)
4
7;
相应于x1 的系数列
3
练习:计算x2的检验数。
由于检验数中有正的,故本表不是最优。
••
•
确定一个初始角点
检验这个角点是否最优
否
寻找一个更好的角点
是 停止
一、单纯形法的步骤
1.将模型化为标准型
Maxz CX
s.t. XAX
0
b
其中,A 的秩为m(m n),b 0。
标准型的特征:Max型、等式约束、非负约束
非标准形式如何化为标准
1) Min型化为Max型
加负号
Minz CX
30
7 12 0 0 0
7.8 0
[2.5] 0
0.3 1
3.4 0
0
0
1
0
0
1
00
1 0 - 0.4 30.8 0 1 - 0.5 20 0 0 0.1 100
0 0 -1.2
1 -3.12 1.16
0 0.4 - 0.2
0 - 0.12 0.16 0 -1.36 - 0.52
X * (20,24,84, 0,0) , z 428. (请解释其实际意义)
x 1, x 2 0
解:增加松弛变量 x , x , x , 则约束化为
3
4
5
9x 1 4x 2 x 3
360
s
.t
.34xx
1 1
5x 2 10x
2
x 4 200 x 5 300
x 1, x 2, x 3 , x 4 , x 5 0
易见,增加的松弛变量的系数恰构成一个单位阵I。
15
s .t .5x 1 2x 2
3
x 10 4
x
1
,
x
2
,
x
3
,
x
4
0
C X B b
0
x 3
15
0 x 10 4
2.5 1 0 0
xxxx
1
2
3
4
3 5 10 5 2 01
2.5 1 0 0
由于检验数中有正的,故本表不是最优。
下一步?
确定一个初始角点
检验这个角点是否最优
否
寻找一个更好的角点
例1.9: C X B b 填表: 0 x 360
0 x 200 0 x 300
0
x 3
84
7
x 1
20
12 x 24 2
xx x x x
1
2
3
4
5
9 4 100
4 5 010
3 [10] 0 0 1
7 12 0 0 0
00 10 01
1 -3.12 1.16 0 0.4 - 0.2
0 - 0.12 0.16
7
(0 0
0) 4
7;
3
360 90
4
C X B b
0 x 360 0 x 200 0 x 300
0
x 3
240
0
x 4
50
12 x 30 2
0
x 3
84
7 x 20 1
12 x 24 2
7 12 0 0 0
xx x x x
1
2
3
4
5
9 4 100
90
4 5 010
40
3 [10] 0 0 1
练习:写出下列线性规划的标准型和初始单纯形表,并 检验该表是否最优。
Maxz 2.5x 1 x 2
3x 1 5x 2 15 s .t .5x 1 2x 2 10
x 1, x 2 0
解:增加松弛变量 x , x , 将模型化为标准型:
3
4
Maxz 2.5x 1 x 2
3x 1 5x 2 x
是 停止
4. 计算下一张单纯形表
(1)确定本表的进基、出基变量和主元
•选本表正检验数中最大者,其相应的变量xk 进基;
•计算 B b1 与xk 的系数列之比(记 ,称检验比),选 中最 小者相应的变量xl 出基(注意:当xk 的系数列中有 零或负值时,相应 不算);
• xk 列与xl 行的交叉元即主元。
Maxz 7x1 12x2
9x 1 4x 2 x 3
360
s
.t
.34xx
1 1
5x 2 10x
2
x 4 200 x 5 300
x 1, x 2, x 3 , x 4 , x 5 0
C X B b
0 x 360 0 x 200 0 x 300
7 12 0 0 0
xx x x x
1
2
3
4
5
9 4 100
4 5 010
3 10 0 0 1
3. 检验该单纯形表是否最优
C
B b
X
CXb
A
检验数:每个变量的检验数等于该变量的 价格系数减去 C 与该变量的系数列之积。
B
法则:如果全体检验数均非正,则本表为最优,相
应的最优解
X*
B1b 0
;否则转4。
例1.6:检验例1.1的初始单纯形表是否最优
s.t
.34xx11
5x2 10 x
200 2 300
x1, x2 0
解:增加松弛变量 x , x , x , 将模型化为标准型:
3
4
5
Maxz 7x1 12x2
9x 1 4x 2 x 3
360
s
.t
.34xx
1 1
5x 2 10 x
2
x
200
4
x 300 5
x
1, x
2, x