单纯形法的灵敏度分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
b 50 50 250 27500
2
所以松弛变量在最终单
我们对b1进行灵敏度分析,因为在第一个约束方程中含有松弛变量 S1 , T -1
纯形表中的系数列(
1, 2,) 就是 B 的第一列。 0
x Bi 因为 d' 11 1 0 , d' 21 2 0 , X 1 50 , S 2 50 , 可以 Max | d ' i 1 0 50 d i1 ' x Bi 而 Min | d ' i 1 0 25 , 故有当 50 b 1 25 , 即 250 b b 1 325, 第一个 d i1 ' 约束条件的对偶价格不 变。
实际意义可以描述为:当设备台时数的对偶价格不变,都为每设备台 时数在250与325之间变化,则设备台时数的对偶价格不变,都为每台设备 台时50元。
12
对偶单纯形法
对偶单纯形法也是解决线性规划问题的一种方法。对偶单纯形法是在保持原 有问题的所有检验数都小于0(若目标最小化则所有检验数都大于0)的情况下,通 过迭代使得所有的约束都大于等于0,最后求得最优解。 简化计算是对偶单纯形法的优点,但是它在使用上有很大的局限,这主要是 大多数线性规划问题很难找到初始解使得其所有检验数都小于0(都大于0) 。但 是在灵敏度分析中,有时需要对偶单纯形法,这样可以简化处理。下面以前面例
zj 标值 “变差”而不是改进,故这时约束条件的对偶价格应取
值的相反数-j z
。
对于含有等于号的约束条件,其约束条件的对偶价格就和该约束方程的 人工变量有关了。其约束条件的对偶价格就等于此约束方程的人工变量的 值z j 。
7
下表给出了一个由最终单纯形表对于不同约束类型的对偶价格的取值。
约束条件 ≤ ≥
+ CK a’Kj 。要使最优解不变,只要当J
δj a' kj
δ j ΔC k a' kj 0, ΔC k a' kj δ j 当 a' kj 0时 , ΔC
k
, 这里
0;
当 a' kj 0时 , ΔC
k
, 这里
δj a' kj
0; Z k ΔC a' kk , 因为 X K 是基变量, δj a' kj
-1 -1 -1
如要使 X' 成为可行解,只要使上述等式的右边>0,就可求出 b k 的取值范围,也就是使得第K个约束条件的对偶价格不变的 bk的变化范围。 b d'
B
D
k
d '1 k d '2k ... d' mk
, 则 B
影子价格的取值
等于这个约束条件对应的松弛变量的 z j 值,即为 j 的相反数 等于这个约束条件对应的剩余变量的 z j 值,即为 j 的相反数 等于这个约束条件对应的人工变量的 z j 值,即为 j 的相反数
=
从对偶价格的定义,可以知道当对偶价格为正时它将改进目标函数的值,当对 偶价格为负时它将使得目标函数朝着与最优化相反的方向前进。 下面我们研究当右端项bj发生变化时,在什么范围内其对偶价格不变。由于bj
1 0 0 50 0
100 -50 250
2 .确定出基变量
, 在单纯形表中检查出基 计算所有对应的
变量 X k 所在行的各个函数
a kj ( j 1, 2 ,... n ), 如果都大于 基变量
0 则无
可行解,如果有负数,
j
, 求出其中最小值作为入
a kj 3.以 a kj 为主元 , 按照单纯形法进行迭代 运算 , 得到新表 , 本题以 a 23 为主元得到新表
的变化并不影响系数矩阵的迭代,故其最终单纯形表中的系数矩阵没有变化。由
此可见当bj变化时,要使原来的基不变得到的基本可行解仍然是可行解,也就是 所 求的基变量的值一定要大于0。所谓使其对偶价格不变的bj的变化范围,也就是使 其最优解的所有基变量不变,且所得的最优解仍然是可行的bj的变化范围。
8
当bj中的第k项bK 变成
13
1.确定出基变量,在常数列中找一个最小的负常量,把这个常量所在行作为出基变量
迭代次数
基变量
CB
X1 50
X2 100 0 0 1 100 0
S1 0 1 -2 0 0 -50
S2 0 0 1 0 50 0
S3 0 -1 1 1 50 -50
b
2
X1 S2 X2 ZJ CJ -ZJ
50 0 100
当Ck变成Ck+ Ck时,最终单纯形表中约束方程的增广矩阵不变,但是基变量的目 标函数的系数CB变了,则ZJ(J=1,2,…..,N)一般也变了,不妨设CB=(CB1, CB2。。。, Ck, …, CBm),当CB变成=(CB1, CB2。。。,Ck+ Ck,…,CBm),则: T
ZJ=(CB1, CB2。。。, Ck,…,CBm)(a’1j , a’2j ,…, a’Kj ,…, a’mj)
T
Z’J=(CB1, CB2。。。, Ck+ Ck,…,CBm)(a’1j , a’2j ,…, a’Kj ,…, a’mj)
= ZJ + Ck a’Kj
1
根据上式可知 检验数
J (J=1,2,…..,M)变成了
J
’J,有
K时, ’J <或=0
’ J=CJ-Z’J=
δj a' kj δj a' kj
中从0变到Z3=50时,也就是只要当前余下一台时数设备从不能获利变成获利 50元时,譬如有人愿意出50元买一个设备时,我们就不必为生产Ι、П产品
而使用完所有的设备台时了,这说明了设备台时数的对偶价格就是Z3=50元。
对于含有大于等于号的约束条件,添加剩余变量化为标准型。这时 这个约束条件的对偶价格就和这个剩余变量的 z j有关了。这将使得最优目
单纯形表的灵敏度分析
一、目标函数中变量C 系数灵敏度分析
k
1.在最终的单纯形表里,X k是非基变量 由于约束方程系数增广矩阵在迭代中只是其本身的行的初等变换与Ck没有任何关系, 所以当Ck变成Ck+ Ck时,在最终单纯形表中其系数的增广矩阵不变,又因为Xk是非 基变量,所以基变量的目标函数的系数不变,即CB不变,可知Zk也不变,只是Ck变 成了Ck+ Ck。这时 K= Ck-Zk就变成了Ck+ Ck- Zk= K+ Ck。要使原来的最优 解 仍为最优解,只要 K+ Ck≤0即可,也就是Ck的增量 Ck≤- K。 2.在最终的单纯形表中, X k是基变量
b -1 b b ... b
k k k
1k
d'
2k
d' 3k d'
k
mk
新的最优解为
X' B 有 X' B ,
X ' B1 X 'B2 ... X' Bm
b k d' 1k b k d' 2k ... b d' k mk
满足 ΔC
k
,所以可知
ΔC k 的变化范围为
δj M ax a' kj 0 ΔC a' kj
k
δj M in a' kj 0 a' kj
2
例1: 目标函数:Max z=50X1+100X2 约束条件:X1+X2≤300 2X1+X2≤400 X2≤250 X1,X2≥0 最优单纯形表如下 迭代次数 基变量 X1 S2 X2 ZJ CJ -ZJ CB 50 0 100 X1 50 1 0 0 50 0 X2 100 0 0 1 100 0 S1 0 1 -2 0 50 -50 S2 0 0 1 0 0 0 S3 0 -1 1 1 50 -50
当 j k 时, δ' k C k ΔC
k
Z k ' C k ΔC
k
k
知 δ k 0, a' kk 1,可知 δ' k 0。 要使得最优解不变,对 δj a' kj 于除了 a' kk 以外的所有大于 0的 a' kj ,满足 ΔC
k
,所有小于
0的 a' kj
-50 0
从上表我们可以发现各个松弛变量的值,正好等于相应变量的对偶价格。在 最
优解中S2 =50是基变量,即为,原料A有50千克没用完,再增加A原料是不会增 加利润的, A的对偶价格为0。对于任何为基变量的松弛变量所对应的约束条件的 对偶价格为0。
6
可以看出,上题中对于设备台时数约束来说,当其松弛变量在目标函数
10
要 使 X ' B 0 也 就 是 各 个 分 量 均 不 小 于 0, 用 一 个 数 学 式 子 来 表 示 b k的 允许变化范围是 x M ax B i | d 'ik 0 b k M in d 'ik x Bi | d 'ik 0 d 'ik
4
迭代次数
基变量 X1 S2 X2 ZJ
CB C’1 0 100
X1 50 1 0 0 C’1
X2 100 0 0 1 100
S1 0 1 -2 0 C’1
S2 0 0 1 0 0
S3 0 -1 1 1 -C’1+100
b 50 50 250
2
CJ -ZJ
0
0
- C’1
0
C’1-100
从δ 3≤0,得到-c1’≤0,即c1’≥0,并且从δ 5≤0,得 到c1’≤100。 那么如果c1’取值超出这个范围,必然存在一个检验数 大于0,我们可以通过迭代来得到新的最优解。
j ' max a 1Biblioteka Baiduj 0 50 a '1 j
-3 a 13
50 1
50
,有 min
' 1j
j
a
' 1j
a
0 50
。同样有
。这样可以知道当-50≤Δ
c1≤50时,也就是x1
的 目标函数c1’在0≤c1’≤100时最优解不变。 在最终的单纯形表中,用C’1代替原来的C1=50,计算得表
3
b 50 50 250 27500
2
我们先对非基变量S1的目标函数的系数C3进行灵敏度分析。 这里δ3=-50,所以当c3的增量Δ c3≤50,最优解不变。 再对基变量x1的目标函数的系数c1进行灵敏度分析。 在a11’,a12’,a13’,a14’,a15’中,除了知道a11’和 a13’大于 0, a15’小于0,可知
14
下面我们仍以例1在最终单纯形表上对bj 进行灵敏度分析。 最终单纯形表如下所示:
迭代次数 基变量 X1 S2 X2 ZJ CJ -ZJ CB 50 0 100 X1 50 1 0 0 50 0 X2 100 0 0 1 100 0 S1 0 1 -2 0 50 -50 S2 0 0 1 0 0 0 S3 0 -1 1 1 50 -50
5
二、约束方程中常数项的灵敏度分析
迭代次数 基变量 CB X1 50 X2 100 0 0 1 100 0 S1 0 1 -2 0 50 S2 0 0 1 0 0 S3 0 -1 1 1 50 -50 50 50 250 27500 b
2
X1 S2 X2 ZJ CJ -ZJ
50 0 100
1 0 0 50 0
一为例。
上节分析中已知当250≤b’1≤325时第一个约束条件的对偶价格不变,现在 b’1=300 变成b’1=350,请问这时第一个约束方程的对偶价格应为多少呢? 解:求出在第二次迭代表上的常数列
Xb Xb
'
50 1 B b 50 250
100 b1 2 b 1 50 。带入第二次迭代表 250 0
bk bk
时,也就是原来的初始单
纯形表中的b向量变成了b’向量
0 0 ... 令 b bk ... 0 则有 b ' b b
9
这样在最终单纯形表中基变量XB的解就变成了
X 'B B .(b b ) B b B b 。
b 50 50 250 27500
2
所以松弛变量在最终单
我们对b1进行灵敏度分析,因为在第一个约束方程中含有松弛变量 S1 , T -1
纯形表中的系数列(
1, 2,) 就是 B 的第一列。 0
x Bi 因为 d' 11 1 0 , d' 21 2 0 , X 1 50 , S 2 50 , 可以 Max | d ' i 1 0 50 d i1 ' x Bi 而 Min | d ' i 1 0 25 , 故有当 50 b 1 25 , 即 250 b b 1 325, 第一个 d i1 ' 约束条件的对偶价格不 变。
实际意义可以描述为:当设备台时数的对偶价格不变,都为每设备台 时数在250与325之间变化,则设备台时数的对偶价格不变,都为每台设备 台时50元。
12
对偶单纯形法
对偶单纯形法也是解决线性规划问题的一种方法。对偶单纯形法是在保持原 有问题的所有检验数都小于0(若目标最小化则所有检验数都大于0)的情况下,通 过迭代使得所有的约束都大于等于0,最后求得最优解。 简化计算是对偶单纯形法的优点,但是它在使用上有很大的局限,这主要是 大多数线性规划问题很难找到初始解使得其所有检验数都小于0(都大于0) 。但 是在灵敏度分析中,有时需要对偶单纯形法,这样可以简化处理。下面以前面例
zj 标值 “变差”而不是改进,故这时约束条件的对偶价格应取
值的相反数-j z
。
对于含有等于号的约束条件,其约束条件的对偶价格就和该约束方程的 人工变量有关了。其约束条件的对偶价格就等于此约束方程的人工变量的 值z j 。
7
下表给出了一个由最终单纯形表对于不同约束类型的对偶价格的取值。
约束条件 ≤ ≥
+ CK a’Kj 。要使最优解不变,只要当J
δj a' kj
δ j ΔC k a' kj 0, ΔC k a' kj δ j 当 a' kj 0时 , ΔC
k
, 这里
0;
当 a' kj 0时 , ΔC
k
, 这里
δj a' kj
0; Z k ΔC a' kk , 因为 X K 是基变量, δj a' kj
-1 -1 -1
如要使 X' 成为可行解,只要使上述等式的右边>0,就可求出 b k 的取值范围,也就是使得第K个约束条件的对偶价格不变的 bk的变化范围。 b d'
B
D
k
d '1 k d '2k ... d' mk
, 则 B
影子价格的取值
等于这个约束条件对应的松弛变量的 z j 值,即为 j 的相反数 等于这个约束条件对应的剩余变量的 z j 值,即为 j 的相反数 等于这个约束条件对应的人工变量的 z j 值,即为 j 的相反数
=
从对偶价格的定义,可以知道当对偶价格为正时它将改进目标函数的值,当对 偶价格为负时它将使得目标函数朝着与最优化相反的方向前进。 下面我们研究当右端项bj发生变化时,在什么范围内其对偶价格不变。由于bj
1 0 0 50 0
100 -50 250
2 .确定出基变量
, 在单纯形表中检查出基 计算所有对应的
变量 X k 所在行的各个函数
a kj ( j 1, 2 ,... n ), 如果都大于 基变量
0 则无
可行解,如果有负数,
j
, 求出其中最小值作为入
a kj 3.以 a kj 为主元 , 按照单纯形法进行迭代 运算 , 得到新表 , 本题以 a 23 为主元得到新表
的变化并不影响系数矩阵的迭代,故其最终单纯形表中的系数矩阵没有变化。由
此可见当bj变化时,要使原来的基不变得到的基本可行解仍然是可行解,也就是 所 求的基变量的值一定要大于0。所谓使其对偶价格不变的bj的变化范围,也就是使 其最优解的所有基变量不变,且所得的最优解仍然是可行的bj的变化范围。
8
当bj中的第k项bK 变成
13
1.确定出基变量,在常数列中找一个最小的负常量,把这个常量所在行作为出基变量
迭代次数
基变量
CB
X1 50
X2 100 0 0 1 100 0
S1 0 1 -2 0 0 -50
S2 0 0 1 0 50 0
S3 0 -1 1 1 50 -50
b
2
X1 S2 X2 ZJ CJ -ZJ
50 0 100
当Ck变成Ck+ Ck时,最终单纯形表中约束方程的增广矩阵不变,但是基变量的目 标函数的系数CB变了,则ZJ(J=1,2,…..,N)一般也变了,不妨设CB=(CB1, CB2。。。, Ck, …, CBm),当CB变成=(CB1, CB2。。。,Ck+ Ck,…,CBm),则: T
ZJ=(CB1, CB2。。。, Ck,…,CBm)(a’1j , a’2j ,…, a’Kj ,…, a’mj)
T
Z’J=(CB1, CB2。。。, Ck+ Ck,…,CBm)(a’1j , a’2j ,…, a’Kj ,…, a’mj)
= ZJ + Ck a’Kj
1
根据上式可知 检验数
J (J=1,2,…..,M)变成了
J
’J,有
K时, ’J <或=0
’ J=CJ-Z’J=
δj a' kj δj a' kj
中从0变到Z3=50时,也就是只要当前余下一台时数设备从不能获利变成获利 50元时,譬如有人愿意出50元买一个设备时,我们就不必为生产Ι、П产品
而使用完所有的设备台时了,这说明了设备台时数的对偶价格就是Z3=50元。
对于含有大于等于号的约束条件,添加剩余变量化为标准型。这时 这个约束条件的对偶价格就和这个剩余变量的 z j有关了。这将使得最优目
单纯形表的灵敏度分析
一、目标函数中变量C 系数灵敏度分析
k
1.在最终的单纯形表里,X k是非基变量 由于约束方程系数增广矩阵在迭代中只是其本身的行的初等变换与Ck没有任何关系, 所以当Ck变成Ck+ Ck时,在最终单纯形表中其系数的增广矩阵不变,又因为Xk是非 基变量,所以基变量的目标函数的系数不变,即CB不变,可知Zk也不变,只是Ck变 成了Ck+ Ck。这时 K= Ck-Zk就变成了Ck+ Ck- Zk= K+ Ck。要使原来的最优 解 仍为最优解,只要 K+ Ck≤0即可,也就是Ck的增量 Ck≤- K。 2.在最终的单纯形表中, X k是基变量
b -1 b b ... b
k k k
1k
d'
2k
d' 3k d'
k
mk
新的最优解为
X' B 有 X' B ,
X ' B1 X 'B2 ... X' Bm
b k d' 1k b k d' 2k ... b d' k mk
满足 ΔC
k
,所以可知
ΔC k 的变化范围为
δj M ax a' kj 0 ΔC a' kj
k
δj M in a' kj 0 a' kj
2
例1: 目标函数:Max z=50X1+100X2 约束条件:X1+X2≤300 2X1+X2≤400 X2≤250 X1,X2≥0 最优单纯形表如下 迭代次数 基变量 X1 S2 X2 ZJ CJ -ZJ CB 50 0 100 X1 50 1 0 0 50 0 X2 100 0 0 1 100 0 S1 0 1 -2 0 50 -50 S2 0 0 1 0 0 0 S3 0 -1 1 1 50 -50
当 j k 时, δ' k C k ΔC
k
Z k ' C k ΔC
k
k
知 δ k 0, a' kk 1,可知 δ' k 0。 要使得最优解不变,对 δj a' kj 于除了 a' kk 以外的所有大于 0的 a' kj ,满足 ΔC
k
,所有小于
0的 a' kj
-50 0
从上表我们可以发现各个松弛变量的值,正好等于相应变量的对偶价格。在 最
优解中S2 =50是基变量,即为,原料A有50千克没用完,再增加A原料是不会增 加利润的, A的对偶价格为0。对于任何为基变量的松弛变量所对应的约束条件的 对偶价格为0。
6
可以看出,上题中对于设备台时数约束来说,当其松弛变量在目标函数
10
要 使 X ' B 0 也 就 是 各 个 分 量 均 不 小 于 0, 用 一 个 数 学 式 子 来 表 示 b k的 允许变化范围是 x M ax B i | d 'ik 0 b k M in d 'ik x Bi | d 'ik 0 d 'ik
4
迭代次数
基变量 X1 S2 X2 ZJ
CB C’1 0 100
X1 50 1 0 0 C’1
X2 100 0 0 1 100
S1 0 1 -2 0 C’1
S2 0 0 1 0 0
S3 0 -1 1 1 -C’1+100
b 50 50 250
2
CJ -ZJ
0
0
- C’1
0
C’1-100
从δ 3≤0,得到-c1’≤0,即c1’≥0,并且从δ 5≤0,得 到c1’≤100。 那么如果c1’取值超出这个范围,必然存在一个检验数 大于0,我们可以通过迭代来得到新的最优解。
j ' max a 1Biblioteka Baiduj 0 50 a '1 j
-3 a 13
50 1
50
,有 min
' 1j
j
a
' 1j
a
0 50
。同样有
。这样可以知道当-50≤Δ
c1≤50时,也就是x1
的 目标函数c1’在0≤c1’≤100时最优解不变。 在最终的单纯形表中,用C’1代替原来的C1=50,计算得表
3
b 50 50 250 27500
2
我们先对非基变量S1的目标函数的系数C3进行灵敏度分析。 这里δ3=-50,所以当c3的增量Δ c3≤50,最优解不变。 再对基变量x1的目标函数的系数c1进行灵敏度分析。 在a11’,a12’,a13’,a14’,a15’中,除了知道a11’和 a13’大于 0, a15’小于0,可知
14
下面我们仍以例1在最终单纯形表上对bj 进行灵敏度分析。 最终单纯形表如下所示:
迭代次数 基变量 X1 S2 X2 ZJ CJ -ZJ CB 50 0 100 X1 50 1 0 0 50 0 X2 100 0 0 1 100 0 S1 0 1 -2 0 50 -50 S2 0 0 1 0 0 0 S3 0 -1 1 1 50 -50
5
二、约束方程中常数项的灵敏度分析
迭代次数 基变量 CB X1 50 X2 100 0 0 1 100 0 S1 0 1 -2 0 50 S2 0 0 1 0 0 S3 0 -1 1 1 50 -50 50 50 250 27500 b
2
X1 S2 X2 ZJ CJ -ZJ
50 0 100
1 0 0 50 0
一为例。
上节分析中已知当250≤b’1≤325时第一个约束条件的对偶价格不变,现在 b’1=300 变成b’1=350,请问这时第一个约束方程的对偶价格应为多少呢? 解:求出在第二次迭代表上的常数列
Xb Xb
'
50 1 B b 50 250
100 b1 2 b 1 50 。带入第二次迭代表 250 0
bk bk
时,也就是原来的初始单
纯形表中的b向量变成了b’向量
0 0 ... 令 b bk ... 0 则有 b ' b b
9
这样在最终单纯形表中基变量XB的解就变成了
X 'B B .(b b ) B b B b 。