韩伯棠管理运筹学(第三版)-第五章-单纯形法

上传人:jian****018 文档编号:177564073 上传时间:2022-12-26 格式:PPT 页数:75 大小:1.86MB
收藏 版权申诉 举报 下载
韩伯棠管理运筹学(第三版)-第五章-单纯形法_第1页
第1页 / 共75页
韩伯棠管理运筹学(第三版)-第五章-单纯形法_第2页
第2页 / 共75页
韩伯棠管理运筹学(第三版)-第五章-单纯形法_第3页
第3页 / 共75页
资源描述:

《韩伯棠管理运筹学(第三版)-第五章-单纯形法》由会员分享,可在线阅读,更多相关《韩伯棠管理运筹学(第三版)-第五章-单纯形法(75页珍藏版)》请在装配图网上搜索。

1、此法是求解线性规划问题的一种有效方法此法是求解线性规划问题的一种有效方法 本章的学习内容:本章的学习内容:1、单纯形法的基本思路和原理、单纯形法的基本思路和原理2、单纯形法的表格形式、单纯形法的表格形式3、求目标函数值最小的问题的单纯形表解、求目标函数值最小的问题的单纯形表解法法4、几种特殊情况、几种特殊情况 图解法只能解决仅含有两个决策变量的线图解法只能解决仅含有两个决策变量的线性规划的问题,对多于两个决策变量的线性规性规划的问题,对多于两个决策变量的线性规划问题,图划问题,图 解法就显得无能为力了。在这一章解法就显得无能为力了。在这一章里将介绍由美国数学家丹捷格里将介绍由美国数学家丹捷格(

2、GB Dantgig)1947提出的,得到最广泛应用的线性规划的代提出的,得到最广泛应用的线性规划的代数算法数算法单纯形法,这恐怕是在运筹学发展单纯形法,这恐怕是在运筹学发展史上最辉煌的一笔,此算法是对运筹学算法的史上最辉煌的一笔,此算法是对运筹学算法的一次革命。在第三章所介绍的线性规划问题的一次革命。在第三章所介绍的线性规划问题的计算机解法就是基于单纯形法原理来编程的。计算机解法就是基于单纯形法原理来编程的。它可解决多个变量线性规划问题。在后来研究它可解决多个变量线性规划问题。在后来研究上还发明其它求解线性规划的方法上还发明其它求解线性规划的方法,如前苏联科如前苏联科学家发明的内点法、印度科

3、学家发明的学家发明的内点法、印度科学家发明的K算法算法等。等。单纯形法的基本思路:从可行域中某一个顶单纯形法的基本思路:从可行域中某一个顶点开始,判断此顶点是否是最优解,如不是则再点开始,判断此顶点是否是最优解,如不是则再找另一个使得其目标函数值更优的顶点,称之为找另一个使得其目标函数值更优的顶点,称之为迭代,再判断此点是否是最优解。直到找到一个迭代,再判断此点是否是最优解。直到找到一个顶点为其最优解,就是使得其目标函数值最优的顶点为其最优解,就是使得其目标函数值最优的解,或者能判断出线性规划问题无最优解为止解,或者能判断出线性规划问题无最优解为止。在这里,可行域的顶点已不再像图解法中那在这里

4、,可行域的顶点已不再像图解法中那样直接可见了。在单纯形法中的可行域的顶点叫样直接可见了。在单纯形法中的可行域的顶点叫做基本可行解,第一个找到的可行域的顶点叫做做基本可行解,第一个找到的可行域的顶点叫做初始基本可行解。下面通过第二章例初始基本可行解。下面通过第二章例1来介绍单来介绍单纯形法。纯形法。在第二章的例在第二章的例1中我们得到以下数学模型:中我们得到以下数学模型:目标函数:目标函数:max Z=50X1+100X2 约束条件:约束条件:X1+X2300,2 X1+X2400,X2250,X10,X20.加上松弛变量后得到如下标准型:加上松弛变量后得到如下标准型:目标函数:目标函数:max

5、 Z=50X1+100X2 约束条件:约束条件:X1+X2+S1=300,2X1+X2+S2=400,X2+S3=250,X1,X2,S1,S2,S30 其中其中pj为系数矩阵为系数矩阵A中第中第j列的向量。由列的向量。由于在于在A中存在一个不为零的三阶子式,中存在一个不为零的三阶子式,可知可知A的秩为的秩为3。因为。因为A的秩的秩m小于此方小于此方程组的变量的个数程组的变量的个数n,从线性代数的知,从线性代数的知识可知其有无数多组解。为了找到一个识可知其有无数多组解。为了找到一个初始基本可行解,先介绍一些线性规划初始基本可行解,先介绍一些线性规划的基本概念。的基本概念。10010010120

6、0111),(54321pppppA 基:已知基:已知A是约束条件的是约束条件的mn系数矩阵,系数矩阵,其秩为其秩为m。若。若B是是A中中mm阶非奇异子阶非奇异子矩阵矩阵(即可逆矩阵,即可逆矩阵,B0),则称,则称B是是线性规划问题中的一个基。也即任一线性规划问题中的一个基。也即任一m阶的可逆矩阵都可作为基。阶的可逆矩阵都可作为基。.0.3,100010001010012111 且行列式组成个线性无关系数列向量都由都可作为基与例中 基向量:基向量:基基B中的每一列即称为一个基向量。中的每一列即称为一个基向量。基基B中共有中共有m个基向量,在此例中对于基个基向量,在此例中对于基B来说,三个列向量

7、都是基向量,而且来说,三个列向量都是基向量,而且B只有只有这三个基向量。这三个基向量。非基向量:非基向量:在在A中除了基中除了基B之外的每一列称之之外的每一列称之为基为基B的非基向量。的非基向量。?BB什么的基向量和非基向量是和基121100010001010012111100100101200111A与基向量与基向量pi相应的变量相应的变量Xi叫叫基变量基变量,基,基变量有变量有m个,在此例题中个,在此例题中X1,X2,S1都是都是B1的基的基变量,而变量,而S1,S2,S3是是B2的基变量。的基变量。与非基向量与非基向量pj相应的变量相应的变量Xj叫叫非基变非基变量量,非基变量有,非基变量

8、有n-m个,在此例题中,个,在此例题中,S2,S3是是B1的非基变量。而的非基变量。而X1,X2是是B2的非基变量。的非基变量。基本解:基本解:由线性代数知识得:如果在约束方程组由线性代数知识得:如果在约束方程组系数矩阵中找到一个基,令这个基的非基变量为系数矩阵中找到一个基,令这个基的非基变量为零。再求解这个方程组就可得到唯一解了,这个零。再求解这个方程组就可得到唯一解了,这个解称为线性规划的解称为线性规划的基本解基本解。100100101200111),(s s s x x 5432132121pppppA 满足:满足:w最优解最优解:w满足目标函数:满足目标函数:max Z=50X1+10

9、0X2 的可行的可行解称为最优解。解称为最优解。w的解称为可行解(注意包括了非负)。的解称为可行解(注意包括了非负)。X1+X2+S1=3002X1+X2+S2=400X2+S3=250X1,X2,S1,S2,S30 由于在这个基本解中S1=-100,S3=-150,不满足该线性规划S10,S30的约束条件,显然不是问题的可行解。.,101001011s s x :213312变量的约束方程这时约束方程就变为基为零令这个基的非基变量中一个基在此例中找到例如sxBA .0,s0,x:-150,s-100,s400,x:21312的一基本解就得到此线性规划问题再加上非基变量组解求解得唯一基变量的一

10、X1+X2+S1=3002X1+X2+S2=400X2+S3=250X2+S1=300X2=400X2+S3=250 一个基本解可以是可行解,也可以不是可行解。一个基本解可以是可行解,也可以不是可行解。它们之间主要区别在于其所有变量的解是否满它们之间主要区别在于其所有变量的解是否满足非负条件。足非负条件。可行解、基本解、基本可行解和最优解的关系:可行解、基本解、基本可行解和最优解的关系:关于基本解,可行解和基本可行关于基本解,可行解和基本可行解的概念:解的概念:注意首先要把模型变成标准型再判断。注意首先要把模型变成标准型再判断。可行解:可行解:满足约束条件(包括非负性)的解称为可行满足约束条件

11、(包括非负性)的解称为可行解,但不一定含有基。解,但不一定含有基。基本解:基本解:找出一个基,令非基变量为找出一个基,令非基变量为0,再求出解,此,再求出解,此解不一定满足非负性。解不一定满足非负性。基本可行解:基本可行解:既满足非负性又满足基本解的解称为基本可既满足非负性又满足基本解的解称为基本可行解。行解。由于所有变量的解都大于等于零,可知此基本解是基本可行解。所以 .,100002011,s3 s1 x1 221为零非基变量令这个基的一个基在此例中选取再来找一个sxBA1000020111B0.25s0,s,100s,0 x0,20 x .0,s0,x:,100s,200 x0,25s:

12、250s 400,2x ,300 x.32121221133111解又得到此问题的一基本再加上非基变量求解得基变量的唯一解变量的约束方程这时约束方程就变为基s是可行基。由于在线性规划的标准型中要求由于在线性规划的标准型中要求bj都都大于等于零,如果找到一个基是单位矩大于等于零,如果找到一个基是单位矩阵,或者说一个基是由单位矩阵的各列阵,或者说一个基是由单位矩阵的各列向量所组成向量所组成(至于各列向量的前后顺序是至于各列向量的前后顺序是无关紧要的事无关紧要的事),例如例如:010001100 那么所求得的基本解一那么所求得的基本解一定是基本可行解,这个单位定是基本可行解,这个单位矩阵或由单位矩阵

13、各列向量矩阵或由单位矩阵各列向量组成的基一定是可行基,为组成的基一定是可行基,为什么呢?什么呢?加上非基变量加上非基变量X1=0,X2=0,就得到了该线性规划的一个基就得到了该线性规划的一个基本可行解:本可行解:X1=0,X2=0,S1=300,S2=400,S3=250.1000100012B 实际上这个基本可行解中的各个变量或等于某实际上这个基本可行解中的各个变量或等于某个个bj或等于零。在本例题中就找到了一个基是单位或等于零。在本例题中就找到了一个基是单位矩阵矩阵:令令B2的非基变量的非基变量x1,x2 为零,为零,则:则:X1+X2+S1=3002X1+X2+S2=400X2+S3=2

14、50S1=300S2=400S3=250100100101200111s s s x x32121A 像这样在第一次找可行基时,所找到的像这样在第一次找可行基时,所找到的基或为单位矩阵或为由单位矩阵的各列向基或为单位矩阵或为由单位矩阵的各列向量所组成,称之为初始可行基,其相应的量所组成,称之为初始可行基,其相应的基本可行解叫初始基本可行解。如果找不基本可行解叫初始基本可行解。如果找不到单位矩阵或由单位矩阵的各列向量组成到单位矩阵或由单位矩阵的各列向量组成的基作为初始可行基,我们将构造初始可的基作为初始可行基,我们将构造初始可行基,具体做法在以后详细讲述。行基,具体做法在以后详细讲述。这就是单纯

15、形法的第一步。这就是单纯形法的第一步。注解注解 1最优性检验的依据最优性检验的依据检验数检验数j 一般来说目标函数中既包括基变量,又包括非基变一般来说目标函数中既包括基变量,又包括非基变量。现在要求只用非基变量来表示目标函数,这只要在量。现在要求只用非基变量来表示目标函数,这只要在约束等式中通过移项等处理就可以用非基变量来表示基约束等式中通过移项等处理就可以用非基变量来表示基变量,然后将非基变量的表示式代入目标函数中,这样变量,然后将非基变量的表示式代入目标函数中,这样目标函数中只含有非基变量了,或者说目标函数中基变目标函数中只含有非基变量了,或者说目标函数中基变量的系数都为零了。量的系数都为

16、零了。此时目标函数中所有变量的系数称此时目标函数中所有变量的系数称为各变量的检验数,把变量为各变量的检验数,把变量Xj的检验数记为的检验数记为j;显然显然所有基变量的检验数必为零(因为基变量已被非基变量所有基变量的检验数必为零(因为基变量已被非基变量代替了)。代替了)。二、最优性检验二、最优性检验 则非基变量为则非基变量为X1,X2。由于初始可行解中。由于初始可行解中X1,X2 为非基变量,所以此目标函数已经用为非基变量,所以此目标函数已经用非基变量表示了,不需要用约束条件代换出非基变量表示了,不需要用约束条件代换出基变量了。这样可知基变量了。这样可知1=50,2=100,3=0,4=0,5=

17、0。100010001S3 S2 S1 2B在本例题中目标函数为在本例题中目标函数为50X1+100X2。如。如果取基变量为:果取基变量为:如果取基变量为如果取基变量为B1:100002011S S X 1311B 为求得检验数,通过移项等处理就可以用非基变为求得检验数,通过移项等处理就可以用非基变量来表示基变量,基变量为量来表示基变量,基变量为X1、S1、S3,则非基变量,则非基变量为为X2、S2。故在目标函数为。故在目标函数为Z=50X1+100X2中,只需将中,只需将X1换为换为X2及及S2的表达式即可。在约束条件的表达式即可。在约束条件X1+X2+S1=300,2X1+X2+S2=40

18、0,X2+S3=250只将二式只将二式变为变为 X1=200-X2/2-S2/2代入目标函数得:代入目标函数得:Z=1000+75X2-25S2,可知可知1=0,2=75,3=0,4=-25,5=0。其中,其中,z0为常数项,为常数项,J是所有非基变量的下标集。由是所有非基变量的下标集。由于所有的于所有的xj 的取值范围为大于等于零,当所有的的取值范围为大于等于零,当所有的j都小都小于等于零时,则于等于零时,则j Xj0,要使目标函数(,要使目标函数(1)式的值最)式的值最大,显然只有当大,显然只有当j Xj 为零才最大。即把这些为零才最大。即把这些Xj取为非取为非基变量基变量(即令这些即令这

19、些Xj的值为零的值为零),所求得的基本可行解就,所求得的基本可行解就使目标函数值最大为使目标函数值最大为z0。)1.(0Jjjjxzz2.最优解判别定理最优解判别定理下面来解释最优解判别定理。设用非基变量表示的目标下面来解释最优解判别定理。设用非基变量表示的目标函数为如下形式函数为如下形式 由于由于1=50,2=100都大于零,显然这个基本可行解都大于零,显然这个基本可行解不是最优解,实际上让不是最优解,实际上让X1,X2为非基变量为非基变量(即令其值为即令其值为0)是最失策的,是最失策的,X1,X2在大于等于零的范围内,在大于等于零的范围内,X1,X2不不管取什么值也比其取零值要好,就能使得

20、目标函数管取什么值也比其取零值要好,就能使得目标函数Z的的值比零更大。所以要找更好的基本可行解。值比零更大。所以要找更好的基本可行解。而对于第二种情况取基变量为而对于第二种情况取基变量为X1、S1、S3,检验数为,检验数为1=0,2=75,3=0,4=-25,5=0。也不是都小于等于。也不是都小于等于0,也也不是最优解。不是最优解。对于求目标函数最小值的情况,只需把上述的定理中对于求目标函数最小值的情况,只需把上述的定理中的的j0,改为,改为j0即可。至于如何来判断无最优解的方即可。至于如何来判断无最优解的方法将在后面用具体实例予以阐述。法将在后面用具体实例予以阐述。100010001S3 S

21、2 S1 2B在本例题中当取基变量为在本例题中当取基变量为 下面介绍如何进行基变换找到一个新的可行下面介绍如何进行基变换找到一个新的可行基,具体的做法是从可行基中换一个列向量,得基,具体的做法是从可行基中换一个列向量,得到一个新的可行基,使得求解得到的新的基本可到一个新的可行基,使得求解得到的新的基本可行解,使得其目标函数值更优。为了换基就要确行解,使得其目标函数值更优。为了换基就要确定换入变量与换出变量。定换入变量与换出变量。三、基变换三、基变换x1x2基变换的实质就基变换的实质就是从一个顶点换是从一个顶点换到另一个顶点。到另一个顶点。故我们要选基检验数大于故我们要选基检验数大于0的非基变量

22、换到基变量中去的非基变量换到基变量中去(称之为入基变量称之为入基变量)。若有两个以上的若有两个以上的j0,则为了使目标函数增加,则为了使目标函数增加得更大些,一般选其中的得更大些,一般选其中的j 最大者的非基变最大者的非基变量为入基变量,在本例题中量为入基变量,在本例题中2=100是检验数是检验数中最大的正数,故选中最大的正数,故选X2 为入基变量。为入基变量。求得基本解:求得基本解:X1=0,X2=300,S1=0,S2=100,S3=-50.显然这不是基本可行解,因为显然这不是基本可行解,因为S30),迭代迭代次数次数基基变变量量CB X1 X2 S1 S2 S3 b比值比值 bi/ai2

23、 50 100 0 0 0 0 S1 S2 S3 0 0 0 1 1 1 0 0 2 1 0 1 0 0 1 0 0 1 300 400 250 Zj j=Cj-Zj 0 0 0 0 0Z=0 50 100 0 0 0迭代迭代次数次数基基变变量量CB X1 X2 S1 S2 S3 b比值比值 bi/ai2 50 100 0 0 0 0 S1 S2 S3 0 0 0 1 1 1 0 0 2 1 0 1 0 0 1 0 0 1 300 400 250 Zj j=Cj-Zj 0 0 0 0 0Z=0 50 100 0 0 0想想,如何进行迭代?为什么选取X2作为入基变量?迭代迭代次数次数基基变变量量

24、CB X1 X2 S1 S2 S3 b比值比值 bi/ai2 50 100 0 0 0 0 S1 S2 S3 0 0 0 1 1 1 0 0 2 1 0 1 0 0 1 0 0 1 300 400 250300/1400/1250/1 Zj j=Cj-Zj 0 0 0 0 0Z=0 50 100 0 0 0你怎么知道你怎么知道S3 为出为出基变量啊?基变量啊?32=1叫主元?郁闷!叫主元?郁闷!迭代迭代次数次数基基变变量量CB X1 X2 S1 S2 S3 b 50 100 0 0 0 1 S1 S2 X2 0 0 100 0 1 0 0 1 250 Zj j=Cj-Zj 迭代迭代迭代迭代迭代

25、迭代迭代迭代迭代迭代3行(-1)+2行3行(-1)+1行150-15000201-11011 1 1 0 0 3002 1 0 1 0 4000 1 0 0 1 25050/1150/2比值比值 bi/ai201000010050000-100Z=25000 又从又从1=500可知这个基本可行解也不是最优解。可知这个基本可行解也不是最优解。从从j 我们知道我们知道1为最大的正数,可知为最大的正数,可知X1为入基变为入基变量,从此值可知量,从此值可知b1/a11=50为为bi/ai1中最小的正数,中最小的正数,可知可知S1为出基变量,为出基变量,a11为主元,这样我们可以进为主元,这样我们可以进

26、行第行第2次迭代后得下表:次迭代后得下表:迭代迭代次数次数基基变变量量CB X1 X2 S1 S2 S3 b比值比值 bi/ai2 50 100 0 0 0 2 X1 S2 X2 50 0 100 1 0 1 0 -1 0 0 -2 1 1 0 1 0 0 1 50 5025050/1150/2 Zj j=Cj-Zj 50 100 50 0 50 0 0 -50 0 -50Z=27500 从表中可知基本可行解为从表中可知基本可行解为X1=50,X2=250,S1=0,S2=50,S3=0,这时,这时Z=27500。由于检验。由于检验j 都都小于等于零,此基本可行解为最优解,小于等于零,此基本可

27、行解为最优解,Z=27500为最优目标函数值。为最优目标函数值。迭代迭代次数次数基基变变量量CB X1 X2 S1 S2 S3 b比值比值 bi/ai2 50 100 0 0 0 2 X1 S2 X2 50 0 100 1 0 1 0 -1 0 0 -2 1 1 0 1 0 0 1 50 5025050/1150/2 Zj j=Cj-Zj 50 100 50 0 50 0 0 -50 0 -50Z=27500 第二章例第二章例2的数学模型如下:的数学模型如下:目标函数目标函数:min f=2X1+3X2.约束条件:约束条件:X1+X2350,X1125,2X1+X2600,X1,X20 其约束

28、条件的标准型如下:其约束条件的标准型如下:X1+X2-S1=350,X1-S2=125,2X1+X2+S3=600,X1,X2,S1,S2,S30100120100100111S S S X X 321215.3 求目标函数值最小的线性规划问求目标函数值最小的线性规划问题的单纯形表解法题的单纯形表解法 至于目标函数,在标准型中并不一定要至于目标函数,在标准型中并不一定要求求最大值或最小值,但是为了使单纯形表求求最大值或最小值,但是为了使单纯形表解法有一个统一的解法,我们把所有求目标解法有一个统一的解法,我们把所有求目标函数最小值的问题化成求目标函数最大值的函数最小值的问题化成求目标函数最大值的

29、问题。具体做法只要把目标函数乘以问题。具体做法只要把目标函数乘以(-1),就把原来求目标函数最小值的问题化成了求就把原来求目标函数最小值的问题化成了求目标函数最大值的问题。本例题的目标函数目标函数最大值的问题。本例题的目标函数就化为了:就化为了:目标函数:目标函数:max (-f)=-2X1-X2 为了统一符号,不妨设为了统一符号,不妨设Z=-f,这样目标,这样目标函数就写成函数就写成:max Z=-2X1-3X2 在标准型的约束方程的系数矩阵里,找不到在标准型的约束方程的系数矩阵里,找不到3阶单位阵阶单位阵或单位向量或单位向量。注意负的单位向量与单位向量是不同的,。注意负的单位向量与单位向量

30、是不同的,用负的单位向量作基向量求得的基本解一般不满足非用负的单位向量作基向量求得的基本解一般不满足非负条件,不是可行解。这样我们就分别在第负条件,不是可行解。这样我们就分别在第1、第、第2个个约束方程中加上人工变量约束方程中加上人工变量a1,a2(aartificial的第一个字的第一个字母母),这样的约束条件就变成了如下的形式:,这样的约束条件就变成了如下的形式:X1+X2-S1+a1=350,X1-S2+a2=125,2X1+X2+S3=600,X1,X2,S1,S2,a1,a20 这样在约束方程的系数矩阵中就可找到单位向量这样在约束方程的系数矩阵中就可找到单位向量e3,e1,e2了了,

31、这时可知基变量为这时可知基变量为s3,a1,a2,初始基本可行解为,初始基本可行解为 X1=0,X2=0,S1=0,S2=0,S3=600,a1=350,a2=125.100120100100111S S S X X 32121M 人工变量的含义 人工变量是与松弛、剩余变量不同的。松弛变量、人工变量是与松弛、剩余变量不同的。松弛变量、剩余变量它们可以取零值,也可以取正值,而人工变剩余变量它们可以取零值,也可以取正值,而人工变量只能取零值。一旦人工变量取正值,则有人工变量量只能取零值。一旦人工变量取正值,则有人工变量的约束方程和原始的约束方程就不等价了,这样所求的约束方程和原始的约束方程就不等价

32、了,这样所求得的解就不是原线性规划的解了。得的解就不是原线性规划的解了。为了保证人工变量为了保证人工变量为零,规定人工变量在目标函数中的系数为为零,规定人工变量在目标函数中的系数为-M,这,这里里M为任意大的数。这样只要人工变量为任意大的数。这样只要人工变量0,所求的目,所求的目标函数最大值就是一个任意小的数。这样为了使目标标函数最大值就是一个任意小的数。这样为了使目标函数实现最大就必须把人工变量从基变量中换出。如函数实现最大就必须把人工变量从基变量中换出。如果一直到最后,人工变量仍不能从基变量中换出,即果一直到最后,人工变量仍不能从基变量中换出,即人工变量仍不为零,则该问题无可行解。人工变量

33、仍不为零,则该问题无可行解。这样此例的这样此例的目标函数就写为:目标函数就写为:max Z=-2X1-3X2-M a1-M a2 此例的数学模型如下所示:此例的数学模型如下所示:max z=-2X1-3X2-Ma1-Ma2 s.t X1+X2-S1+a1=350,X1-S2+a2=125,2X1+X2+S3=600,X1,X2,S1,S2,a1,a20 001001210010010100111a a S S S X X 2132121 像这样,为了构造初始可行基得到初始可行解,像这样,为了构造初始可行基得到初始可行解,把人工变量把人工变量“强行强行”地加到原来的约束方程中去,又地加到原来的约

34、束方程中去,又为了尽力地把人工变量从基变量中替换出来,就令人为了尽力地把人工变量从基变量中替换出来,就令人工变量在求最大值的目标函数里的系数为工变量在求最大值的目标函数里的系数为-M,这个方,这个方法叫做大法叫做大M法,法,M叫做罚因子。下面我们就用大叫做罚因子。下面我们就用大M法法来求解此题。来求解此题。迭代迭代次数次数基变基变量量CBx1x2s1s2s3a1a2 b比值比值-2-3000-M-M0 a1-M11-10010350350/1 a2-M100-1001125125/1 s3 02100100600600/2 Zj j=cj-zj-2M-MMM0-M-M-475M-2+2M-3+

35、M-M-M0001 a1-M01-1101-1225225 x1-2100-1001125 s30010210-2350350/2 Zjj=cj-zj-2-MM-M+20-MM-2-225M-2500-3+M-MM-2002-2M迭代迭代次数次数基变基变量量CBx1x2s1s2s3a1a2 b比值比值-2-3000-M-M2 a1-M01/2-10-1/2105050/(1/2)x1-211/2001/200300300/(1/2)s2 001/2011/20-1175175/(1/2)Zj j=cj-zj-2-M/2-1M0-M/2-1-M0-50M-6000M/2-2-M0M/2+10-M

36、3 x2-301-20-120100 x1-210101-10250 s2000111-1-1125 Zjj=cj-zj-2-3401-40-80000-40-1-M+4-M 在第在第2次迭代的检验数中次迭代的检验数中X2 的检验数为的检验数为M/2-2,S3 的检验数为的检验数为M/2+1,由于,由于M为任意大的数,我们为任意大的数,我们可以认为这两个数一样大,这时最好选决策变量而可以认为这两个数一样大,这时最好选决策变量而不是选松弛、剩余或人工变量为入基变量。这样就不是选松弛、剩余或人工变量为入基变量。这样就可能用较少次的迭代就能找到最优解,可能用较少次的迭代就能找到最优解,注意啊!注意啊

37、!从上表中可知其基本可行解:从上表中可知其基本可行解:X1=250,X2=100,S1=0,S2=125,S3=0,a1=0,a2=0是本例题的最优解,是本例题的最优解,其最优值为其最优值为 f=-z=-(-800)=800。因为第。因为第3次迭代的所次迭代的所有的检验数都小于等于零。有的检验数都小于等于零。如果没有单位矩阵,约束条件的等式如果没有单位矩阵,约束条件的等式也可设计人工变量也可设计人工变量 例如例如 Max Z=3X1-X2-X3 st X1-2X2+X311 -4X1+X2+2X33 -2X1+X3=1 X1,X2,X30 约束条件加上松驰和剩余变量后为:约束条件加上松驰和剩余

38、变量后为:X1-2X2+X3+S1=11 -4X1+X2+2X3-S2=3 -2X1+X3=1 X1,X2,X30 仍未有单位矩阵,在第二、三约束上分别加上人工变仍未有单位矩阵,在第二、三约束上分别加上人工变量量a1,a2得:得:Max Z=3X1-X2-X3-Ma1-Ma2 st X1-2X2+X3+S1=11 -4X1+X2+2X3-S2+a1=3 -2X1+X3+a2=1 X1,X2,X30 则基变量为则基变量为S1,a1,a2。这样就可进行。这样就可进行求解了。求解了。除了大除了大M法外,还有两阶段法(略)法外,还有两阶段法(略)一、无可行解一、无可行解.例例1求解下列线性规划问题求解

39、下列线性规划问题 目标函数:目标函数:max Z=20X1+30X2 约束条件:约束条件:3X1+10X2150,X130,X1+X240,X1,X20 解:在上述问题的约束条件中加入松弛变量,剩余解:在上述问题的约束条件中加入松弛变量,剩余变量,人工变量得到:变量,人工变量得到:目标函数:目标函数:max Z=20X1+30X2-Ma1 约束条件:约束条件:3X1+10X2+S1=150,X1+S2=30,X1+X2-S3+a1=40 X1,X2,S1,S2,S3,a1 05.4几种特殊情况几种特殊情况迭代迭代次数次数基基变变量量CBx1x2s1s2s3a1 b比值比值2030000-M0

40、s103101000150150/10 s2010010030 a1-M1100-114040/1 Zj j=cj-zj-M-M00M-M-40M20+M30+M00-M01 x2303/1011/100001515/(3/10)s201001003030/1 a1-M7/100-1/100-112525/(7/10)Zjj=cj-zj9-7M/10303+M/100M-M450-25M11+7M/100-3-M/100-M0 所有的检验数所有的检验数j 都小于等于零,可知最优解为:都小于等于零,可知最优解为:X1=30,X2=6,S1=0,S2=0,S3=0,a1=40,其目标函数值,其目标

41、函数值为为780-4M。把最优解。把最优解S3=0,a1=4 代入第代入第3个约束方程得个约束方程得X1+X2-S3+a1=40,即有:,即有:X1+X2=3640并不满足原来并不满足原来的约束条件的约束条件3:X1+X240,可知原线性规划问题无可行解,可知原线性规划问题无可行解,或者说其可行域为空集。或者说其可行域为空集。故这样只要线性规划的最优解故这样只要线性规划的最优解里有人工变量大于零,则此问题无可行解。里有人工变量大于零,则此问题无可行解。迭代迭代次数次数基变基变量量CBX1X2S1S2S3a1 b比值2030000-M2 X230011/10-3/10006X1201001003

42、0 a1-M00-1/10-7/10-114 Zj j=cj-zj20303+M/1011+7M/10M-M780-4M00-3-M/10-11-7M/10-M0 在求目标函数最大值的问题中,所谓无界解是指在求目标函数最大值的问题中,所谓无界解是指在约束条件下目标函数值可以取得任意的大。下面在约束条件下目标函数值可以取得任意的大。下面用单纯形表来求解第二章中的例子(用单纯形表来求解第二章中的例子(P15)。)。例例2、用单纯形表求:、用单纯形表求:目标函数:目标函数:max Z=X1+X2,约束条件:约束条件:X1-X21,-3X1+2X26,X10,X20 解:在上述的约束条件中加入松弛变量

43、,得标准型解:在上述的约束条件中加入松弛变量,得标准型如下:如下:max Z=X1+X2,S.t.X1-X2+S1=1,-3X1+2X2+S2=6,X10,X20二、无界解二、无界解 从第从第1次迭代的次迭代的2=2,得基本可行解,得基本可行解X1=1,X2=0,S1=0,S2=9不是最优解。如果进行第不是最优解。如果进行第2次迭代,那么选次迭代,那么选X2为入为入基变量,因为基变量,因为a12=-1,a22=-1,找不到大于零的找不到大于零的aij来确定来确定出基变量。碰到这种情况可以断定此问题是无界的,即出基变量。碰到这种情况可以断定此问题是无界的,即此目标函数值可以取到无限大。此目标函数

44、值可以取到无限大。迭代迭代次数次数基变基变量量CB X1 X2 S1 S2 b比值比值 1 1 0 00 S1 S200 1 -1 1 0161-3 2 0 1 Zj j=cj-zj 0 0 0 0Z=0 1 1 0 01 X1 S210 1 -1 1 019 0 -1 3 1 Zjj=cj-zj 1 -1 1 0 1 0 2 -1 0从从1次迭代的单纯形表中,得到约束方程次迭代的单纯形表中,得到约束方程:X1-X2+S1=1 -X2+3S1+S2=9 移项得:移项得:X1=1+X2-S1 S2=X2-3S1+9 ,不妨设,不妨设X2=M,S1=0,得一组解:得一组解:X1=M+1,X2=M,

45、S1=0,S2=M+9,显然这是此线性规划的可行解,此时目标函数显然这是此线性规划的可行解,此时目标函数:Z=X1+X2=M+1+M=2M+1 由于由于M可以是任意大的正数,可知此目标函数值无界。可以是任意大的正数,可知此目标函数值无界。例例3用单纯形表求解下面的线性规划问题。用单纯形表求解下面的线性规划问题。目标函数:目标函数:max Z=50X1+50X2,约束条件:约束条件:X1+X2300,2 X1+X2400,X2250,X10,X20.解:用单纯形表来解,引入松弛变量解:用单纯形表来解,引入松弛变量S1,S2,S3,得标得标准型:准型:max Z=50X1+50X2,X1+X2+S

46、1=300,2X1+X2+S2=400,X2+S3=250,X1,X2,S1,S2,S30,填入单纯形表得:填入单纯形表得:三、无穷多最优解三、无穷多最优解迭代次迭代次数数基变基变量量CB X1 X2 S1 S2 S3 b比值比值 50 50 0 0 00 S1 S2S3000 1 1 1 0 0300400250300/1400/1250/1 2 1 0 1 0 0 1 0 0 1 Zj j=cj-zj 0 0 0 0 00 50 50 0 0 01 S1 S2X20050 1 0 1 0 -15015025050/1150/2 2 0 0 1 -1 0 1 0 0 1 Zjj=cj-zj

47、0 50 0 0 50 12500 50 0 0 0 0 得最优解为得最优解为X1=50,X2=250,S1=0,S2=50,S3=0,最优值最优值为为15000。这个最优解是否是唯一的呢。这个最优解是否是唯一的呢?由于在第由于在第2次迭次迭代中除了基变量的检验数代中除了基变量的检验数1,2,4 等于零外,等于零外,非基变非基变量量s3 的检验数也等于零,这样可以断定此问题有无穷的检验数也等于零,这样可以断定此问题有无穷多最优解。多最优解。不妨把检验数也为零的非基变量选为入基不妨把检验数也为零的非基变量选为入基变量进行第变量进行第3次迭代。可求得另一个基本可行解:次迭代。可求得另一个基本可行解

48、:迭代迭代次数次数基基变变量量CB X1 X2 S1 S2 S3 b比值比值 50 50 0 0 02 X1 S2X250050 1 0 1 0 -1505025050/1250/1 0 0 -2 1 1 0 1 0 0 1 Zj j=cj-zj 50 50 50 0 015000 0 0 -50 0 0 从检验数可知此基本可行解从检验数可知此基本可行解X1=100,X2=200,S1=0,S2=0,S3=50,也是最优解。,也是最优解。迭代迭代次数次数基基变变量量CB X1 x2 s1 s2 s3 b比值比值 50 50 0 0 03 x1 s3x250050 1 0 -1 1 010050

49、200 0 0 -2 1 1 0 1 2 -1 0 Zj j=cj-zj 50 50 50 0 015000 0 0 -50 0 0 从图解法可知连接这两点的线段上的任一点都是此从图解法可知连接这两点的线段上的任一点都是此线性规划的最优解,不妨用向量线性规划的最优解,不妨用向量Z1,Z2表示上述两表示上述两个最优解即个最优解即Z1=(50,250,0,50,0),Z2=(100,200,0,0,50),则线段上的任一点,则线段上的任一点,即可表示为即可表示为Z1+(1-)Z2,其中,其中0l。如下图所。如下图所示:示:x2100400100300 x1Z2250200Z1X1+X2=3002X

50、1+X2=400目标函数目标函数Z=50 x1+50 x25000=50 x1+50 x2 在单纯形法计算过程中,确定出基变量时有时存在在单纯形法计算过程中,确定出基变量时有时存在两个以上相同的最小比值,这样在下一次迭代中就两个以上相同的最小比值,这样在下一次迭代中就有了一个或几个基变量等于零,这称之为退化。有了一个或几个基变量等于零,这称之为退化。例例4、用单纯形表求解下列线性规划问题。、用单纯形表求解下列线性规划问题。目标函数:目标函数:max Z=2X1+3X3/2 约束条件:约束条件:X1-X22,2X1+X34,X1+X2+X33,X1,X2,X30 加上松弛变量加上松弛变量S1,S

51、2,S3 化为标准型并填入单纯形表化为标准型并填入单纯形表得:得:四、退化问题四、退化问题迭代迭代次数次数基变基变量量CB X1 X2 X3 S1 S2 S3 b比比值值 2 0 3/2 0 0 00 S1 S2S3000 1 -1 0 1 0 02432/14/23/1 2 0 1 0 1 0 1 1 1 0 0 1 Zj j=cj-zj 0 0 0 0 0 00 2 0 3/2 0 0 01 X1 S2S3200 1 -1 0 1 0 02010/21/2 0 2 1 -2 1 0 0 2 1 -1 0 1 Zjj=cj-zj 2 -2 0 0 0 0 4 0 2 3/2 -2 0 0比值

52、相同比值相同迭代迭代次数次数基基变变量量CB X1 X2 X3 S1 S2 S3 b比值比值 2 0 3/2 0 0 02 X1 X2S3200 1 0 1/2 0 1/2 02012/(1/2)0/(1/2)0 1 1/2 -1 1/2 0 0 0 0 1 -1 1 Zj j=cj-zj 2 0 1 0 1 04 0 0 1/2 0 -1 0 可以看到在可以看到在0次迭代栏中,由于比值次迭代栏中,由于比值b1/a11=b2/a21=2为最小比为最小比值,导致在第值,导致在第1次迭代中出现了退化,基变量次迭代中出现了退化,基变量S2=0。又由于在。又由于在第第1次迭代次迭代 出现了退化,基变量

53、出现了退化,基变量S2=0,又导致第,又导致第2次迭代所取次迭代所取得的目标函数值并没有得到改善,仍然与第得的目标函数值并没有得到改善,仍然与第1次迭代的一样都次迭代的一样都等于等于4。像这样继续迭代而得不到目标函。像这样继续迭代而得不到目标函 数的改善,当然减低数的改善,当然减低了单纯形算法的效率,但一般来说还是可以得到最优解的。了单纯形算法的效率,但一般来说还是可以得到最优解的。像本题继续计算如下:像本题继续计算如下:迭代迭代次数次数基变基变量量CB X1 X2 X3 S1 S2 S3 b比比值值 2 0 3/2 0 0 03 X1 X3S323/20 1 -1 0 1 0 02012/1

54、1/1 0 2 1 -2 1 0 0 0 0 1 -1 1 Zj j=cj-zj 2 1 3/2 -1 3/2 04 0 -1 0 1 -3/2 0 X1 X3S123/20 1 -1 0 0 1 -1121 0 2 1 0 -1 2 0 0 0 1 -1 1 Zjj=cj-zj 2 1 3/2 0 1/2 1 5 0 -1 0 0 -1/2 -1 这样得到了最优解这样得到了最优解X1=2,X2=0,X3=2,S1=1,S2=0,S3=0,其最优值为,其最优值为5。但有时候当出现退化时,即使存在最但有时候当出现退化时,即使存在最优解,而迭代过程总是重复解的某一优解,而迭代过程总是重复解的某一部

55、分迭代过程,出现了计算过程的循部分迭代过程,出现了计算过程的循环,目标函数值总是不变,永远达不环,目标函数值总是不变,永远达不到最优解。到最优解。下面一个是由下面一个是由EBeale给出的循环给出的循环的例子。的例子。这个例题的确存在最优解,但经过这个例题的确存在最优解,但经过6次迭代次迭代后得到的单纯形表与第后得到的单纯形表与第0次单纯形表一样,而次单纯形表一样,而目标函数仍是零,这样迭代下去,永远达不目标函数仍是零,这样迭代下去,永远达不到最优解。为了避免这种现象,下面介绍一到最优解。为了避免这种现象,下面介绍一种做法种做法)7,.,2,1(,0 x ,1 x03211221 x09841

56、 x.212043-f min.5i6376542765417654ixxxxxxxxxtsxxxx例勃兰特法则的做法。勃兰特法则的做法。首先把松弛变量首先把松弛变量(剩余变量剩余变量)、人工变量都用、人工变量都用Xj 表示,一般松弛变量表示,一般松弛变量(剩余变量剩余变量)的下标号的下标号列在决策变量之后,人工变量的下标号列在列在决策变量之后,人工变量的下标号列在松弛变量松弛变量(剩余变量剩余变量)之后,在计算中遵守以之后,在计算中遵守以下两个规则:下两个规则:(1)在所有检验数大于零的非基变量中,选在所有检验数大于零的非基变量中,选一个下标最小的作为入基变量。一个下标最小的作为入基变量。(2)在存在两个和两个以上最小比值时,选在存在两个和两个以上最小比值时,选一个下标最小的基变量为出基变量。一个下标最小的基变量为出基变量。这样这样就一定能避免出现循环。就一定能避免出现循环。本章结束,谢谢本章结束,谢谢作业:作业:P97,1,5(1),7(1)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!