运筹学第五章Word下载.docx
《运筹学第五章Word下载.docx》由会员分享,可在线阅读,更多相关《运筹学第五章Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
![运筹学第五章Word下载.docx](https://file1.bdocx.com/fileroot1/2022-11/30/25b1ba82-81a8-4369-b166-6bf3deeac3ed/25b1ba82-81a8-4369-b166-6bf3deeac3ed1.gif)
为A的一个基,令这个基的非基变量x1,s2为零,这时约束方程就变为基变量的约束方程:
x2+s1≤300,
x2=400,
x2+s3=250.
求解得到此线性规划的一个基本解:
x1=0,x2=400,s1=-100,s2=0,s3=-150
由于在这个基本解中s1=-100,s3=-150,不满足该线性规划s1≥0,s3≥0的约束条件,显然不是此线性规划的可行解,一个基本解可以是可行解,也可以是非可行解,它们之间的主要区别在于其所有变量的解是否满足非负的条件。
基本可行解:
我们把满足非负条件的一个基本解叫做基本可行解。
可行基:
基本可行解,对应的基称为可行基。
一般来说判断一个基是否是可行基,只有在求出其基本解以后,当其基本解所有变量的解都是大于等于零,才能断定这个解是基本可行解,这个基是可行基。
那么我们能否在求解之前,就找到一个可行基呢?
也就是说我们找到的一个基能保证在求解之后得到的解一定是基本可行解呢?
由于在线性规划的标准型中要求bj都大于等于零,如果我们能找到一个基是单位矩阵,或者说一个基是由单位矩阵的各列向量所组成(至于各列向量的前后顺序是无关紧要的事)例如,
,那么显然所求得的基本解一定是基本可行解,这个单位矩阵或由单位矩阵各列向量组成的基一定是可行基。
实际上这个基本可行解中的各个变量或等于某个bj或等于零。
在本例题中我们就找到了一个基是单位矩阵:
初始可行基:
在第一次找可行基时,所找到的基或为单位矩阵或为由单位矩阵的各列向量所组成,称之为初始可行基。
初始基本可行解:
初始可行基相应的基本可行解叫初始基本可行解。
如果找不到单位矩阵或由单位矩阵的各列向量组成的基作为初始可行基,我们将构造初始可行基,具体做法在以后详细讲述。
三、最优性检验
所谓最优性检验就是判断已求得的基本可行解是否是最优解。
1.最优性检验的依据——检验数
一般来说目标函数中既包括基变量,又包括非基变量。
现在我们要求只用非基变量来表示目标函数,这只要在约束等式中通过移项等处理就可以用非基变量来表示基变量,然后用非基变量的表示式代替目标函数中基变量,这样目标函数中只含有非基变量了,或者说目标函数中基变量的系数都为零了。
此时目标函数中所有变量的系数即为各变量的检验数,把变
量
的检验数记为
。
显然所有基变量的检验数必为零。
在本例题中目标函数为
由于初始可行解中
为非基变量,所以此目标函数已经用非基变量表示了,不需要再代换出基变量了。
这样我们可知
2.最优解判别定理
对于求最大目标函数的问题中,对于某个基本可行解,如果所有检验数
,则这个基本可行解是最优解。
下面我们用通俗的说法来解释最优解判别定理。
设用非基变量表示的目标函数为如下形式
由于所有的xj的取值范围为大于等于零,当所有的
时,可知
,要使z的值最大,显然
只有为零。
我们把这些
取为非基变量(即令这些
的值为零),所求得的基本可行解就使目标函数值最大为
**对于求目标函数最小值的情况,只需把
改为
四、基变换
通过检验,我们知道这个初始基本可行解不是最优解。
下面介绍如何进行基变换找到一个新的可行基,具体的做法是从可行基中换一个列向量,得到一个新的可行基,使得求解得到的新的基本可行解,其目标函数值更优。
为了换基就要确定换入变量与换出变量。
1.入基变量的确定
从最优解判别定理知道,当某个σj>0时,非基变量xj变为基变量不取零值可以使目标函数值增大,故我们要选基检验数大于0的非基变量换到基变量中去(称之为入基变量)。
若有两个以上的σj>0,则为了使目标函数增加得更大些,一般选其中的σj最大者的非基变量为入基变量,在本例题中σ2=100是检验数中最大的正数,故选x2为入基变量。
2.出基变量的确定
在确定了x2为入基变量之后,我们要在原来的3个基变量s1,s2,s3中确定一个出基变量,也就是确定哪一个基变量变成非基变量呢?
如果把s3作为出基变量,则新的基变量为x2,s1,s2,因为非基变量x1=s3=0,我们也可以从下式:
x2+s1=300,
x2+s2=400,
x2=250,
求出基本解:
x1=0,x2=250,s1=50,s2=150,s3=0。
因为此解满足非负条件,是基本可行解,故s3可以确定为出基变量。
能否在求出基本解以前来确定出基变量呢?
以下就来看在找出了初始基本可行解和确定了入基变量之后,怎么样的基变量可以确定为出基变量呢?
或者说出基变量要具有什么条件呢?
我们把确定出基变量的方法概括如下:
把已确定的入基变量在各约束方程中的正的系数除以其所在约束方程中的常数项的值,把其中最小比值所在的约束方程中的原基变量确定为出基变量。
这样在下一步迭代的矩阵变换中可以确保新得到的bj值都大于等于零。
在本例题中约束方程为
在第二步中已经知道x2为入基变量,我们把各约束方程中x2的为正的系数除对应的常量,得
其中
的值最小,所以可以知道在原基变量中系数向量为的基变量s3为出基变量,这样可知x2,s1,s2为基变量,x1,s3为非基变量。
令非基变量为零,得x2+s1=300,
x2+s2=400,
x2=250.
求解得到新的基本可行解x1=0,x2=250,s1=50,s2=150.
这时目标函数值为
50x1+100x2=50×
0+100×
250=25000。
显然比初始基本可行解x1=0,x2=0,s1=300,s3=250时的目标函数值为0要好得多。
下面我们再进行检验其最优性,如果不是最优解还要继续进行基变换,直至找到最优解,或者能够判断出线性规划无最优解为止。
教学组织:
1、课堂讲授、提问、设问
2、结合线性代数知识,理解原理
作业布置:
1、P96.1,2
第七次课2学时
单纯形法表格形式迭代
出基变量和进基变量的确定、最优检验
第二节 单纯形法的表格形式
一、检验数
的表达式
可行基为m阶单位矩阵的线性规划模型如下(假设其系数矩阵的前m列是单位矩阵):
以下用表示基变量,用表示非基变量。
把第i个约束方程移项,就可以用非基变量来表示基变量xi,
把以上的表达式带入目标函数,就有
其中:
上面假设x1,x2,…xm是基变量,即第i行约束方程的基变量正好是xi,而经过迭代后,基将发生变化,计算zj的式子也会发生变化。
如果迭代后的第i行约束方程中的基变量为xBi,与xBi相应的目标函数系数为cBi,系数列向量为,
则
其中,(cB)是由第1列第m行各约束方程中的基变量相应的目标函数依次组成的有序行向量。
二、单纯形迭代
单纯形法的表格形式是把用单纯形法求出基本可行解、检验其最优性、迭代某步骤都用表格的方式来计算求出,其表格的形式有些像增广矩阵,而其计算的方法也大体上使用矩阵的行的初等变换。
以下用单纯形表格来求解第二章的例1。
max50x1+100x2+0·
s1+0·
s2+0·
s3.
x1+x2+s1=300,
2x1+x2+s2=400,
x2+s3=250,
x1,x2,s1,s2,s3≥0.把上面的数据填入如下的单纯形表格
迭代次数
基变量
cB
x1x2s3s4s5
b
比值
Bi/ai2
50100000
s1
s2
s3
0
11100
21010
0
001
300
400
250
300/1
400/1
250/1
zj
00000
z=0
•按照线性规划模型在表中填入相对应的值,如上表所示;
•在上表中有一个m*m的单位矩阵,对应的基变量为s1,s2,s3;
•在zj行中填入第j列与cB列中对应的元素相乘相加所得的值,如z2=0*1+0*1+0*1=0,所在zi行中的第2位数填入0;
•
在行中填入cj-zj所得的值,如;
•z表示把初始基本可行解代入目标函数求得的目标函数值,即b列*cB列;
•初始基本可行解为s1=300,s2=400,s3=250,x1=0,x2=0;
•由于250/1最小,因此确定s3为出基变量;
由于,因此确定x2为入基变量。
出基变量所在行,入基变量所在列的交汇处为主元,这里是a32=1,在表中画圈以示区别。
以下进行第一次迭代,其变量为x2,s1,s2,通过矩阵行的初等变换,求出一个新的基本可行解,具体的做法用行的初等变换使得x2的系数向量p2变换成单位向量,由于主元在p2的第3分量上,所以这个单位向量是也就是主元素变成1。
这样我们又得到的第1次迭代的单纯表如下所示。
x1x2s3s4s5
比值
bi/aij
50100000
1
x2
100
010-1
2001-1
01001
50
150
250
50/1
150/2
—
010000100
50000-100
25000
•在上表中第3个基变量s1已被x2代替,故基变量列中的第3个基变量应变为x2。
由于第0次迭代表中的主元a32已经为1,因此第3行不变。
为了使第1行的a12为0,只需把第3行*(-1)加到第1行即可。
同样可以求得第2行。
•求得第1次迭代的基本可行解为s1=50,s2=150,x2=250,x1=0,s3=0,z=25000.
从上表可以看出,第一次迭代的,因此不是最优解。
设x1为入基变量,从此值可知b1/a11=50为最小正数,因此,s1为出基变量,a11为主元,继续迭代如下表所示。
x1x2s3s4s5
2
x1
1010-1
00-211
01001
5010050050
00-500-50
27500
•从上表中可知第二次迭代得到的基本可行解为x1=50,x2=250,s1=0,s2=50,s3=0,这时z=27500。
•由于检验数都<
0,因此所求得的基本可行解为最优解,z=27500为最优目标函数值。
•实际上,我们可以连续地使用一个单纯形表,不必一次迭代重画一个表头。
1、课堂讲授、多媒体演示、提问
2、学生自己动手迭代练习
1、P97。
4,5
(2)
第8次课2学时
本次课教学重点:
大M法、两阶段法
大M法中目标函数的构造、两阶段法中由第一阶段结果构造第二阶段的单纯型表
第三节 求目标函数值最小的线性规划的问题的单纯形表解法
一、大M法
例1.目标函数:
约束条件:
加入松弛变量和剩余变量变为标准型,得到新的约束条件如下:
至于目标函数,在标准型中并不一定要求求最大值或最小值,但是为了使单纯形表解法有一个统一的解法,我们把所有求目标函数最小值的问题化成求目标函数最大值的问题。
具体做法只要把目标函数乘以(-1)。
要注意到人工变量是与松弛、剩余变量不同的。
松弛变量、剩余变量它们可以取零值,也可以取正值,而人工变量只能取零值。
一旦人工变量取正值,那么有人工变量的约束方程和原始的约束方程就不等价了,这样所求得的解就不是原线性规划的解了。
为了竭尽全力地要求人工变量为零,我们规定人工变量在目标函数中的系数为-M,这里M为任意大的数。
这样只要人工变量M>0,所求的目标函数最大值就是一个任意小的数。
这样为了使目标函数实现最大就必须把人工变量从基变量中换出。
如果一直到最后,人工变量仍不能从基变量中换出,也就是说人工变量仍不为零,则该问题无可行解。
此例的数学模型如下所示:
maxz=-2x1-3x2-Ma1-Ma2.
x1+x2-s1+a1=350,
x1-s2+a2=125,
2x1+x2+s3=600,
x1,x2,s1,s2,s3,a1,a2≥0.
像这样,为了构造初始可行基得到初始可行解,把人工变量“强行”地加到原来的约束方程中去,又为了尽力地把人工变量从基变量中替换出来就令人工变量在求最大值的目标函数里的系数为-M,这个方法叫做大M法,M叫做罚因子。
下面我们就用大M法来求解此题:
cB
x1x2s1s2s3a1a2
b
-2-3000-M-M
a1
a2
a3
-M
11-10010
100-1001
2100100
350
125
600
350/1
125/1
600/2
-2M-MMM0-M-M
-2+2M-3+M-M-M000
-475M
x2
s3
-2
01-1001-1
100-1001
010210-2
225
-----
350/2
-2-MM-M+20-M-M-2
0-3+M-MM-2002-2M
-225M-250
x1
s2
01/2-10-1/210
11/2001/200
01/2011/20-1
50
175
50/1/2
300/1/2
175/1/2
-2-1/2M-1M01/2M-1-M0
01/2M-2-M0-1/2M+10-M
-50M-600
3
-3
-2
01-20-120
10101-10
00111-1-1
125
-2-3401-40
00-40-1-M+4-M
-800
从上表中可知检验数都小于零。
已求得最优解为:
x1=250,x2=100,s1=0,s2=125,s3=0,a1=0,a2=0,其最优值为f=-z=-(-800)=800。
二、两阶段法
两阶段法是处理人工变量的另一种方法,这种方法是将加入人工变量后的线性规划划分两阶段求解,仍以上面的例题为例,阐述两阶段法的求解过程。
第一阶段:
要判断原线性规划是否有基可行解,方法是先求解下列线性规划问题:
注意:
此线性规划的约束条件与原线性规划一样,而目标函数是求人工变量的相反数之和的最大值。
如果此值大于零,则不存在使所有人工变量都为零的可行解,停止计算。
如果此值为零,即说明存在一个可行解,使得所有的人工变量都为零。
第二阶段:
将第一阶段的最终单纯形表中的人工变量取消,将目标函数换成原问题的目标函数,把此可行解作为初始可行解进行计算。
x1x2s1s2s3a1a2
-2-3000-1-1
-1
11-10010
100-1001
-2-1110-1-1
-21-1-1000
-470
01-1101-1
010210-2
0-11-10-11
01-11002
01-11010
00111-1-1
0000000
00000-1-1
x1x2s1s2s3
-2-3000
-3
01-110
100-10
01021
225/1
125/2
-2-33-10
00-310
-925
01-20-1
10101
00111
100
-2-3401
00-40-1
从表中可知其基本可行解x1=250,x2=100,s1=0,s2=125,s3=0是本例的最优解,其最优值为z=-(-800)=800。
3、课堂讲授、多媒体演示、提问
4、学生自己动手迭代练习
1、P98.6,7(1,3)
第九次课2学时
不同的解情况的判断方法
4 几种特殊情况
一、无可行解
例1、用单纯形表求解下列线性规划问题
解:
在上述问题的约束条件中加入松驰变量、剩余变量、人工变量得到
填入单纯形表计算得:
CB
x1x2s1s2s3a1
2030000-M
s1
3101000
100100
1100-11
150
30
40
150/10
—
40/1
zj
cj-zj
-M-M00M-M
20+M30+M00-M0
-40M
3/1011/10000
100100
7/100-1/100-11
15
25
15/(3/10)
30/1
25/(7/10)
9-7/10M303+M/100M-M
11+7/10M0-3-M/100-M0
450-25M
20
011/10-3/1000
00-1/10-7/10-11
6
4
20303+M/1011+7M/10M-M
00-3-M/10-11-7M/10-M0
780-4M
从第二次迭代的检验数都小于零来看,可知第2次迭代所得的基本可行解已经是最优解了,其最大的目标函数值为780-4M。
我们把最优解x1=30,x2=6,s1=0,s2=0,s3=0,a1=4,代入第三个约束方程得x1+x2-0+4=40,即有:
x1+x2=36≤40.
并不满足原来的约束条件3,可知原线性规划问题无可行解,或者说其可行解域为空集,当然更不可能有最优解了。
像这样只要求线性规划的最优解里有人工变量大于零,则此线性规划无可行解。
二、无界解
在求目标函数最大值的问题中,所谓无界解是指在约束条件下目标函数值可以取任意的大。
下面我们用单纯形表来求第二章中的例子。
例2、用单纯形表求解下面线性规划问题。
在上述问题的约束条件中加入松驰变量,得标准型如下:
x1x2s1s2
1100
s