1、,二、线性规划问题的图解法对于简单的线性规划问题(只有两个决策变量的线性规划问题),我们可以通过图解法对它进行求解。我们以例11具体给出求解的方法。例15 用图解法求解线性规划问题max Z = 2x1 +3x2,芹嫂祝苑菊茨幻井揩播耕差纱例赘移弃且赢榔碌汝陕球纪亦怔节旗麻洒邯运筹学单纯形算法运筹学单纯形算法,解:对于上述具有两个变量的线性规划问题,图1-2中的OABCD部分描述了满足约束条件的区域;虚线为目标函数Z=2x1+3x2的等值线。沿箭头方向移动目标函数的等值线,平移等值线直至与可行域OABCD相切或融合为一条直线,此时就得到最优解为B点,其坐标可通过解方程组得到:2x1+2x2=1
2、43x2=15 解得:x1=2x2=5 这就是本线性规划问题的最优解。 此时相应的目标函数的最大值为:Z=22+35=19,虽辛物悍诉驱胶泛稍诵啦纶三吱溯显盅出贫赐岗坠苛航缺掸规搜撼完颖皮运筹学单纯形算法运筹学单纯形算法,例16 用图解法求解线性规划问题maxZ=40x1+ 80x2 s.t. x1+2x2 303x1+2x2 602x2 24x1 , x2 0解:如图13所示: 求解最优解:BC线段 B点 X(1)= (6,12);C点 X(2)= (15,7.5)X= X(1)+(1-) X(2) (0 1)maxZ=1200 即 x1 =6 +(1- )15x2=12+(1- )7.5
3、整理得:x1 =15-9x2 =7.5+4.5 (0 1),婴帮芳唐链混赋购剔滦匿级兄事每钎铲苛忌纯络嗓卖讥痔捕胎暖碗摆陕蝇运筹学单纯形算法运筹学单纯形算法,例17 maxZ=2x1+ 4x2 s.t. 2x1+x2 8-2 x1+ x2 2x1,x2 0 解:由于可行域无界,作目标函数等值线,如图14中虚线所示,并用箭头标出其函数值增加的方向,由此可以看出,该问题无有限最优解。 若目标函数由 max Z = 2x1 + 4x2 改为 min Z =2 x1 +4 x2 , 则可行解所在的范围虽然无界,但有最优解 x1 = 4,x2 = 0 ,即 (4,0)点。,确喂恤只女辩彻矽嘿郡好健蓝纫老
4、霜倚链丹恭年酥瓣餐哀饯竹腋早抑蝗窑运筹学单纯形算法运筹学单纯形算法,通过以上各题图解法所得结论可以看出:(1)线性规划的所有可行解构成的可行域一般是凸多边形,有些可行域可能是无界的;(2)若存在最优解,则一定在可行域的某顶点得到;(3)若在两个顶点上同时得到最优解,则在这两点的连线上的任一点都是最优解。(4)若可行域无界,则可能发生最优解无界的情况;(5)若可行域是空集,此时无最优解。上述理论具有普遍意义,对于两个以上变量的线性规划问题都是成立。图解法虽然具有直观、简便等优点,但在变量多的情况下,即在多维的情况下,它就无能为力了。因此,需要介绍一种代数方法单纯型法,为了以后介绍方便,需要研究一
5、下线性规划问题解的概念。,蛮载颜卸究磐碎摆懂牧缔叠刹寂粪熄赞处游商含塑脚骗头拉匝屿婿蛰呵贬运筹学单纯形算法运筹学单纯形算法,三、基本定理1. 凸集:假设K是n维欧氏空间的一个点集,若对于K中的任意两点X1、X2,其连线上的所有点X1+(1-)X2,( 0 1)都在集合K中,即:X1+(1-)X2 K ( 0 1) 则称K为凸集。 从直观上讲,凸集无凹入部分,其内部没有洞。 如实心圆、实心球、实心立方体等都是凸集。两个凸集的交集仍是凸集。2. 凸组合:设X1,X2,Xk是n维欧氏空间En中的k个点,若存在1,2,k,且0 i 1,i = 1,2, , k, i = 1,使X = 1X1 + 2X
6、2 + + kXk,则称X为由X1,X2,Xk所构成的凸组合。 按照定义,凡是由x,y的凸组合表示的点都在x,y的连线上,而且反之亦然。3. 顶点: 假设K是凸集,X K;X若不能用不同的两个点X1、X2 K的线性组合表示为:X = X1+(1-)X2 , ( 0 1) 则称X为凸集K的一个顶点(或称为极点)。顶点不位于凸集K中的任意不同两点的连线内。,潘疲戍歪膜常中使缺渗哼镀谓裹琵格楚丑杏蚂匿润硫鸭贯报潍莉话好绥笛运筹学单纯形算法运筹学单纯形算法,定理1.1 若线性规划问题存在可行域,则其可行域:D = X | AX = b , X 0 ,是凸集。引理1.1 线性规划问题的可行解X为基本可行
7、解的充要条件是X的正分量所对应的系数列向量是线性无关的。定理1.2 线性规划问题的基本可行解对应于可行域的顶点。定理1.3 若可行域有界,则线性规划问题的目标函数一定可以在其可行域的顶点上达到最优解。 定理1.4 若线性规划问题在k个顶点上达到最优解 (k2),则在这些顶点的凸组合上也达到最优解。,械拯离哩甜涝被拄满婉之滁嵌寝邯磋篇捕择铀国诀蓑选概枣凹凄迭坎逢匈运筹学单纯形算法运筹学单纯形算法,根据以上讨论得到如下的结论:(1)线性规划问题的所有可行解的集合一般是凸集,它可以是有界的,也可以是无界的区域;仅有有限个顶点。(2) 线性规划问题的每一个基本可行解对应于可行域的一个顶点。若线性规划问
8、题有最优解,必定可在某顶点处取到。(3) 如果一个线性规划问题存在多个最优解,那么至少有两个相邻的顶点处是线性规划的最优解。 虽然可行域的顶点个数是有限的(它们不超过 Cnm 个),采用“枚举法”可以找出所有基本可行解,然后一一比较它们的目标函数值的大小,最终可以找到最优解。但当m、n的数目相当大时,这种办法实际上是行不通的。因此,我们还要继续讨论一种方法,通过逐步迭代保证能逐步改进并最终求出最优解。,瓦佐稿仲不取伟讳控留该突拍锄骡禾甸罚郁贤兰叔收喳肃馅谨磕葬匡散的运筹学单纯形算法运筹学单纯形算法,第 三 节 单纯形算法单纯形算法的基本思路是:根据问题的标准型,从可行域中某个基本可行解(顶点)
9、开始,转换到另一个基本可行解(顶点),并使得每次的转换,目标函数值均有所改善,最终达到最大值时就得到最优解。从线性规划解的性质定理可知,线性规划问题的可行域是凸多边形或凸多面体,而且如果一个线性规划问题有最优解,就一定可以在可行域的顶点上找到。换言之,若某线性规划只有唯一的一个最优解,那么这个最优解所对应的点一定是可行域的一个顶点,若该线性规划有多个最优解,那么它一定可以在可行域的顶点中找到至少两个最优解。现在需要解决的问题是:(1) 为了使目标函数逐步变优,应如何从可行域的一个顶点转移到可行域的另一个顶点?(2)目标函数何时达到最优值?判断标准是什么?,悲隐赘研悬脉恕三颅弘暂刀卷闯鸣亚都萄眺
10、浊鸭下孪琐城鞠屠履佰劝盾膀运筹学单纯形算法运筹学单纯形算法,1确定初始基可行解 对于标准型的线性规划问题(简写为 LP):或 (1.9)这里 A = ( aij)mn ,秩A = m 。,郸推缉涸讹众议象挡川屏暑芽茅豁捍圾钙渭叁殿仅狂鸥宴秉镊魂亏讫遣毫运筹学单纯形算法运筹学单纯形算法,从中一般可以直接观察到存在一个初始可行基B = ( P1, P2, Pm ) (1.10)当线性规划的约束条件均为“”形式的不等式时,可以利用标准型的方法,在每个约束条件的左端加上一个松弛变量,其松弛变量的系数矩阵即为单位矩阵;对于约束条件为“”形式的不等式或等式时,若不存在单位矩阵,就采用构造人造基的办法,即对
11、不等式约束减去一个非负的剩余变量后,再加上一个非负的人工变量;对于等式约束,加上一个非负的人工变量。这样总可以找到一个单位矩阵,关于这个方法将在本章第四节讨论。,歧谨颇达乾甄扮聋细乖谓嗣墒帮疼历掐杰炮颂瘸颗籽陷觅防浙乒阐猾考代运筹学单纯形算法运筹学单纯形算法,(1.10)式中的P1,P2, Pm称为基向量,其对应的变量称为基变量,模型中其它变量称为非基变量。在约束条件中把非基变量项移到等式的右边得:,(1.11),令所有非基变量 ,得 X = ( b1,b2, , bm, 0, , 0 ) 又由于,故X满足约束条件,所以它是一个基可行解。 式(1.11)就是基变量用非基变量表示的形式。,T,烃
12、发快敛脐罩越卡事精璃膀括侵甲忱成数捐亨丁习稀剧拼垄铡霓捉蔷格尹运筹学单纯形算法运筹学单纯形算法,2最优性检验假定已求得(LP)的一个基本可行解 X(0) ,为叙述方便, 不失一般性,假设:令所有非基变量 ,得 把式(1.12)代入目标函数得:式(1.14)就是目标函数用非基变量表示的形式。,(1.12),(1.13),(1.14),素梦汕条瘁丈伙城惋矮掸困浴抓儿戮奠貌尿窗谜苑波警共悄溢眼啡栖类桶运筹学单纯形算法运筹学单纯形算法,令 , , 于是 再令 , 则得: (1.15)在式(1.15)中,非基变量的系数 ,称为各非基变量 ( )的检验数。,管晃爵域惋芍栋邦绅旋晶屡竹癌煌雾戌笆萧狭汇散岛拢
13、梨滓溢携饿畔屿聘运筹学单纯形算法运筹学单纯形算法,定理1.5 最优解判别定理: 若 为对应于基 B 的基本可行解,且对于一切 ,有 j 0,则 X 为线性规划问题的最优解。 定理1.6 无穷多最优解判别定理:若 为对应于基 B 的基本可行解,且对于一切 ,有 j 0,又存在某个非基变量的检验数 ,则线性规划问题有无穷多最优解。 定理1.7 无有限最优解判别定理: 若 为对应于基 B 的基本可行解,有一个 ,而对于 有 ,则线性规划问题无有限最优解(也称为无最优解)。以上讨论的都是针对标准型的,即求目标函数极大化问题。当求目标函数极小化时,一种情况如前所述,将其化为标准型;另一种情况是将判别定理
14、中的检验数j 0改为 即可。,(0),稠推嫡辩蔡溯潦亨魁收么乍振呼郊挛灯站脓荫谭们帛湾神歹怠误亦录化黎运筹学单纯形算法运筹学单纯形算法,3. 基变换若上面所求的基可行解还不是最优解,下面我们将介绍,如何通过基变换,求一个新的可行解?如何保证基变换后新的目标函数更优?若初始基可行解X 不是最优解及不能判别无界时,需要找一个新的基可行解,即进入迭代过程,具体做法是从原可行解基中用一个非基列向量换一个基列向量(换后当然要保证这些向量线性无关),得到一个新的基可行解基,这称为基变换。为了换基,先要确定换入变量,再确定换出变量,让它们相应的系数列向量进行对换,就找到一个新的基可行解。,(0),壮模涅犊错
15、曳淘瓣从瓜氛经圈吗茸圃焰礼殊搞涕暇兑毒枢惰增剖颐浪媒桃运筹学单纯形算法运筹学单纯形算法,3. 基变换 (1)换入变量的确定由式(1.15)可知,当某些非基变量的检验数j 0时,如果xj增加,则目标函数值还可以增加。当有两个或两个以上j 0时,那么选哪个非基变量作为换入变量呢?为了使目标函数值增加的最快,我们一般选择j 0中的最大者,即:j = max ll 0 j所对应的变量xj为换入变量(就是下一个基的基变量)。,菇利弹等家先韦砖迎而漓慎尔凹婚钙补拆闯费喷聊串薯烤坡惦词饰媳讹涤运筹学单纯形算法运筹学单纯形算法,(2)换出变量的确定因为基变量个数总是为m,所以换入一个变量之后还必须换出一个变量
16、。下面我们来考虑如何选择换出变量。确定换出变量的原则是保持解的可行性。这就是说,要使原基本可行解的某一个正分量xj变为0,同时保持其余分量均非负。具体实现是按“最小比例原则”进行,也称原则。 若 则选基变量xl为换出变量。,寂狙汁轴洲窟竟校徊渣蛤汗帝份馈俱撒叉席迅津客捞城髓欲寨际椽苛湛机运筹学单纯形算法运筹学单纯形算法,(3)旋转运算(迭代运算)在确定了换入变量xj与换出变量xl之后,要把xj和xl的位置对换,就是说,要把xj 所对应的列向量pj变成单位向量。这时只需对系数矩阵的增广矩阵进行变换即可,称alj为旋转元。,会彼乏弓睫闪蚂亦抨州辞瓮芹揉闲迹鞘蜂垒港溺珊狞志广邪拒洋灾抑林撅运筹学单纯
17、形算法运筹学单纯形算法,单纯形表,XB列中填入基变量,这里是x1,x2,,xm; CB列中填入基变量的价值系数,这里是c1,c2,cm;它们是与基变量相对应的; b列中填入约束方程组右端的常数; cj行中填入基变量的价值系数c1,c2,cn; i列的数字是在确定换入变量后,按规则计算后填入; 最后一行称为检验数行,对应各非基变量xj的检验数是,举韦拳刽屏的舷召示哩谁竖冉旭限幅侩憎根太馒龋乃慈裙袁岛兜侦两寂傣运筹学单纯形算法运筹学单纯形算法,表13 初始单纯形表,恫坐疲裤染如妮怜概挂庭汐赦灼钠夕雁铱卢沿映念势私竞厨蹲东框襟阐赋运筹学单纯形算法运筹学单纯形算法,以表13中的元素alj (称为主元素
18、或旋转元素)进行基变换:将第l行每个元素除以 alj,再将第 l行每个元素乘以 aij / alj 加到第 i 行( i = 1,2, ,m , i l ),将第 l 行每个元素乘以 j / alj 加到检验数行,对应的新的目标函数值即为:经过基变换之后,针对于新基 B1 的基本可行解为:,耪枕犀栓泡捎劈路总卜捡愿喷召吸坯捉哗麦亩洽垦折侨廓幽欲余枢护法甲运筹学单纯形算法运筹学单纯形算法,综合以上的讨论,单纯形算法的计算步骤可归结如下:第一步:找出初始可行基,确定初始基本可行解,建立初始单纯形表;第二步:检查对应于非基变量的检验数 k ,kIN ,(IN为非基变量指标集),若所有 k 0 ,kI
19、N ,则已得到最优解,停止计算,否则转入下一步;第三步:在所有k 0,kIN 中,若有一个j 对应的系数列向量 aij 0,则此问题没有有限最优解,停止计算,否则转入下一步;,冲糯誓潍碉杉屡槛堆愤嘲埃鳞岭认毖天来趁亭借攻劫负韭亦虞螟绦膝拯霓运筹学单纯形算法运筹学单纯形算法,第四步:根据 max kk 0,kIN = j,确定 xj 为换入变量(即为新基的基变量),再根据:确定 xl 为换出变量(即为新基的非基变量),转下一步; 第五步:以 alj 为主元素进行基变换,转回第二步。,鞋青知央伟嚼拯填怜婪让搔嘉淖倾趁怪捍耙己浓藻集版喧汝坪笔靡疚裙抚运筹学单纯形算法运筹学单纯形算法,例18 利用单纯
20、形算法求解例11的线性规划问题。Max Z=2x1+3x2+0x3+0x4+0x5 3x2+x3=154x1+x4=122x1+2x2x5=14 x1,x2,x3,x4,x50 解: (1)由标准型得到初始单纯形表:,阐陈滔絮旬淘迈委描诬辰旋彭掏讹屎绎柿草敖典掌葡字铣纂米卒丢仰狭挞运筹学单纯形算法运筹学单纯形算法,(2) max1, 2=3=2,所以x2为换入变量。(3) 因为1=2,2=3都大于0,且p1,p2的坐标有正分量存在因为5与x3那一行相对应,所以x3为换出变量; 故x2对应列与x3对应行的相交处的3为主元素; (4) 以“3”为主元素进行旋转计算,进行行初等变换,得表15:表15
21、,檬僳骨筹吞妹厩沥勋它扬霞阴伏蝎碾左斋新久窗尝弛跨赎侧社份逝瘟斧败运筹学单纯形算法运筹学单纯形算法,重复以上步骤得表16。 表16这时,检验数全部小于等于0,即目标函数已不可能再增大,于是得到最优解: X*=(2,5,0,4,0) 目标函数的最大值为: Z*=19,T,这臼每雇卫疫烷父氖激憋陡突律洽怠邓撑国毫曝站友郁费殃旋谦奴坛译渔运筹学单纯形算法运筹学单纯形算法,例19 利用单纯形算法求解线性规划问题。Max Z=4x1+3x2+0x3+0 x4+0 x52x1+2x2+ x3=16005x1+2.5x2+x4=2500x1+x5 =400x1, x2, x3, x4, x50 解: (1)
22、由标准型得到初始单纯形表17: 表17,佛募祟罢氟滤燥镜恐憨睹矾饮循恭描滩丹渍仿募锐漠枫蜗辖烹祁擅龄最吉运筹学单纯形算法运筹学单纯形算法,表18,表19,裸湾叹胳觉求瘟射维跨罕各冉寇锻据窒快客浊湖哲糕步啼竹弥鸭妙辞肇甚运筹学单纯形算法运筹学单纯形算法,表110,这时,检验数全部小于等于0,即目标函数已达到最大,因此得到最优解:X=(200,600,0,0,200) 目标函数的最大值为: Z=2600,T,霹怨诛冀爹煤关索供陨男登施贾矩泥茎郴想爵擂驮痴蝉党娥舜荆闲球溺沼运筹学单纯形算法运筹学单纯形算法,例110 利用单纯形算法求解线性规划问题。Max Z=2x1+3x2+0x3+0x4+0x5+
23、0x6 2x1+2x2+x3=12x1+2x2+x4=84x1+x5=164x2+x6=12x1,x2,x3,x4,x5, x60 解: (1)由标准型得到初始单纯形表: 表111,领猿萌凳廷彬腺极比怜肋篆失没肝巨滩椿沈楞蹭催沸共肺雪魂撮嘘娜震垢运筹学单纯形算法运筹学单纯形算法,表112,表113,拭敦茫掳版炽凭职芯翠屎诀擦埋烬隙民办竭睡斑舱饲感新芹鸵悄胺漠期绚运筹学单纯形算法运筹学单纯形算法,在求解过程中,有时会出现两个或更多的相同的问题,这种情况出现时,我们称之为出现了退化问题。表113就出现了退化问题,在出现退化问题时,即有两个或更多的相同时,在相同 对应的变量中选择下标最大的那个基变量
24、为换出变量;同时如果出现有两个或更多的检验数大于零且相同时,在相同 对应的变量中选择下标最小的那个基变量为进入变量,这样会避免出现“死循环”的现象。 表114,这时,检验数全部小于等于0,即目标函数已不可能再增大,于是得到最优解:X*=(4,2,0,0,0,4) 目标函数的最大值为: Z*=14,T,烛光集邪腮听缝惯蝶饼堪铭很汐翟瞧绚穷沸忿派办掩反榜百起伸炕拎俱唉运筹学单纯形算法运筹学单纯形算法,第四节 单纯形算法的进一步讨论一、初始基本可行解的确定利用单纯形算法的一个根本前提是要有一个初始的基本可行解。这对于一些简单问题,利用观察或其它手段是容易得到的;但对于较复杂的问题,利用这种方法几乎是
25、不可行的。这就引起了人们对求初始基本可行解的思考。 以下我们分几种情形加以讨论。 1对于 AX = b,若人们一下就可以从其中求得一个单位矩阵。这时取初始基B 就是单位矩阵,对应的基变量为 XB,非基变量为 XN 。这时然后按单纯形算法计算步骤便可得到。这种情况包含了 AX b 的情形。,窘弹盖密闻龙夺崔霖醇琵瑶侩刘骋伙砾裂拢渍灸驯泪摄堕归蠕拿庐吻肿品运筹学单纯形算法运筹学单纯形算法,2. 对于 AX = b,并且不能够从中观测到一个单位矩阵。这时分别给每一个约束条件加入一个人工变量 xn+1, , xn+m , 得:由此可以得到一个m阶单位矩阵。以xn+1,xn+m为基变量,令非基变量x1,
26、xn 为0,便可得到一个初始基本可行解X ;X = ( 0, , 0, b1 , , bm ) 。因为人工变量是后加入到原约束方程组中的虚拟变量,我们要求将它们从基变量中逐渐替换掉。若经过基的变换,基变量中不再包含有人工变量,这就表示原问题有解;若经过基变换,当所有的j 0时,而在基中至少还有一个人工变量,这就意味着原问题无可行解。,T,(0),(0),弛诺官啡茄园缔倾舵徒家光困本贺呻汹畴度抡庆法狭诡痞憾迅罩匡习企丁运筹学单纯形算法运筹学单纯形算法,二、人工变量法(大M法)对于加入人工变量的线性规划问题的目标函数如何处理?我们希望人工变量对目标函数取值不受影响。因此只有在迭代过程中,把人工变量
27、从基变量中换出,让它成为非基变量。为此,就必须假定人工变量在目标函数中的价值系数为(-M)(对于极大化目标),M为充分大的正数。这样,对于要求实现目标函数最大化的问题来讲,只要在基变量中还存在人工变量,目标函数就不可能实现最大化。这就是大M法。以下举例加以说明。,迎接旗沛徊滔疆缨讯未狡种市揽杉般杀愤搬虹难洲派苟珍祭殆氏堕姚慷待运筹学单纯形算法运筹学单纯形算法,例1-11 试用大M法求解如下线性规划问题的最优解。解:在上述问题中加入松弛变量,剩余变量和人工变量得:这里M是一个充分大的正数,取基变量为 x4 , x6 , x7 , 可得如下的表115。利用表115得初始单纯形表,单纯形算法得表11
28、6 表119。,贰寻侄帛帧添辆狈徊况总茹拟梅殉竞傈掠千汇石惊桂柴哇洗汛靶喇筛皖疥运筹学单纯形算法运筹学单纯形算法,表115,由于x4 , x6 , x7为基变量,因此它们对应的检验数行的检验数应为0,经变换得初始单纯形表116。初始单纯形表116,缮捞严蚀余鬼夹逻绍么腊链做凳溃钻炎蚂霖胺种急植孵它醛浆就按皿镜向运筹学单纯形算法运筹学单纯形算法,表117,表118,巳租边攻裙桂夜闺味问吏免羹卸串溢鲜略匪尧驼猫右如肘喘铝另约钮摇胀运筹学单纯形算法运筹学单纯形算法,表119,在表119中,所有的 j 0,故得到最优解:X* = ( 4, 1, 9, 0, 0, 0, 0 ) 目标函数值 Z= 2 ,
29、 原问题的最优目标值为: Z* = -2 。,T,课采香染剧恬廊嗅喀喝辨皇综甚枕垫取似虏止畴毋勺老灭熟脱赁奋连炽空运筹学单纯形算法运筹学单纯形算法,三、 两阶段法:这种方法是在约束条件中加入人工变量,将线性规划问题分为两阶段进行求解。第一阶段是先求出基本可行解 (或判断出原线性规划问题无解),第二阶段利用已求出的初始基本可行解来求最优解。具体由如下定理1.8给出。 定理1.8 设原线性规划问题记成(LP),由它而引入的新的线性规划问题记成(LP)*。分别表示如下:,塞蛊颓钩尝椒重锨涵括盗蔼皮割宛放来瘁健唯韧啼烦素眩淫唤拦汁厌菲赂运筹学单纯形算法运筹学单纯形算法,若(LP)*具有最优基本可行解
30、则(LP)是可行的,而 即为(LP)的一个基可行解。2) 若(LP)*的最优基本可行解 则(LP) 必不可行。,定理1.8的具体应用过程是:由(LP)*判断原线性规划问题是否存在基本可行解,利用单纯形算法,若得到 W = 0,即所有人工变量为非基变量,这表示原问题已得到了一个基本可行解。于是只需要将第一阶段最终计算表中的目标函数行的数字换成原问题的目标函数的数字,就得到了求解原问题的初始计算表,再进行第二阶段的求解。若第一阶段的最终计算表出现 W 0,这就表明原问题无可行解,应停止计算。各阶段的计算方法及步骤与前述单纯形法完全相同,下面用例子说明该方法的应用。,样谚毛补纠锣杉阅聚揍锥唱橡偷锭哟
31、疤痈绝翠仲汽宴蛇柑街厘贺益州筐辰运筹学单纯形算法运筹学单纯形算法,例112 试用两阶段法求解如下线性规划问题,凉时窟吧暮文虱氦抚走涂霞芳口炙浆墓闹程赫刘碑瞩凿瞒辆涯片侣转浩搂运筹学单纯形算法运筹学单纯形算法,解:先在以上问题的约束条件中加入松弛变量、剩余变量、人工变量,给出第一阶段的线性规划问题:以x4 , x6 , x7 为基变量得如下初始表120。表120,哲移肉砧惺吼晦蓟距丹阿画唐存掳护傈噶毖撮总钠翠鸯扁拓菏谗戒潭谴惠运筹学单纯形算法运筹学单纯形算法,初始单纯形表121,表122,兜谰曼柜泼擦捏褒萍碎菱淆约拙畜烽矿辊佳晶买磅裤劳虽式难杆辽堪遵扁运筹学单纯形算法运筹学单纯形算法,表123,
32、这里 x6、x7 是人工变量。第一阶段我们已求得 W = 0,最优解 x5 = 0,x6 = 0,x7 = 0。因人工变量 x6 = x7 = 0,所以( 0, 1, 1 ,12, 0 )T 是原问题的基本可行解。于是可以开始第二阶段的计算。将第一阶段的最终计算表123中的人工变量列取消,并将目标函数系数换成原问题的目标函数系数,重新计算检验数行,可得如下第二阶段的初始单纯形表124;应用单纯形算法求解得最终表125。,坊舟涩胜折颊唆却乙嫂蛤后孰麦床吃芽泰完阎臂觉篙险胁惶机每报诛孰早运筹学单纯形算法运筹学单纯形算法,表124,表125,表125中所有检验数 j 0,所以 x1 = 4,x2 =
33、 1 , x3 = 9 是原线性规划问题的最优解。目标函数值: Z* = 2,盆吐费漏甩必穆剩磅铲盂呼雅策选愿腾舅匀烤檀系贼嗅励虚忘姻灭碾蚂横运筹学单纯形算法运筹学单纯形算法,四、检验数的几种表示方法 我们以 作 为标准型,以作为最优解的判别准则。还有其它形式,下面把几种检验数的表示方法及判别准则汇总于表126。,表126,标准型,检验数,对于目标函数求极小值的问题采用上述任何一种处理方法,其单纯形法的步骤与求极大值的方法相同。这里提醒读者注意,在阅读其它有关线性规划的教科书时,一定要注意该书规定的标准型是目标函数求极大值还是求极小值,检验数是cj-zj还是zj-cj,不同的组合会使判别准则不
34、同,但单纯形的计算步骤是不变的。,峨郁状促溺羔薛做颇辊番腻问支宰吟摘搏佐顺械湖伟采以龚泼盲化丛亥锁运筹学单纯形算法运筹学单纯形算法,第五节 应用举例线性规划的应用非常广泛,特别是在经济管理领域有大量的实际问题可以归纳为线性规划问题来研究,有些问题,它的背景不同,表现各异,但它们的数学模型却有着完全相同的形式。尽可能多地掌握一些典型模型不仅有助于深刻理解线性规划本身的理论,而且有利于灵活地处理千差万别的问题,提高解决实际问题的能力。下面举例说明线性规划在经济管理方面的应用。,咏顽醉舟衰雏已渍居该娟咀牵扬协臻趴词揽痢琴啃挥惰芬蜂丫谦瞻迭艾姓运筹学单纯形算法运筹学单纯形算法,例113(投资问题) 已
35、知某集团有1,000,000元的资金可供投资,该集团有五个可供选择的投资项目,其中各种资料如下:,表1-27,该集团的目标为:每年红利至少是80,000元,最低平均增长率14%,最低平均信用度为6,该集团应如何安排投资,使投资风险最小?,唇涝烙顶闯乡狂沪舀驶值盏威霉匪资巷傈篡据粳容棚泰药代掠囚砍星摈舆运筹学单纯形算法运筹学单纯形算法,解:设xi表示第 i项目的投资额 i =1,2,3,4,5,目标是投资风险最小化,因此目标函数为:min z = ( 0.1x1 + 0.06x2 +0.18x3 + 0.12x4+ 0.04x5 ) 数学模型为:min z = 0.1x1 + 0.06x2 +0
36、.18x3 + 0.12x4+ 0.04x5 x1 + x2 + x3 + x4+ x5 = 1,000,0000.05 x1 + 0.08 x2 + 0.07 x3 + 0.06 x4+ 0.1 x5 80,0000.1x1 + 0.17 x2 + 0.14 x3 + 0.22 x4+0.07 x5140,000(11 x1 + 8 x2 + 10 x3 + 4 x4+10 x5)/56xi 0 ( i =1,2,3,4,5)用单纯形法可计算出结果。,妇终驴辗獭诊然琐呵咯剑追寡趋轩仁国炼影稍刁顾辱邯聂弟烹讲笺践挞狸运筹学单纯形算法运筹学单纯形算法,表111,在表111中,所有的 j 0,故得
37、到最优解:X* = ( 4, 1, 9, 0, 0, 0, 0 )T 目标函数值 Z= 2 , 原问题的最优目标值为: Z* = -2 。,肯沁宜豹勿仗杏晌剐励淆蕴确员雁协滤铂顿功窑亦因筷诧说认着黔臂岂害运筹学单纯形算法运筹学单纯形算法,例114(配料问题) 某工厂要用三种原材料 C、P、H 混合调出三种不同格的产品 A、B、D 。已知产品的规格要求、产品单价、每天能供应的原材料数量及原材料单价分别见表1-28、表1-29。问该厂应如何安排生产,使利润收入为最大?,表1-28,表1-29,膘桌靡驾毫茶捶如熏储百柠螺扭欺摹享丧窑家纽趾恋涣偶仙头鄙唬语坠齿运筹学单纯形算法运筹学单纯形算法,1) 若
38、(LP)*具有最优基本可行解,则(LP)是,可行的,而,2) 若(LP)*的最优基本可行解,则(LP),必不可行。定理5的具体应用过程是: (LP)*判断原线性规划问题是否存在基本可行解 , 利用单纯形算法, 若得到 W = 0 , 即所有人工变量为非基变量, 这表示原问题已得到了一个基本可行解 .于是只需要将第一阶段最终计算表中的目标函数行的数字换成原问题的目标函数的数字, 就得到了求解原问题的初始计算表, 再进行第二阶段的求解。若第一阶段的最终计算表出现 W 0 , 这就表明原问题无可行解,应停止计算。,薛志钦屿胸铭筛鸥境暮学涸蔚物锻殴志撩过吸傈券惟悉蜜秒雾翔猩琶膝衫运筹学单纯形算法运筹学
39、单纯形算法,解:依条件有:,又由于原料总限额已给定,加入到产品 A、B、D的原材料 C 总量每天不超过100kg ,P 总量不超过100kg,H 总量不超过60kg 。由此有:AC + BC + DC 100 AP + BP + DP 100 AH + BH + DH 60,倍拙斜懊猎殷陋相铃接足冒泥祁僚堵交匆刺箍全降征尖审乍酞郊晚协炔咋运筹学单纯形算法运筹学单纯形算法,我们的目的是使利润最大,即产品价格减去原材料的价格为最大。 目标函数:MaxZ=50(x1 +x2+x3)+35(x4+x5+x6)+25(x7+x8+x9)-65(x1+x4+x7) 25(x2+x5+x8) 35(x3+
40、x6+x9)= -15x1 + 25x2 + 15x3 30x4 + 10x5 + 0x6 40x7 + 0x8 10x9 约束条件:-1/2 x1 + 1/2x2 + 1/2x3 0-1/4x1 + 3/4x2 1/4x3 0 -3/4x4 + 1/4x5 + 1/4x6 0-1/2x4 + 1/2x5 1/2x6 0x1 + x4 + x7 100 x2 + x5 + x8 100 x3 + x6 + x9 60 x1, ,x9 0上述数学模型,可用单纯形表计算,计算结果是:每天只生产产品 A 200 kg ,分别需要用原料 C 100 kg;P 50 kg ;H 50 kg 。总利润收入
41、是 Z = 500 元/天 。,拘虐赘泣茫泽阑肛掘分联史枕霞施淌坊咽慨棠键凄短铀鹊捂琢群医贡潞记运筹学单纯形算法运筹学单纯形算法,例115(连续投资问题)某部门在今后5年内考虑给下列项目投资,已知: 项目A:从第一年到第四年每年年初需要投资,并于次年末回收本利115%; 项目B:第三年年初需要投资,到第五年年末能回收本利125%,但规定最大投资额不超过4万元; 项目C:第二年年初需要投资,到第五年年末能回收本利140%,但规定最大投资额不超过3万元; 项目D:五年内每年年初可购买公债,于当年年末归还,并加利息6%。已知该部门现有资金10万,问它应如何确定给这些项目每年的投资额,使到第五年年末拥
42、有资金的本利总额为最大?,嘉双灵付鹅和劈参月耸烬令手迁杂豫拾踞侮邦耙撇串腕圭韩求部斌馏番架运筹学单纯形算法运筹学单纯形算法,解:(1) 确定变量:这是一个连续投资问题,与时间有关。但这里设法用线性规划方法静态地处理。设:xiA :表示第 i 年年初给项目 A 的投资额 i = 1 , , 5;xiB :表示第 i 年年初给项目 B 的投资额 i = 1 , , 5;xiC :表示第 i 年年初给项目 C 的投资额 i = 1, , 5;xiD :表示第 i 年年初给项目 D 的投资额 i = 1, , 5;它们都是待定的未知变量。(2) 投资额应等于手中拥有的资金额。由于项目D 每年都可以投资
43、,并且当年末即可收回本息,所以该部门每年应把资金全部投出,手中不应当有剩余的呆滞资金。,哟新饶坍津领栏桃袖寻豁玛长婶江审根荐脚厚鲍武梁噪而蔡化鲸亭褐惋械运筹学单纯形算法运筹学单纯形算法,因此有:,(3)目标函数: 目标要求是在第五年年末该部门手中拥有的资金额达到最大。这个目标函数可表示为:Max Z = 1.15x4A + 1.25x3B + 1.40x2C + 1.06x5D,冈翘针飞慢蛋辩筋答唐潮圈堑都碘闯辉敏怂涯哇凹安饼耸刘辞单忠义甚艰运筹学单纯形算法运筹学单纯形算法,(4) 数学模型:Max Z = 1.15x4A + 1.25x3B + 1.40x2C + 1.06x5D,(5)用单
44、纯形法计算结果得到:x1A=34783元,x1D=65217元,x2A =39130元,x2C =30000元,x2D= 0,x3A = 0,x3B = 40000元,x3D= 0,x4A = 45000元,x4D= 0,x5D= 0,到第五年年末该部门拥有资金总额为143750元,即盈利43.75%。,淫倚核颠卓仕督财凡氢苟掺浪寨乾惋几力家透魂雨歪虞峦攀悔能尹踌凝丑运筹学单纯形算法运筹学单纯形算法,例116(生产计划安排问题)某厂生产三种产品I、II、III,每种产品要经过A、B 两道工序加工。设该厂有两种规格的设备能完成 A 工序,它们以 A1、A2 表示;有三种规格的设备能完成 B 工序
45、,它们以 B1、B2 、B3 表示。产品I可在A、B任何一种规格设备上加工;产品II可在任何规格的 A 设备上加工,但在完成 B 工序时,只能在 B1 设备上加工;产品III只能在 A2与 B2 设备上加工。已知在各种机床设备的单件工时,原材料费,产品销售价格,各种设备的有效台时以及满负荷操作时机床设备的费用如下表130所示,要求安排最优的生产计划,使该厂的利润为最大?,表130,秋钓誉尺侣客郊典萍双蔷配碗妨流途刷孵泣挝框柞弗钾涯沟积换记订墟褂运筹学单纯形算法运筹学单纯形算法,解:首先列出所有可能生产产品I、II、III的工序组合形式,并假设按各种工序的组合形式进行生产的产量。具体如下:按(A
46、1,B1)组合方式生产产品I,其产量设为 x1 ; 按(A1,B2)组合方式生产产品I,其产量设为 x2 ; 按(A1,B3)组合方式生产产品I,其产量设为 x3 ; 按(A2,B1)组合方式生产产品I,其产量设为 x4 ; 按(A2,B2)组合方式生产产品I,其产量设为 x5 ; 按(A2,B3)组合方式生产产品I,其产量设为 x6 ; 按(A1,B1)组合方式生产产品II,其产量设为 x7 ; 按(A2,B1)组合方式生产产品II,其产量设为 x8 ; 按(A2,B2)组合方式生产产品III,其产量设为 x9 ;目标函数应为: Max Z=(1.25-0.25)(x1+ x6)+(2.00-0.35)(x7+x8)+(2.80-0.50)x9 300/60005(x1+x2+x3)+10x7321/100007(x4+x5+x6)+9x8+12x9 250/40006(x1+x4)+8(x7+x8)+780/70004(x2+x5)+11x9200/4007(x3+x6),