人工变量法和大M法
第3章09-人工变量法之两阶段法

第3章09人工变量法之两阶段法同学们大家好,今天我们继续来学习,人工变量法这一小节。
现在我们再来看第二个方法——两阶段法。
大M 法和两阶段法实际上各有优缺点,大M 法的原理很清晰,但是在用计算机求解时,对M 只能输入一个很大字长的数字,而模型的参数与M 有可能比较接近,从而可能会在计算过程中发生一些错误。
而两阶段法不需要设定大M ,不会发生这个问题,所以,计算机程序中一般都采用两阶段法。
两阶段法,顾名思义,就是把求解过程分成两个阶段进行。
第一个阶段,在原模型中,引入人工变量,使约束矩阵中有一个单位阵,同时,目标函数是求人工变量的和的最小值。
求解完之后,如果人工变量不取零,那么能证明原模型一定无可行解,反之,如果人工变量是都取零的,那么这个时候实际上也找到了原模型的一个可行基,然后再进一步求出原模型的解。
下面我们通过例3-7进行介绍。
例3-7用两阶段法求解线性规划问题⎪⎪⎩⎪⎪⎨⎧=≥=+≥-+-≤+++-=3,2,1,093124st.3max 3232132131i x x x x x x x x x x x z i 对于这个问题,首先把它化成下面的标准型131234123523max 3421st.390,1,2,,5i z x x x x x x x x x x x x x i =-++++=⎧⎪-+--=⎪⎨+=⎪⎪≥=⎩ 它的约束矩阵中显然没有单位阵,所以,我们下面用两阶段法进行求解。
第一阶段,引入人工变量x 6和x 7,使得约束矩阵中有单位阵,同时,目标函数是求人工变量的和的最小值,也就是,先求解下面的线性规划模型。
67123412356237max 421st.390,1,2,,7j x x x x x x x x x x x x x x x j ω=--+++=⎧⎪-+--+=⎪⎨++=⎪⎪≥=⎩ 用单纯形表法对上面的模型进行求解,先写出A ,b ,C ,111100021101100310001A ⎛⎫ ⎪=--- ⎪ ⎪⎝⎭,419b ⎛⎫⎪= ⎪ ⎪⎝⎭,()0000011C =--选取初始基B=(P 4,P 6,P 7)=E ,基变量为X B =(x 4,x 6,x 7)T ,C B =(0,-1,-1),467B =P P P =E (,,),TB 467X =x x x (,,),BC =0-1-1(,,)而B -1A ,B -1b ,C-C B B -1A ,-C B B -1b 也都可以求出1B A A -=,1B b b -=,()()111110000000011(0,1,1)21101100310001 2400100B C C B A -⎛⎫ ⎪-=-------- ⎪⎪⎝⎭=--14(0,1,1)1109B C B b -⎛⎫ ⎪-=---= ⎪ ⎪⎝⎭这时就得到了下面的初始单纯形表。
3.12 4单纯形法(人工变量法)3.12

一个x12方x程12把中x第去2x二2个x方5x程3直接x加4
4 6
x1 , x一2个, 变x3量,(人x4工, 变x量5 ) 0
规范化
考虑一般问题:
bi > 0 , i = 1 , … , m
Max Z = c1 x1 + c2 x2 + … + cn xn a11 x1 + a12 x2 + …+ a1n xn = b1 a21 x1 + a22 x2 + …+ a2n xn = b2 … am1 x1+ am2 x2+…+ amn xn = bm
jm 1 j j
i1 i
i
j m 1 ij j
m
n
m
c b (c c a )x
i1 n i i
jm 1
j
i 1 i ij
j
n
Z (c z )x
0
j 1
j
j
j
n
Z C jx
0
j 1
j
其 Z m c 中 b ,C j c z ,z m c a
一、单纯形法的基本原理
(一)基本变量: 如果变量xj在某一方程中系数为1,而在其它一切方
程中的系数为零,则称xj为该方程中的基本变量。否则 为非基本变量。 (二)基本解:
在典型方程中,设非基本变量为零,求解基本变量 得到的解,称为基本解 。 (三)基本可行解:
基本变量为非负的一组基本解称为基本可行解 。
(2)最优解判别 如果任何一个非基变量的值增加都不能
使目标函数值增加,即所有检验数非正,则 当前的基本可行解就是最优解,计算结束。
单纯形法-人工变量法

max z=3x1+4x2 x1 +x2 40
2x1+x260 x1-x2 =0 x1 ,x2 0
cj →
CB XB b 0 x3 40 0 x4 60 -M x5 0
cj- zj
0 x3 40 0 x4 60 3 x1 0
cj- zj 4 x2 20 0 x4 0 3 x1 20
3 40
x1 x2 x3 1 11 2 10 [1] -1 0
例 max z=3x1+5x2 3x1 +5x2 15 2x1 + x2 5 2x1+2x2 11 x1 ,x2 0
CB XB b
0 x3 15 0 x4 5
0 x5 11
cj-zj
5 x2 3 0 x4 2 0 x5 5
cj-zj
3 50 00 x1 x2 x3 x4 x5 3 [5 ] 1 0 0 2 1010 2 2001 3 5000 3/5 1 1/5 0 0 7/5 0 -1/5 1 0 4/5 0 -2/5 0 1
4 2
x1 x1
x2
2
x3 x3
x5 x6 3 x7 1
x1 , , x7 0
这时,初始基和初始基可行解很明显。X(0)=(0,0,0, 11,0,3,1)T不满足原来的约束条件。如何使得可从 X(0)开始,经迭代逐步得到x6=0,x7=0 的基可行解, 从而求得问题的最优解,有两种方法:
• 两种方法
– 大M法 – 二阶段法
约束方程为“>=”或“=”的情形(加人工变量)
标准型:
min z =-3x1+x2+x3
x1 2 x2 x3 11
1-5 单纯形法的进一步讨论

大M法
在一个线性规划问题的约束条件中加入人 工变量后, 工变量后 , 要求人工变量对目标函数的取 值无影响, 为此可取人工变量在目标函数 值无影响 , 中的系数为-M(M为非常大的正数 ,这样目 为非常大的正数), 中的系数为 为非常大的正数 标函数要实现最大化, 人工变量只能取零, 标函数要实现最大化 , 人工变量只能取零 , 因此必须把人工变量从基变量中换出, 因此必须把人工变量从基变量中换出 , 否 则目标函数就不可能实现最大化。 则目标函数就不可能实现最大化。
两阶段法的算法流程图
MaxZ=-3x1+x3 x1+ x2+ x3≤4 -2x1+ x2- x3≥1 3x2+x3=9 xi ≥0,j=1,2,3
求解辅助问题,得到辅助 问题的最优解 引进人工变量x6,x7,构造辅助 问题,辅助问题的目标函数为 所有人工变量之和的极小化
MaxW=-x6-x7 x1+ x2+ x3+x4 =4 -2x1+ x2-x3 -x5+x6 =1 3x2+x3 +x7=9 xi ≥0,j=1,…,7
X B X = 同理将 写成分块矩阵 同理将C写成分块矩阵 (CB,CN), 写成分块矩阵C=( X N
CB=(C1,C2,…,Cm), CN=(Cm+1Cm+2,…,cn) 则AX=b可写成 , 可写成
X B (B, ) = BX B + NXN = b N X N
CB 0 0 -3 0 0 1
bi 0 3 1 0 5/2 3/2
θ 9 3/2
3/2 x3入,x1出 -1/2 -1/4 3/4 -3/4
所以:X*=(x2,x3,x4)T=(5/2,3/2,0)T Z*=3/2 所以:
管理运筹学-复习整理

一线性规划图解法1.线性规划的标准形式:(1)目标函数最大;约束条件等式;决策变量非负(x≥0);资源限量非负(b≥0)。
(2)图解法两个变量系数C1、C2,斜率k=-(C1/C2)(3)图解法K≥0时,绝对值越大越靠近Y轴;K≤0时,绝对值越大越靠近Y轴。
(4)阴影区:无论斜率为正或负,小于的部分阴影区都在线的下方。
二单纯形法1.大M法(1)加入人工变量-Mx i…,M无穷大。
(2)最后将人工变量x i替换出去,且σ≤0.2.两阶段法(1)第一阶段:目标函数为max z′=−x i…,得到最终表。
(2)第二阶段:目标函数替换为原目标函数,在最终表里继续计算σ,直到都小于等于0。
3.单纯表特殊情况的解判断(1)最优解中人工变量大于0,线性规划无解。
(2)某次迭代过程,表中有一个σ>0,且该列系数向量都小于等于0,线性规划无界。
(因为比较比值大小时都是负的)。
(3)某个非基变量σ=0,无穷解。
(4)退化问题:相同的比值,选择下标大者离基。
σk相同,任选一个入基。
4.初等行变换✓某一行(列),乘以一个非零倍数。
✓某一行(列),乘以一个非零倍数,加到另一行(列)。
✓某两行(列),互换。
三单纯形法灵敏度分析1.对偶问题原问题:max z=cx对偶问题:min f=b T yAx≤b A T y≥c TX≥0 y≥0(1)原问题统一为以上标准型,再进行下一步。
(2)原问题第i个约束条件等号,对偶问题i个决策变量无约束。
(3)原问题第i个决策变量无约束,对偶问题第i个约束条件等号。
(4)原问题的对偶价格为对偶问题的最优解。
(参考习题册第7、19题)(5)对偶价格:常数项增加1单位,目标函数值改进的数量。
(6)影子价格:常数项增加1单位,目标函数值增加的数量。
2.灵敏度分析(1)目标函数变量系数C k:将C k直接代入最终表,判断σ是否小于0。
(2)约束方程常数项b:利用如下公式计算新的最终表中b值。
判断b是否非负。
运筹学5人工变量及其处理方法

min w = x6 + x7
max w' = − x6 − x7
= 11 x1 − 2 x2 + x3 + x4 − 4 x + x + 2 x − x5 + x6 =3 1 2 3 s.t. + x3 + x7 = 1 − 2 x1 x j ≥ 0 ( j = 1,2,3L7)
计算机计算时,必须对 给出一个具体数值 给出一个具体数值, 计算机计算时,必须对M给出一个具体数值,通常 计算时 取比原问题中最大数据高 最大数据高1~2个数量级的数值。并视 个数量级的数值 取比原问题中最大数据高 个数量级的数值。 求解情况对M作适当调节 作适当调节。 求解情况对 作适当调节。
例:用大M法求解LP 求解LP
两阶段法的第一阶段求解的目的: 两阶段法的第一阶段求解的目的: 目的
1.判断原LP有无可行解。 判断原 有无可行解 有无可行解。 判断 2.若有,则可得原LP的一个初始基本可行解,再 若有,则可得原 的一个初始基本可行解, 的一个初始基本可行解 若有 对原LP进行第二阶段的计算 进行第二阶段的计算。 对原 进行第二阶段的计算。
初始可 行基
B
(0)
= ( p4
p6
p7 ) = I 3
初始基本 可行解
(0
0 0 11 0 3 1)
T
初始单纯形表
[ ]
11 3 2 1
[ ]
/ 1 /
0
人工变量x 已从基变量中换出。 人工变量 6,x7已从基变量中换出。
第二阶段: 第二阶段:
x1 − 2 x2 + x3 + x4 − 4 x + x + 2 x − x5 1 2 3 s.t. + x3 − 2 x1 x j ≥ 0 ( j = 1,2,3L5)
初始可行基的求法——人工变量法
2x1 x2 4 3x1 x2 1 x1, x2 0
max z1 2x1 3x2 M (x5 x6 )
2x1 x2 x3 x5 4
3x1 x2
x4 x6 1
x1,, x6 0
cj
CB XB
-M x5 -M x6
σj
-M x5
3
退化解出现的原因是模型中存在多余的 约束,使多个基可行解对应同一顶点。当出 现退化解时,有可能出现迭代计算的循环, 但可能性极其微小,为避免循环,可取下标 较小的变量换出。
8(4)先用大M法,再用两阶段法 求解LP问题:
min z x1 3x2 4x3 3x4
3x1 6x2 x3 2x4 15 6x1 3x2 2x3 x4 12 x1, x2 , x3 , x4 0
11
4x1 2x1
x2
2x3 x3
x5 x6 3 x7 1
x1,, x7 0
cj
0
0
0
0
0
1
1
CB
XB
b
x1
x2
x3
x4
x5
x6
x7
0
x4
11
1
-2
1
1
0
0
0
1
x6
3
-4
1
2
0
-1
1
0
1
x7
1
-2
0 [1] 0
0
0
1
σj
6
-1
-3
0
1
0
0
0
x4
10
3
-2
0
1
0
0
1-5 单纯形法的进一步讨论
B 1b B 1NX N
令非基变量XN=0,XB=B—1b,由 B是 可行基的假设,则得到
基本可行解
X=(B-1b,0)T
将目标函数写成
Z
(CB
,
CN
)
X X
B N
CB X B
CN X N
CB (B1b B1NX N ) CN X N
CBB1b (CN CBB1N )) X N
MaxZ=-3x1+x3 x1+ x2+ x3≤4
-2x1+ x2- x3≥1 3x2+x3=9
xi ≥0,j=1,2,3
求解辅助问题,得到辅助 问题的最优解
引进人工变量x6,x7,构造辅助 问题,辅助问题的目标函数为
所有人工变量之和的极小化
MaxW=-x6-x7
x1+ x2+ x3+x4
=4
-2x1+ x2-x3 -x5+x6 =1
z zσ
XB … 0T …
xj cj - zj
… RHS … z0
XB xB I …
Yj
…b
基变量在目标函数中的系数等于0, 基变量在约束条件中的系数是一个单位矩阵
单纯形表的结构
注意: Z行中有m 个0,它们与基变量相对应。一般情况下,这m 个0分散在Z行的各列中,并与基变量相对应。
其余m行中有一个m阶单位矩阵I,其各列与基变量相对应。 一般情况下,组成I的各列分散在表的各列中,它们与基变 量相对应。
X1 1
0
a1
0
a2 a6
X2 0
1
1
0
-2
运筹学-6人工变量法
唯一最优解的判断:最优表中所有非基变量的检验数非零,则线 规划具有唯一最优解
多重最优解的判断:最优表中存在非基变量的检验数为零,则 线则性规划具有多重最优解.
无界解的判断: 某个λk>0且aik≤0(i=1,2,…,m)则线性规 划具有无界解
无可行解的判断:当用大M单纯形法计算得到最优解并且存 在Ri>0时,则表明原线性规划无可行解。 退化基本可行解的判断:存在某个基变量为零的基本可行解。
§1.6人工变量法
Ch1 Linear Programming
The Artificial Variable Method 2020年6月20日星期六 Page 3 of 8
3
2
-1
0
0
-M -M b
x1
x2
x3
x4
x5
-4
3
1
-1
0
1
-1
2
0
1
2
-2
1
0
0
3-2M 2+M -1+2M↑ -M
0
x6
10 x3
1
x1、x2、x3 0
§1.6人工变量法 The Artificial Variable Method
【解】首先将数学模型化为标准形式
Ch1 Linear Programming
2020年6月20日星期六 Page 2 of 8
max Z 3x1 2x2 x3
4x1 3x2 x3 x4 4
x1
x2
2x3
x5
10
2x1 2x2 x3 1
x j 0, j 1,2, ,5
式中x4,x5为松弛变量,x5可作为 一个基变量,第一、三约束中分 别加入人工变量,x6、,x7,目标 函数中加入―MR6―MR7一项,得 到人工变量单纯形法数学模型
§43 人工变量法
0
0
LPⅡ min z 3 x1 2 x2 x3 Mx6 Mx7
2 2 1 0 0 0 1
4 x1 3 x2 x3 x4 x6 4
x1
x2
2 x3
x5
10
2
x1
2 x2
x3
x.7
1
x j 0, j 1, , 7
3
2
0
0
1 2
3
得 LPⅠ 的基础可行解:
2 x 0
0
可行基: B1 ( p1 , p2 , p5 )
3 2
计算 :b00 和 b0i 的数据.
建立 LPⅠ对应基 B1 的单纯形表。
例2
用两阶段法解线性规划问题:
min S 4x1 3x3
0
LPⅡ
x1
x2 x4 3
x1
,
x2 ,
x3 ,
x4
0
min z x1 2x2 Mx5
1 2 1 0 1
A
1
0
0
1
0
x1 2x2 x3 x5 4
x1
x2
x4 1
x1
,
x2 ,
x3 ,
x4 ,
取初始可行基
B (P6 , P5 , P7 ) E cB (c6 , c5 , c7 ) ( M , 0, M ),
计算: CBb CB A C
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
一、大M法 这种方法就是在目标函数中加上一个惩罚因素M 作为人工变量的系数,其值可以无穷大,即
10
二、两阶段法 引进人工变量来求解的一个目标是在找到第一 个基可行解的同时去掉人工变量,因此我们可以考 虑第一阶段的目标是求函数g(x)的最小值.1、如果 在求得第一阶段最小值时能去掉人工变量(即人工 变量全部为非基变量),则可以此时的可行基进入第 二阶段,否则 2、由于有人工变量仍为基变量,则原LP问题就无 最优解. 第二阶段,在第一阶段已求得的可行基上,去掉约束中 的人工变量(因为人工变量全是非基变量),将基变 量去消原来的目标函数中的元,继续单纯形法求解.
7
初始单纯形表
常数 x1 x2 x3 x4 x5
f x4 x5
0 6 4
3 3 1
-1 -2 -2
-2 -3 3
-M 1 0
-M 0 1
8
用单纯形法迭代如下:
常数 f x4 x5 0 6 4 -6 x1 3 3 1 0 x2 -1 2 -2 -3 x3 -2 -3 1 1 x4 -10000 1 0 -10001 x5 -10000 0 1 -10000
1
化成标准形后为:
min f 10 x1 8 x 2 7 x 3 x4 6 2 x1 x 2 s .t x1 x 2 x 3 x5 4 x1 , x 2 , x 3 , x 4 , x 5 0
该问题的初始可行基不是一下就能看出的. 经观察,可知,如果在第一个式子加一个非负 变量x6,则可以和x3构成一个可行基.
2
min f 10 x1 8 x 2 7 x 3 x4 x6 6 2 x1 x 2 s .t x1 x 2 x 3 x5 4 x1 , x 2 , x 3 , x 4 , x 5 , x 6 0
3
这个在等式上增加的非负变量被称为人工变 量,由此得到的基被称为人造基.相应的基解就 称为人造基解.
x2 x3 1
用单纯形法继续求解,过程如下:
15
先消去目标函数中的基变量,就得到第一张单纯形表, 再从这张单纯形表继续.
常数 f 0 x1 3 x2 -1 x3 -2
x1
x3
3
1
1
0
- 2/3
-1 1/3
0
1
f
x1 x3
-7
3 1
0
1 0
-1 2/3
- 2/3 -1 1/3
0
0 1
16
至此,检验数全部非正,因此得原LP问题的最优 解 x=(3,0,1)T,目标函数的最大值为7.
14
从第一阶段的结果看,由于最优解的基变量里不 含人工变量,就可以去掉函数g和人工变量,以x1和 x3作为可行基来解原来的LP问题. 于是有
max s .t f 3 x1 x 2 2 x 3 2 3 x2 4 3
x1
3 x1 , x 2 , x 3 0
17
min f 10 x1 8 x 2 7 x 3
Mx 6
x4 x6 6 2 x1 x 2 s .t x1 x 2 x 3 x5 4 x1 , x 2 , x 3 , x 4 , x 5 , x 6 0
迭代的目标就是要去掉目标函数中的大M,否则由于 -M充分地小,目标函数就无法达到最优.
第一阶段,先解问题
12
min g x 4 x 5 6 3 x1 2 x 2 3 x 3 x 4 s .t x1 2 x 2 x 3 x5 4 x1 , x 2 , x 3 , x 4 , x 5 0
化为标准形,则为
max g x 4 x 5 6 3 x1 2 x 2 3 x 3 x 4 s .t x1 2 x 2 x 3 x5 4 x1 , x 2 , x 3 , x 4 , x 5 0
13
第一阶段迭代过程如下:
常数 -g x4 x5 -g x4 x5 -g x1 x5 -g x1 x3 6 4 10 6 4 2 2 2 0 3 1 x1 0 3 1 4 3 1 0 1 0 0 1 0 x2 0 2 -2 0 2 -2 -2 2/3 2/3 -2 2/3 0 - 2/3 -1 1/3 x3 0 -3 1 -2 -3 1 2 -1 2 0 0 1 1/6 - 1/6 x4 -1 1 0 0 1 0 -1 1/3 1/3 - 1/3 -1 x5 -1 0 1 0 0 1 0 0 1 -1 1/2 1/2
x1
x5 f x1 x3
2
2 -7 3 1
1
0 0 1 0
2/3
-2 2/3 -1 2/3 - 2/3 -1 1/3
-1
2 0 0 1
1/3
- 1/3 -10000 5/6 1/6 - 1/6
0
1 -10000 1/2 1/2 1/2
9
迭代到此,可以看到,所有的检验数非正,已 得问题的最优解,即当x1=3,x3=1,x2=x4=x5=0 时目标函数取最大,目标函数最大值为7. 因为人工变量全为0,即可将人工变量删去, 即得原问题的最优解为:x1=3, x2=0,x3=1 目标函数最大值为7. 注意,如果由大M法得到的最优解中含有人工 为基变量,则说明原LP问题无最优解. 另外,本例可以只在第一个线性约束加人工变 量x4,因为第二个线性约束有一个x3,系数为 正,且第一个线性约束无此变量.
1.4 单纯形法的进一步讨论
一、人工变量法 从前面的例子很容易看到,若LP问题的线性约束的 关系不全是’≤’,则第一个可行基就不那么好找 了.比如, 例7
min x 2 s .t x1 x 2 x 3 4 x1 , x 2 , x 3 0
11
例如对问题:
max f 3 x1 x 2 2 x 3 3 x1 2 x 2 3 x 3 6 s .t x1 2 x 2 x 3 4 x1 , x 2 , x 3 0
解 引入人工变量 x4和x5后,按两阶段来 解,则第一阶段先解如下问题.
5
具体做的时候,所有的人工变量前统一的一个大M.
• 例8 用大M法求解下 述LP问题
max
f 3 x1 x 2 2 x 3
3 x1 2 x 2 3 x 3 6 s .t x1 2 x 2 x 3 4 x1 , x 2 , x 3 0
6
解: 引进人工变量x4,x5,于是得下述问题
max f 3 x1 x 2 2 x 3 Mx 4 Mx 5 6 3 x1 2 x 2 3 x 3 x 4 s .t x1 2 x 2 x 3 x5 4 x1 , x 2 , x 3 , x 4 , x 5 0
用单纯形法来解,过程如下: