1、王中昭制作王中昭制作此法是求解线性规划问题的一种有效方法此法是求解线性规划问题的一种有效方法 本章的学习内容:本章的学习内容: 1、单纯形法的基本思路和原理、单纯形法的基本思路和原理2、单纯形法的表格形式、单纯形法的表格形式3、求目标函数值最小的问题的单纯形表解、求目标函数值最小的问题的单纯形表解法法4、几种特殊情况、几种特殊情况 王中昭制作王中昭制作 图解法只能解决仅含有两个决策变量的线图解法只能解决仅含有两个决策变量的线性规划的问题,对多于两个决策变量的线性规性规划的问题,对多于两个决策变量的线性规划问题,图划问题,图 解法就显得无能为力了。在这一章解法就显得无能为力了。在这一章里将介绍由
2、美国数学家丹捷格里将介绍由美国数学家丹捷格(GB Dantgig) 1947提出的,得到最广泛应用的线性规划的代提出的,得到最广泛应用的线性规划的代数算法数算法单纯形法,这恐怕是在运筹学发展单纯形法,这恐怕是在运筹学发展史上最辉煌的一笔,此算法是对运筹学算法的史上最辉煌的一笔,此算法是对运筹学算法的一次革命。在第三章所介绍的线性规划问题的一次革命。在第三章所介绍的线性规划问题的计算机解法就是基于单纯形法原理来编程的。计算机解法就是基于单纯形法原理来编程的。它可解决多个变量线性规划问题。在后来研究它可解决多个变量线性规划问题。在后来研究上还发明其它求解线性规划的方法上还发明其它求解线性规划的方法
3、,如前苏联科如前苏联科学家发明的内点法、印度科学家发明的学家发明的内点法、印度科学家发明的K算法算法等。等。王中昭制作王中昭制作 单纯形法的基本思路:从可行域中某一个顶单纯形法的基本思路:从可行域中某一个顶点开始,判断此顶点是否是最优解,如不是则再点开始,判断此顶点是否是最优解,如不是则再找另一个使得其目标函数值更优的顶点,称之为找另一个使得其目标函数值更优的顶点,称之为迭代,再判断此点是否是最优解。直到找到一个迭代,再判断此点是否是最优解。直到找到一个顶点为其最优解,就是使得其目标函数值最优的顶点为其最优解,就是使得其目标函数值最优的解,或者能判断出线性规划问题无最优解为止解,或者能判断出线
4、性规划问题无最优解为止 。 在这里,可行域的顶点已不再像图解法中那在这里,可行域的顶点已不再像图解法中那样直接可见了。在单纯形法中的可行域的顶点叫样直接可见了。在单纯形法中的可行域的顶点叫做基本可行解,第一个找到的可行域的顶点叫做做基本可行解,第一个找到的可行域的顶点叫做初始基本可行解。下面通过第二章例初始基本可行解。下面通过第二章例1来介绍单来介绍单纯形法。纯形法。王中昭制作王中昭制作 在第二章的例在第二章的例1中我们得到以下数学模型:中我们得到以下数学模型: 目标函数:目标函数: max Z=50X1+100X2 约束条件:约束条件: X1+X2300, 2 X1+X2400, X2250
5、, X10, X20. 加上松弛变量后得到如下标准型:加上松弛变量后得到如下标准型: 目标函数:目标函数:max 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,从线性代数的知,从线性代数的知识可知其有无数多组解。为了找到一个识可知其
6、有无数多组解。为了找到一个初始基本可行解,先介绍一些线性规划初始基本可行解,先介绍一些线性规划的基本概念。的基本概念。100100101200111),(54321pppppA王中昭制作王中昭制作 基:已知基:已知A是约束条件的是约束条件的mn系数矩阵,系数矩阵,其秩为其秩为m。若。若B是是A中中mm阶非奇异子阶非奇异子矩阵矩阵( 即可逆矩阵,即可逆矩阵,B0),则称,则称B是是线性规划问题中的一个基。也即任一线性规划问题中的一个基。也即任一m阶的可逆矩阵都可作为基。阶的可逆矩阵都可作为基。. 0.3,100010001010012111 且行列式组成个线性无关系数列向量都由都可作为基与例中王
7、中昭制作王中昭制作 基向量:基向量:基基B中的每一列即称为一个基向量。中的每一列即称为一个基向量。 基基B中共有中共有m个基向量,在此例中对于基个基向量,在此例中对于基B来说,三个列向量都是基向量,而且来说,三个列向量都是基向量,而且B只有只有这三个基向量。这三个基向量。 非基向量:非基向量:在在A中除了基中除了基B之外的每一列称之之外的每一列称之为基为基B的非基向量。的非基向量。?BB什么的基向量和非基向量是和基121100010001010012111100100101200111A王中昭制作王中昭制作与基向量与基向量pi相应的变量相应的变量Xi叫叫基变量基变量,基,基变量有变量有m个,在
8、此例题中个,在此例题中X1,X2,S1都是都是B1的基的基变量,而变量,而S1,S2,S3是是B2的基变量。的基变量。 与非基向量与非基向量pj相应的变量相应的变量Xj叫叫非基变非基变量量,非基变量有,非基变量有n-m个,在此例题中,个,在此例题中,S2,S3是是B1的非基变量。而的非基变量。而X1,X2是是B2的非基变量。的非基变量。 基本解:基本解:由线性代数知识得:如果在约束方程组由线性代数知识得:如果在约束方程组系数矩阵中找到一个基,令这个基的非基变量为系数矩阵中找到一个基,令这个基的非基变量为零。再求解这个方程组就可得到唯一解了,这个零。再求解这个方程组就可得到唯一解了,这个解称为线
9、性规划的解称为线性规划的基本解基本解。100100101200111),(s s s x x 5432132121pppppA王中昭制作王中昭制作 满足:满足:最优解最优解:满足目标函数:满足目标函数:max Z=50X1+100X2 的可行的可行解称为最优解。解称为最优解。的解称为可行解(注意包括了非负)。的解称为可行解(注意包括了非负)。X1+X2+S1=3002X1+X2+S2=400X2+S3=250X1,X2,S1,S2,S30王中昭制作王中昭制作 由于在这个基本解中S1= -100,S3=- 150,不满足该线性规划S10,S30的约束条件,显然不是问题的可行解。 . .,1010
10、01011s s x : 213312变量的约束方程这时约束方程就变为基为零令这个基的非基变量中一个基在此例中找到例如sxBA .0,s0,x:-150,s-100,s400,x: 21312的一基本解就得到此线性规划问题再加上非基变量组解求解得唯一基变量的一X1+X2+S1=3002X1+X2+S2=400X2+S3=250X2+S1=300X2=400X2+S3=250王中昭制作王中昭制作 一个基本解可以是可行解,也可以不是可行解。一个基本解可以是可行解,也可以不是可行解。它们之间主要区别在于其所有变量的解是否满它们之间主要区别在于其所有变量的解是否满足非负条件。足非负条件。可行解、基本解
11、、基本可行解和最优解的关系:可行解、基本解、基本可行解和最优解的关系:王中昭制作王中昭制作关于基本解,可行解和基本可行关于基本解,可行解和基本可行解的概念:解的概念: 注意首先要把模型变成标准型再判断。注意首先要把模型变成标准型再判断。 可行解:可行解: 满足约束条件(包括非负性)的解称为可行满足约束条件(包括非负性)的解称为可行解,但不一定含有基。解,但不一定含有基。 基本解:基本解: 找出一个基,令非基变量为找出一个基,令非基变量为0,再求出解,此,再求出解,此解不一定满足非负性。解不一定满足非负性。 基本可行解:基本可行解: 既满足非负性又满足基本解的解称为基本可既满足非负性又满足基本解
12、的解称为基本可行解。行解。王中昭制作王中昭制作 由于所有变量的解都大于等于零,可知此基本解是基本可行解。所以 .,100002011, s3 s1 x1 221为零非基变量令这个基的一个基在此例中选取再来找一个sxBA1000020111B0.25s0,s ,100s , 0 x0,20 x .0,s0,x:,100s ,200 x0,25s :250s 400,2x , 300 x . 32121221133111解又得到此问题的一基本再加上非基变量求解得基变量的唯一解变量的约束方程这时约束方程就变为基s是可行基。王中昭制作王中昭制作 王中昭制作王中昭制作王中昭制作王中昭制作 由于在线性规划
13、的标准型中要求由于在线性规划的标准型中要求bj都都大于等于零,如果找到一个基是单位矩大于等于零,如果找到一个基是单位矩阵,或者说一个基是由单位矩阵的各列阵,或者说一个基是由单位矩阵的各列向量所组成向量所组成(至于各列向量的前后顺序是至于各列向量的前后顺序是无关紧要的事无关紧要的事), 例如例如 :010001100 那么所求得的基本解一那么所求得的基本解一定是基本可行解,这个单位定是基本可行解,这个单位矩阵或由单位矩阵各列向量矩阵或由单位矩阵各列向量组成的基一定是可行基,为组成的基一定是可行基,为什么呢?什么呢?王中昭制作王中昭制作 加上非基变量加上非基变量X1=0,X2=0,就得到了该线性规
14、划的一个基就得到了该线性规划的一个基本可行解:本可行解:X1=0,X2=0,S1=300, S2=400,S3=250.1000100012B 实际上这个基本可行解中的各个变量或等于某实际上这个基本可行解中的各个变量或等于某个个bj或等于零。在本例题中就找到了一个基是单位或等于零。在本例题中就找到了一个基是单位矩阵矩阵:令令B2的非基变量的非基变量x1,x2 为零,为零,则:则:X1+X2+S1=3002X1+X2+S2=400X2+S3=250S1=300S2=400S3=250100100101200111s s s x x32121A王中昭制作王中昭制作 像这样在第一次找可行基时,所找到
15、的像这样在第一次找可行基时,所找到的基或为单位矩阵或为由单位矩阵的各列向基或为单位矩阵或为由单位矩阵的各列向量所组成,称之为初始可行基,其相应的量所组成,称之为初始可行基,其相应的基本可行解叫初始基本可行解。如果找不基本可行解叫初始基本可行解。如果找不到单位矩阵或由单位矩阵的各列向量组成到单位矩阵或由单位矩阵的各列向量组成的基作为初始可行基,我们将构造初始可的基作为初始可行基,我们将构造初始可行基,具体做法在以后详细讲述。行基,具体做法在以后详细讲述。 这就是单纯形法的第一步。这就是单纯形法的第一步。注解注解王中昭制作王中昭制作 1最优性检验的依据最优性检验的依据检验数检验数j 一般来说目标函
16、数中既包括基变量,又包括非基变一般来说目标函数中既包括基变量,又包括非基变量。现在要求只用非基变量来表示目标函数,这只要在量。现在要求只用非基变量来表示目标函数,这只要在约束等式中通过移项等处理就可以用非基变量来表示基约束等式中通过移项等处理就可以用非基变量来表示基变量,然后将非基变量的表示式代入目标函数中,这样变量,然后将非基变量的表示式代入目标函数中,这样目标函数中只含有非基变量了,或者说目标函数中基变目标函数中只含有非基变量了,或者说目标函数中基变量的系数都为零了。量的系数都为零了。此时目标函数中所有变量的系数称此时目标函数中所有变量的系数称为各变量的检验数,把变量为各变量的检验数,把变
17、量Xj的检验数记为的检验数记为j ; 显然显然所有基变量的检验数必为零(因为基变量已被非基变量所有基变量的检验数必为零(因为基变量已被非基变量代替了)。代替了)。二、最优性检验二、最优性检验王中昭制作王中昭制作 则非基变量为则非基变量为X1,X2。由于初始可行解中。由于初始可行解中X1,X2 为非基变量,所以此目标函数已经用为非基变量,所以此目标函数已经用非基变量表示了,不需要用约束条件代换出非基变量表示了,不需要用约束条件代换出基变量了。这样可知基变量了。这样可知1=50, 2=100, 3=0, 4=0, 5=0。100010001S3 S2 S1 2B在本例题中目标函数为在本例题中目标函
18、数为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=400,X2+S3=250只将二式只将二式变为变为 X1=20
19、0-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取为非取为非基变量基变量(即令这些即令这些Xj的值为零的值为零),所
20、求得的基本可行解就,所求得的基本可行解就使目标函数值最大为使目标函数值最大为z0 。)1.(0Jjjjxzz2. 最优解判别定理最优解判别定理下面来解释最优解判别定理。设用非基变量表示的目标下面来解释最优解判别定理。设用非基变量表示的目标函数为如下形式函数为如下形式 王中昭制作王中昭制作 由于由于1=50,2=100都大于零,显然这个基本可行解都大于零,显然这个基本可行解不是最优解,实际上让不是最优解,实际上让X1,X2为非基变量为非基变量(即令其值为即令其值为0)是最失策的,是最失策的,X1, X2在大于等于零的范围内,在大于等于零的范围内,X1,X2不不管取什么值也比其取零值要好,就能使得
21、目标函数管取什么值也比其取零值要好,就能使得目标函数Z的的值比零更大。所以要找更好的基本可行解。值比零更大。所以要找更好的基本可行解。 而对于第二种情况取基变量为而对于第二种情况取基变量为X1、S1、S3,检验数为,检验数为1=0, 2=75, 3=0, 4=-25, 5=0。也不是都小于等于。也不是都小于等于0,也也不是最优解。不是最优解。 对于求目标函数最小值的情况,只需把上述的定理中对于求目标函数最小值的情况,只需把上述的定理中的的j0,改为,改为j0即可。至于如何来判断无最优解的方即可。至于如何来判断无最优解的方法将在后面用具体实例予以阐述。法将在后面用具体实例予以阐述。1000100
22、01S3 S2 S1 2B在本例题中当取基变量为在本例题中当取基变量为王中昭制作王中昭制作 下面介绍如何进行基变换找到一个新的可行下面介绍如何进行基变换找到一个新的可行基,具体的做法是从可行基中换一个列向量,得基,具体的做法是从可行基中换一个列向量,得到一个新的可行基,使得求解得到的新的基本可到一个新的可行基,使得求解得到的新的基本可行解,使得其目标函数值更优。为了换基就要确行解,使得其目标函数值更优。为了换基就要确定换入变量与换出变量。定换入变量与换出变量。 三、基变换三、基变换x1x2基变换的实质就基变换的实质就是从一个顶点换是从一个顶点换到另一个顶点。到另一个顶点。王中昭制作王中昭制作故
23、我们要选基检验数大于故我们要选基检验数大于0的非基变量换到基变量中去的非基变量换到基变量中去(称之为入基变量称之为入基变量)。若有两个以上的若有两个以上的j0,则为了使目标函数增加,则为了使目标函数增加得更大些,一般选其中的得更大些,一般选其中的j 最大者的非基变最大者的非基变量为入基变量,在本例题中量为入基变量,在本例题中2= 100是检验数是检验数中最大的正数,故选中最大的正数,故选X2 为入基变量。为入基变量。王中昭制作王中昭制作 求得基本解:求得基本解:X1=0,X2=300,S1=0,S2=100,S3=-50.显然这不是基本可行解,因为显然这不是基本可行解,因为S30),迭代迭代次
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 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 5
25、0 100 0 0 0想想,如何进行迭代?为什么选取X2作为入基变量?王中昭制作王中昭制作迭代迭代次数次数基基变变量量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
26、 b 50 100 0 0 0 1 S1 S2 X2 0 0 100 0 1 0 0 1 250 Zj j=Cj-Zj 迭代迭代迭代迭代迭代迭代迭代迭代迭代迭代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为入基变为入基变量,从此值可知
27、量,从此值可知b1/a11=50为为bi/ai1中最小的正数,中最小的正数,可知可知S1为出基变量,为出基变量,a11为主元,这样我们可以进为主元,这样我们可以进行第行第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王中昭制作王中昭制作 从表中可知基本可行解为从表
28、中可知基本可行解为X1=50,X2=250,S1=0,S2=50, S3=0,这时,这时Z=27500。由于检验。由于检验j 都都小于等于零,此基本可行解为最优解,小于等于零,此基本可行解为最优解,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王中
29、昭制作王中昭制作 第二章例第二章例2的数学模型如下:的数学模型如下: 目标函数目标函数: min f=2X1+3X2. 约束条件:约束条件: X1+X2350, X1125, 2X1+X2600, X1,X20 其约束条件的标准型如下:其约束条件的标准型如下: X1+X2-S1=350, X1-S2=125, 2X1+X2+S3=600, X1,X2, S1, S2 ,S30100120100100111S S S X X 321215.3 求目标函数值最小的线性规划问求目标函数值最小的线性规划问题的单纯形表解法题的单纯形表解法王中昭制作王中昭制作 至于目标函数,在标准型中并不一定要至于目标函
30、数,在标准型中并不一定要求求最大值或最小值,但是为了使单纯形表求求最大值或最小值,但是为了使单纯形表解法有一个统一的解法,我们把所有求目标解法有一个统一的解法,我们把所有求目标函数最小值的问题化成求目标函数最大值的函数最小值的问题化成求目标函数最大值的问题。具体做法只要把目标函数乘以问题。具体做法只要把目标函数乘以(-1),就把原来求目标函数最小值的问题化成了求就把原来求目标函数最小值的问题化成了求目标函数最大值的问题。本例题的目标函数目标函数最大值的问题。本例题的目标函数就化为了:就化为了: 目标函数:目标函数:max (-f )=-2X1-X2 为了统一符号,不妨设为了统一符号,不妨设Z=
31、-f,这样目标,这样目标函数就写成函数就写成: max Z=-2X1-3X2王中昭制作王中昭制作 在标准型的约束方程的系数矩阵里,找不到在标准型的约束方程的系数矩阵里,找不到3阶单位阵阶单位阵或单位向量或单位向量 。注意负的单位向量与单位向量是不同的,。注意负的单位向量与单位向量是不同的,用负的单位向量作基向量求得的基本解一般不满足非用负的单位向量作基向量求得的基本解一般不满足非负条件,不是可行解。这样我们就分别在第负条件,不是可行解。这样我们就分别在第1、第、第2个个约束方程中加上人工变量约束方程中加上人工变量a1, a2 (aartificial的第一个字的第一个字母母),这样的约束条件就
32、变成了如下的形式:,这样的约束条件就变成了如下的形式: X1+X2-S1+a1=350, X1-S2+a2=125, 2X1+X2+S3=600,X1,X2, S1, S2 ,a1, a20 这样在约束方程的系数矩阵中就可找到单位向量这样在约束方程的系数矩阵中就可找到单位向量e3,e1,e2了了,这时可知基变量这时可知基变量为为s3, a1, a2,初始基本可行解为,初始基本可行解为 X1=0, X2=0, S1=0, S2=0, S3=600, a1=350, a2=125.100120100100111S S S X X 32121王中昭制作王中昭制作M 人工变量的含义 人工变量是与松弛、
33、剩余变量不同的。松弛变量、人工变量是与松弛、剩余变量不同的。松弛变量、剩余变量它们可以取零值,也可以取正值,而人工变剩余变量它们可以取零值,也可以取正值,而人工变量只能取零值。一旦人工变量取正值,则有人工变量量只能取零值。一旦人工变量取正值,则有人工变量的约束方程和原始的约束方程就不等价了,这样所求的约束方程和原始的约束方程就不等价了,这样所求得的解就不是原线性规划的解了。得的解就不是原线性规划的解了。为了保证人工变量为了保证人工变量为零,规定人工变量在目标函数中的系数为为零,规定人工变量在目标函数中的系数为 -M,这,这里里M为任意大的数。这样只要人工变量为任意大的数。这样只要人工变量0,所
34、求的目,所求的目标函数最大值就是一个任意小的数。这样为了使目标标函数最大值就是一个任意小的数。这样为了使目标函数实现最大就必须把人工变量从基变量中换出。如函数实现最大就必须把人工变量从基变量中换出。如果一直到最后,人工变量仍不能从基变量中换出,即果一直到最后,人工变量仍不能从基变量中换出,即人工变量仍不为零,则该问题无可行解。人工变量仍不为零,则该问题无可行解。这样此例的这样此例的目标函数就写为:目标函数就写为: max Z= -2X1-3X2-M a1-M a2王中昭制作王中昭制作 此例的数学模型如下所示:此例的数学模型如下所示: max z=-2X1-3X2-Ma1-Ma2 s.t X1+
35、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 像这样,为了构造初始可行基得到初始可行解,像这样,为了构造初始可行基得到初始可行解,把人工变量把人工变量“强行强行”地加到原来的约束方程中去,又地加到原来的约束方程中去,又为了尽力地把人工变量从基变量中替换出来,就令人为了尽力地把人工变量从基变量中替换出来,就令人工变量在求最大值的目标函数里的系数为工变量在求最大值的目标函数里的系数为-M,这个方,这个方法叫做大法叫做大M法,法,
36、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+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
37、+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-M3 x2-301-20-120100 x1-210101-10250 s2000111-1-1125 Zjj=cj-zj-2-3401-40-80000-40-1-M+4-M王中
38、昭制作王中昭制作 在第在第2次迭代的检验数中次迭代的检验数中X2 的检验数为的检验数为M/2-2,S3 的检验数为的检验数为M/2+1,由于,由于M为任意大的数,我们为任意大的数,我们可以认为这两个数一样大,这时最好选决策变量而可以认为这两个数一样大,这时最好选决策变量而不是选松弛、剩余或人工变量为入基变量。这样就不是选松弛、剩余或人工变量为入基变量。这样就可能用较少次的迭代就能找到最优解,可能用较少次的迭代就能找到最优解, 注意啊!注意啊! 从上表中可知其基本可行解:从上表中可知其基本可行解:X1=250, X2=100, S1=0, S2=125, S3=0, a1=0, a2=0是本例题
39、的最优解,是本例题的最优解,其最优值为其最优值为 f=-z=-(-800)=800。因为第。因为第3次迭代的所次迭代的所有的检验数都小于等于零。有的检验数都小于等于零。王中昭制作王中昭制作如果没有单位矩阵,约束条件的等式如果没有单位矩阵,约束条件的等式也可设计人工变量也可设计人工变量 例如例如 Max Z=3X1-X2-X3 st X1-2X2+X311 -4X1+X2+2X33 -2X1+X3=1 X1,X2,X30 约束条件加上松驰和剩余变量后为:约束条件加上松驰和剩余变量后为: X1-2X2+X3+S1=11 -4X1+X2+2X3-S2=3 -2X1+X3=1 X1,X2,X30 仍未
40、有单位矩阵,在第二、三约束上分别加上人工变仍未有单位矩阵,在第二、三约束上分别加上人工变量量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求解下列线性规划问题求解下列线性规划问题 目标函数:目标函数:max Z =20X1+30X2
41、 约束条件:约束条件: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 s1031010001
42、50150/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,其目
43、标函数值,其目标函数值为为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/10006
44、X12010010030 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-X
45、21, -3X1+2X26, X10,X20 解:在上述的约束条件中加入松弛变量,得标准型解:在上述的约束条件中加入松弛变量,得标准型如下:如下: 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来确定来确定出基变量。碰到
46、这种情况可以断定此问题是无界的,即出基变量。碰到这种情况可以断定此问题是无界的,即此目标函数值可以取到无限大。此目标函数值可以取到无限大。 迭代迭代次数次数基变基变量量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=
47、9 移项得:移项得:X1=1+X2-S1 S2=X2-3S1+9 ,不妨设,不妨设X2=M, S1=0,得一组解:得一组解: X1=M+1, X2=M, S1=0, S2=M+9, 显然这是此线性规划的可行解,此时目标函数显然这是此线性规划的可行解,此时目标函数: Z=X1+X2=M+1+M=2M+1 由于由于M可以是任意大的正数,可知此目标函数值无界。可以是任意大的正数,可知此目标函数值无界。 王中昭制作王中昭制作 例例3用单纯形表求解下面的线性规划问题。用单纯形表求解下面的线性规划问题。 目标函数:目标函数:max Z=50X1+50X2, 约束条件:约束条件: X1+X2300, 2 X
48、1+X2400, X2250, X10, X20. 解:用单纯形表来解,引入松弛变量解:用单纯形表来解,引入松弛变量S1, S2, S3,得标得标准型:准型: max Z=50X1+50X2 , X1+X2+S1=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
49、 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 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 等于零外,等于零外,非基变非基变
50、量量s3 的检验数也等于零,这样可以断定此问题有无穷的检验数也等于零,这样可以断定此问题有无穷多最优解。多最优解。不妨把检验数也为零的非基变量选为入基不妨把检验数也为零的非基变量选为入基变量进行第变量进行第3次迭代。可求得另一个基本可行解:次迭代。可求得另一个基本可行解:迭代迭代次数次数基基变变量量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王中昭制作王中昭制作 从