1、1第二章第二章 单纯形法单纯形法2.1单纯形法原理单纯形法原理2一、基础定理一、基础定理定理定理1 若线性规划问题存在最优解,则问题的可行域是凸集。若线性规划问题存在最优解,则问题的可行域是凸集。定理定理2 线性规划问题的基本可行解对应线性规划问题可行域线性规划问题的基本可行解对应线性规划问题可行域(凸集)的顶点。(凸集)的顶点。定理定理3 若线性规划问题最优解存在,则最优解一定在可行域顶若线性规划问题最优解存在,则最优解一定在可行域顶点处取得。点处取得。由此可看出,最优解要在基本可行解(可行域顶点)中找。由此可看出,最优解要在基本可行解(可行域顶点)中找。3v 若若LP问题有最优解的话,定在
2、可行域的问题有最优解的话,定在可行域的某顶点处达到,又,一个顶点对应一个基本某顶点处达到,又,一个顶点对应一个基本可行解,一个自然的想法是:找出所有的基可行解,一个自然的想法是:找出所有的基本可行解。本可行解。v因基本可行解的个数有限,通过因基本可行解的个数有限,通过“枚举法枚举法”,从理论上讲总能找出所有的基本可行解。而从理论上讲总能找出所有的基本可行解。而事实上随着事实上随着m,n的增大,解的个数迅速增大,的增大,解的个数迅速增大,致使此路行不通。致使此路行不通。4v换一种思路:若从某一基本可行解(今后称换一种思路:若从某一基本可行解(今后称之为初始基本可行解)出发,每次总是寻找之为初始基
3、本可行解)出发,每次总是寻找比上一个更比上一个更“好好”的基本可行解,逐步改善,的基本可行解,逐步改善,直至最优。这需要解决以下三个问题:直至最优。这需要解决以下三个问题:v1.如何找到一个初始的基本可行解。如何找到一个初始的基本可行解。v2.如何判别当前的基本可行解是否已达到了如何判别当前的基本可行解是否已达到了最优解。最优解。v3.若当前解不是最优解,如何去寻找一个改若当前解不是最优解,如何去寻找一个改善了的基本可行解。善了的基本可行解。5定义:如何从一个可行基找另一个可行基?称定义:如何从一个可行基找另一个可行基?称基变换基变换。定义:两个基本可行解称为相邻的,如果它们之间仅变换定义:两
4、个基本可行解称为相邻的,如果它们之间仅变换一个基变量。对应的基称为一个基变量。对应的基称为相邻可行基相邻可行基。例例 LP问题问题 5 , 105242615552142132ixxxxxxxxxi543210002minxxxxxZ 二、思路解析二、思路解析212maxxxZ 0,524261552121212xxxxxxx6当前可行基当前可行基 所对应的基本可行解所对应的基本可行解,3x,4x5xTX)5 ,24,15, 0 , 0(0显然不是最优。显然不是最优。因为从经济意义上讲,因为从经济意义上讲,,01x02x意味着该厂不安排生产,因此没有利润。意味着该厂不安排生产,因此没有利润。相
5、应地,将相应地,将 代入目标函数得代入目标函数得0)(0XZ0X从数学角度看,若让非基变量从数学角度看,若让非基变量 取值从零增加,取值从零增加,,1x2x(对应可行域的对应可行域的 )0 , 0(o543210002minxxxxxZ 5 , 105242615552142132ixxxxxxxxxi7相应的目标函数值相应的目标函数值Z也将随之减少。因此有可能找到一个也将随之减少。因此有可能找到一个新的基本可行解,使其目标函数值有所改善。即进行基变新的基本可行解,使其目标函数值有所改善。即进行基变换,换一个与它相邻的基。再注意到换,换一个与它相邻的基。再注意到 前的系数前的系数2比比2x1x
6、 前的系数前的系数1小,即小,即 每增加一个单位对每增加一个单位对Z的贡献比的贡献比 大。大。2x1x故应让故应让 从非基变量转为基变量,称为从非基变量转为基变量,称为进基进基。又因为基。又因为基1x变量只能有三个,因此必须从原有的基变量变量只能有三个,因此必须从原有的基变量,3x,4x5x中选一个离开基转为非基变量,称为中选一个离开基转为非基变量,称为出基出基。谁出基?。谁出基?543210002minxxxxxZ8又因为又因为 仍留作非基变量,故仍有仍留作非基变量,故仍有2x02x(2)式)式变为变为05062401515143xxxxx再让再让 从零增加,能取得的最大值为从零增加,能取得
7、的最大值为1x6241x51x. 45 ,624min1x此时,此时, 已经从已经从24降到了降到了0,达到了非基的取值,变,达到了非基的取值,变成非基变量。从而得到新的可行基成非基变量。从而得到新的可行基 。4x,531xxx由此得到一个新的基本可行解:由此得到一个新的基本可行解:TX)1 ,0,15,0,4(19目标函数值:目标函数值:. 0)(842)(01XZXZ从目标函数值明显看出,从目标函数值明显看出, 比比 明显地得到了改善。明显地得到了改善。0X1X(4,0)顶顶点点此基本可行解对应可行域的此基本可行解对应可行域的将(将(2)式)式5 , 105262451521521423i
8、xxxxxxxxxi(2)可行基可行基,531xxx留在左边,非基变量留在左边,非基变量,2x4x移到右边移到右边105 , 105224651525142123ixxxxxxxxxi(3)5 , 10613216131451542542123ixxxxxxxxxi用代入法得:用代入法得:(4)11代入目标函数得:代入目标函数得:Zxx2411833 这一过程用增广矩阵的行初等变换表示为:这一过程用增广矩阵的行初等变换表示为:00001251001124010261500150A2x4x3x5x1xb1/6000012510011406/103/111500150(-1)(2)按最小非负比值规
9、则:按最小非负比值规则:415,624min543210002xxxxxZ主元素主元素 5 , 105242615552142132ixxxxxxxxxi12803/103/10116/103/20406/103/1115001502x4x3x5x1xb目标函数系数行目标函数系数行4231318xxZ按最小非负比值规则:按最小非负比值规则:233/21,3/14,515min13803/103/10116/103/20406/103/1115001502x4x3x5x1xb3/2803/103/102/32/34/1010406/103/111500150(-5)(-1/3)(1/3)14 2
10、/172/14/10002/32/34/10102/72/14/10012/152/154/5100所对应的所对应的 LP问题问题ix+xxxxxxxxxi3451452455151542211742213342201,5 542141217minxxZ 15ix+xxxxxxxxxi3451452455151542211742213342201,5 542141217minxxZ 可行基可行基,321xxxTX)0 , 0 ,215,23,27(3 令非基变量令非基变量 为为0,得到最优解,得到最优解,4x5x最优值:最优值:217max Z16总结:总结:在迭代过程中要保持常数列向量非负,
11、这能保证基在迭代过程中要保持常数列向量非负,这能保证基可行解的非负性。最小比值能做到这一点。可行解的非负性。最小比值能做到这一点。主元素不能为主元素不能为0 0。因为行的初等变换不能把。因为行的初等变换不能把0 0变成变成1 1。主元素不能为负数。因为用行的初等变换把负数变成主元素不能为负数。因为用行的初等变换把负数变成1 1会会把常数列中对应的常数变成负数。把常数列中对应的常数变成负数。此基本可行解对应可行域的此基本可行解对应可行域的(7 / 2,3 / 2)顶顶点点其结果与图解法一致。其结果与图解法一致。17人工变量法(也称大人工变量法(也称大M M法)法)针对标准形约束条件的系数矩阵中不
12、含单位矩阵的处理针对标准形约束条件的系数矩阵中不含单位矩阵的处理方法。方法。例例6 6 用单纯形法求解用单纯形法求解LPLP问题问题313maxxxZ0,9312432132321321xxxxxxxxxxx 单纯形的进一步讨论单纯形的进一步讨论18解:先将其化为标准形式解:先将其化为标准形式543210003minxxxxxZ093124513253214321xxxxxxxxxxx再强行加上再强行加上人工变量人工变量,使其出现单位矩阵:,使其出现单位矩阵:12341235623717421390 xxxxxxxxxxxxx 19但这样处理后:但这样处理后:不易接受。因为不易接受。因为 是强
13、行引进,称为是强行引进,称为 76,xx人工变量人工变量。它们与。它们与 不一样。不一样。 称为松弛变量和剩称为松弛变量和剩54,xx54,xx余变量,是为了将不等式改写为等式而引进的,而改写前后余变量,是为了将不等式改写为等式而引进的,而改写前后两个约束是等价的。两个约束是等价的。人工变量的引入一般来说是前后不等人工变量的引入一般来说是前后不等价的。只有当最优解中,人工变量都取值零时(此时人工价的。只有当最优解中,人工变量都取值零时(此时人工变量实质上就不存在了)才可认为它们是等价的。变量实质上就不存在了)才可认为它们是等价的。处理办法:把人工变量从基变量中赶出来使其变为非基变处理办法:把人
14、工变量从基变量中赶出来使其变为非基变量。为此,发明者建议把目标函数作如下处理:量。为此,发明者建议把目标函数作如下处理:2076543210003minMxMxxxxxxZxxxxxxxxxxxxx12341235623715421390 其中其中M为任意大的实数,为任意大的实数,M称为罚因子。用意:只要人称为罚因子。用意:只要人工变量取值大于零,目标函数就不可能实现最优。工变量取值大于零,目标函数就不可能实现最优。对此单纯形矩阵作初等行变换,有:对此单纯形矩阵作初等行变换,有:21000103910001301011011240001111MMTMMMM1000014329100013010
15、11011240001111MM(-1)(-3)(4M)MMMMM60430140366133040610110112301112031/62232/12/32/3030016/12/12/103/20133/10003/11002/12/12/11000MM32/12/32/303002/34/14/34/30102/333/10003/11002/12/12/11000MM3/2(-1/3)(3)2/34/14/34/30002/92/34/14/34/30102/32/54/14/14/10012/102/12/12/11000MM23至此,检验行已没有负数,当前解即为最优解。至此,检验
16、行已没有负数,当前解即为最优解。TX)0 , 0 ,23,25, 0(0最优值为最优值为:.23minZ去掉人工变量去掉人工变量 ,即得原,即得原LP问题的最优解:问题的最优解:76,xx2/34/14/34/30002/92/34/14/34/30102/32/54/14/14/10012/102/12/12/11000MM24 最优解判别定理:所有检验数最优解判别定理:所有检验数0 0;人工变量为;人工变量为0 0 无穷多最优解判别定理:所有检验数无穷多最优解判别定理:所有检验数 0 0;人工变量为;人工变量为0 0;存;存在某个非基变量的检验数为在某个非基变量的检验数为0 0 无可行解判
17、别:无可行解判别:所有检验数所有检验数 0 0;人工变量;人工变量0 0 (4)(4)无界解判别定理:有一个非基变量的检验数无界解判别定理:有一个非基变量的检验数0,0,但但该数对应的列中没有正元素;人工变量为该数对应的列中没有正元素;人工变量为0 0解的判别定理:解的判别定理:25单纯形法步骤单纯形法步骤v一、构造初始可行基一、构造初始可行基v1、引入附加变量,化为标准型、引入附加变量,化为标准型v2、必要时引入人工变量、必要时引入人工变量v3、目标函数中,附加变量系数为、目标函数中,附加变量系数为0,人工变量则为,人工变量则为Mv二、求基本可行解二、求基本可行解v1、用非基变量表示基变量和
18、目标函数式、用非基变量表示基变量和目标函数式v2、求出一个基本可行解及相应、求出一个基本可行解及相应Z值值v三、最优性检验三、最优性检验v依据依据:检验数及判别定理检验数及判别定理v四、基变换四、基变换v1、换入基的确定:检验数负值中最小的、换入基的确定:检验数负值中最小的v2、换出基的确定:最小非负比值规则、换出基的确定:最小非负比值规则v返回步骤二返回步骤二2654321002minxxxxxZ ) 5 , 4 , 3 , 2 , 1(06122.53214321ixxxxxxxxxtsi例例2 解解LP问题:问题:对单纯形矩阵作初等行变换,有:对单纯形矩阵作初等行变换,有:0001216
19、10111101221T按最小非负比值原则:按最小非负比值原则:116,11min 确定主元素。确定主元素。(-1)(1)1、无穷多个解、无穷多个解三、其他解的情况三、其他解的情况27101100511330101221至此,检验行已没有负数,至此,检验行已没有负数,当前解即为最优解。当前解即为最优解。此时对应的此时对应的LP问题为:问题为:) 5 , 4 , 3 , 2 , 1(05330122.543214321ixxxxxxxxxxt si01000min54321xxxxxS28101100511330101221此时对应的此时对应的LP问题为:问题为:1000max54321xxxx
20、xS) 5 , 4 , 3 , 2 , 1(05330122.543214321ixxxxxxxxxxt si0TX)5 , 0 , 0 , 0 , 1 (11S29101100511330101221此时对应的此时对应的LP问题为:问题为:1000max54321xxxxxS) 5 , 4 , 3 , 2 , 1(05330122.543214321ixxxxxxxxxxt si01TX)2 , 0 , 0 , 1 , 3(21S30当当0043xx时,不管时,不管 取何值,均有目标函数取何值,均有目标函数取得最大值取得最大值1。此时约束方程为:。此时约束方程为:53125221xxxx其中
21、其中 为基变量。为基变量。,1x5x25213521xxxx用非基变量表示出基变量:用非基变量表示出基变量:其中,其中, 为自由变量。设为为自由变量。设为 有有:2x,2cx cxcx352151其中其中c是满足非负性的任意常数。是满足非负性的任意常数。2x1000max54321xxxxxS31再由再由,1x5x的非负性,知:的非负性,知:0350021521cxcxcx解出解出350 c(其中(其中 )350 cTccc)35 ,0 ,0 , 12(最优解为:最优解为:最优值为:最优值为:-1322、无最优解的两种情况:、无最优解的两种情况: 无界解无界解例例3 解解LP问题:问题:212
22、minxxs)4 , 3 , 2 , 1(0105215.421321ixxxxxxxtsi解:解: 对单纯形矩阵作初等行变换,有:对单纯形矩阵作初等行变换,有:330001210105250111T1/200012521025150111(2)101060521025110211230注意到注意到6所在的列无正元所在的列无正元素,将基变量素,将基变量 及目及目标函数用非基变量标函数用非基变量 表表示为示为,1x3x,2x4x34xxxxxxZxx1243242451522311022610 从目标函数看,若令非基变量从目标函数看,若令非基变量, 04x2x无限增大,无限增大,Z也无限也无限性
23、,即该性,即该LP问题所追求的目标函数是无界的,即无最小问题所追求的目标函数是无界的,即无最小值,于是该值,于是该LP问题无最优解。问题无最优解。减小,且没有影响减小,且没有影响 的非负的非负,1x3x35 无可行解无可行解例例4 4 求解求解LPLP问题问题212maxxxZ0,6222212121xxxxxx221 xx62221 xx1x2x解:可行域为空集,无可行解。解:可行域为空集,无可行解。36下面先把此下面先把此LP问题化为标准型,然后用单纯形法大问题化为标准型,然后用单纯形法大M求解。求解。4321002minxxxxZ06222515421321xxxxxxxx对单纯形矩阵作
24、初等行变换,有:对单纯形矩阵作初等行变换,有:212maxxxZ0,6222212121xxxxxx3700012611022200111MT从最后一个矩阵可看出,此从最后一个矩阵可看出,此LP问题无可行基,当然就无问题无可行基,当然就无可行解。可行解。MMMM6002122611022200111MMM240221021120020011138LP当前解已是最优的四大特征:当前解已是最优的四大特征: 存在一组存在一组( (初始初始) )可行基(其系数矩阵为单位阵)。可行基(其系数矩阵为单位阵)。 检验行的基变量系数检验行的基变量系数=0。 检验行的非基变量系数检验行的非基变量系数 0。全部全
25、部0唯一解。唯一解。存在存在=0无穷多个解。无穷多个解。 常数列向量常数列向量0。下面的问题是:所给下面的问题是:所给LPLP的标准型中约束矩阵中没有现成的的标准型中约束矩阵中没有现成的可行基怎么办?可行基怎么办?392.2 单纯形法的表格形式单纯形法的表格形式书例书例2.1 P18 5 , 1, 0522834min532431321ixxxxxxxxxxZi表格:表格:P2540v作业vP79 1.3(2),1.7(1)41大大M法目标是尽快把人工变量从基变量中全部法目标是尽快把人工变量从基变量中全部“赶赶”出去出去(如果能全部(如果能全部“赶赶”出去的话)。所用方法除了大出去的话)。所用
26、方法除了大M法外,法外,还有下面的两阶段法。还有下面的两阶段法。 两阶段法两阶段法用大用大M法处理人工变量时,若用计算机处理,必须对法处理人工变量时,若用计算机处理,必须对M给出给出一个较大的具体数据,并视具体情况对一个较大的具体数据,并视具体情况对M值作适当的调整。值作适当的调整。为了克服这一麻烦,下面的两阶段法将问题拆成两个为了克服这一麻烦,下面的两阶段法将问题拆成两个LP问问题分两个阶段来计算:题分两个阶段来计算:2.3 大大M法和两阶段法法和两阶段法42v两阶段法的第一阶段求解一个目标中只包含人工两阶段法的第一阶段求解一个目标中只包含人工变量的变量的LP问题,即令目标函数中其它变量的系
27、数问题,即令目标函数中其它变量的系数取零,人工变量的系数取某个正的常数(一般取取零,人工变量的系数取某个正的常数(一般取1),在保持原问题约束不变的情况下求这个目),在保持原问题约束不变的情况下求这个目标函数极小化的解。标函数极小化的解。v显然在第一阶段中,当人工变量取值为显然在第一阶段中,当人工变量取值为0时,目时,目标函数值也为标函数值也为0。这时候的最优解就是原问题的。这时候的最优解就是原问题的一个基可行解。如果第一阶段求解结果最优解的一个基可行解。如果第一阶段求解结果最优解的目标函数值不为目标函数值不为0,也即最优解的基变量中含有,也即最优解的基变量中含有非零的人工变量,表明原非零的人
28、工变量,表明原LP问题无可行解。问题无可行解。43v第二阶段:求解原线性规划问题的最优解。第二阶段:求解原线性规划问题的最优解。v以第一阶段的最终单纯形表为基础,去掉人以第一阶段的最终单纯形表为基础,去掉人工变量,目标函数换为原问题的目标函数,工变量,目标函数换为原问题的目标函数,得到第二阶段的初始表,继续迭代求解。得到第二阶段的初始表,继续迭代求解。44miinx1min0, 0112211222222121111212111mnmnmmnnmnmmnnnnnnxxxbxxaxaxabxxaxaxabxxaxaxa 若求得的单纯形矩阵中,所有人工变量都处在非基变量若求得的单纯形矩阵中,所有人
29、工变量都处在非基变量的位置。即的位置。即 及及 。则从第。则从第1 1阶阶段去掉人工变量后,即为原问题的初始单纯形矩阵。并进入第段去掉人工变量后,即为原问题的初始单纯形矩阵。并进入第2 2阶段。阶段。n ixim0(1,2,) *0 第一阶段求解第一个线性规划:第一阶段求解第一个线性规划:45 若第一阶段所求得的单纯形中仍含有(解)非零的人工若第一阶段所求得的单纯形中仍含有(解)非零的人工变量,则说明原问题无可行解。不再进入第变量,则说明原问题无可行解。不再进入第2 2阶段。阶段。因此两阶段法的第因此两阶段法的第1阶段求解有两个目的:一为判断原问题阶段求解有两个目的:一为判断原问题有无可行解。
30、二,若有,则得原问题的一个初始可行基,再有无可行解。二,若有,则得原问题的一个初始可行基,再对原问题进行第对原问题进行第2阶段的计算。阶段的计算。46xxxxxxxxxxxxx12341235623715421390 76minxx 对单纯形矩阵作初等行变换,有:对单纯形矩阵作初等行变换,有:76543210003minMxMxxxxxxZ例:例:第第1阶段:阶段:4701100000910001301011011240001111T11010112910001301011011240001111100010042910001301011011240001111(-1)(-1)48100100
31、429100130101011240011111x2x3x4x5x7x6030406613040610101123011203(-3)(4)6304066304061101123112031/6(-1)4963040612/103/201110112311203(-3)(6)200000012/103/2013003/11002/110001x2x3x5x4x转入第2阶段:543210003minxxxxxZ3-1(-3)5032/3030012/103/2013003/11002/110003/232/303002/34/30102/33003/11002/11000(-1/3)(3)2/3
32、4/30002/92/34/30102/32/54/10012/102/1100051书例:表格形式书例:表格形式7 , 1, 0522. .834min7532643176321jxxxxxxxxxtsMxMxxxxZj大大M法法:P25 表表2.2.1 两阶段法两阶段法:P27 表表2.3.1;2.3.252v作业vP80 1.8(1)532.5 改进单纯形法改进单纯形法v单纯形法计算的特点是每迭代一次,就要把整个单单纯形法计算的特点是每迭代一次,就要把整个单纯形表重新计算一遍。从计算机的角度来讲,单纯纯形表重新计算一遍。从计算机的角度来讲,单纯形法并不是一种经济高效的方法。形法并不是一种
33、经济高效的方法。v首先是要占用大量的存贮空间,其次,由于每次计首先是要占用大量的存贮空间,其次,由于每次计算都利用上一次的单纯形表,当计算次数较多时,算都利用上一次的单纯形表,当计算次数较多时,容易造成误差的积累,直接影响计算精度和收敛速容易造成误差的积累,直接影响计算精度和收敛速度。度。v改进单纯形法的基本计算步骤和单纯形法基本相同,改进单纯形法的基本计算步骤和单纯形法基本相同,但在上述两方面有所改进。但在上述两方面有所改进。54v在单纯形法的迭代过程中,我们实际需要的在单纯形法的迭代过程中,我们实际需要的只有以下各项:只有以下各项:v1、检验数、检验数 ,以判断是否最优或确定以判断是否最优
34、或确定换入基变量。换入基变量。v2、换入变量所在列的各元素、换入变量所在列的各元素 和基变量的和基变量的值值 ,根据,根据 决定换出基变量。决定换出基变量。jjjzc ijaibijiab55 Min z = CX s.t. AX=b X 0,),(),(NBNBXXXCCCNBA单纯形法的矩阵形式单纯形法的矩阵形式0, 0min NBNBNNBBXXbNXBXXCXCz560 zXCXCbNXBXNNBBNBBNB BXB NXB b111 BNNNBEXB NXB bXzC B b111 BNBBNNXB NXB bC XC Xz110 得得代代入入NBNBCC B N XzC B b11
35、() 57BNNNBEXB NXB bXzC B b111 NBCCbBCzbBXXBNNBBN111 , , 0 得得令令.,0 !出出则则最最优优解解直直接接由由上上式式求求若若能能找找到到最最优优为为最最优优基基的的使使注注BBN bBCzbBXB11 0 目目标标函函数数基基本本可可行行解解NBNBCC B N XzC B b11() 即即58v在单纯形法的矩阵形式中我们可以发现,单纯形表中的其它在单纯形法的矩阵形式中我们可以发现,单纯形表中的其它数字可利用数字可利用 和原始系数进行运算直接得到:和原始系数进行运算直接得到:v这就是改进单纯形法的出发点。这就是改进单纯形法的出发点。v令向量令向量Y表示表示 ,即,即 称其为称其为单纯形乘子单纯形乘子。vP34例子例子2.5 jjjBjjjjPBPbBbPBCczc111 1 BCB1 BCYB1 BbBCzB1