还剩3页未读,继续阅读
文本内容:
灵敏性分析ctrl+r用该命令产生当前模型的灵敏性分析报告研究当目标函数的费用系数和约束右端项在什么范围此时假定其它系数不变时,最优基保持不变灵敏性分析是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态,但是默认是不激活的为了激活灵敏性分析,运行LINGO〔Options…,选择GeneralSolverTab在DualComputations列表框中,选择PricesandRanges选项灵敏性分析耗费相当多的求解时间,因此当速度很关键时,就没有必要激活它下面我们看一个简单的具体例子例
5.1某家具公司制造书桌、餐桌和椅子,所用的资源有三种木料、木工和漆工生产数据如下表所示若要求餐桌的生产量不超过5件,如何安排三种产品的生产可使利润最大?用DESKS、TABLES和CHATRS分别表示三种产品的生产量,建立LP模型max=60*desks+30*tabies+20*chairs;8*desks+6*tables+chairs=48;4*desks+2*tables+
1.5*chairs=20;2*desks+l.5*tables+.5*chairs=8;tables=5;求解这个模型,并激活灵敏性分析这时,查看报告窗口ReportsWindow可以看到如下结果Globaloptimalsolutionfoundatiteration:
3280.0000ReducedCost
0.
0000005.
0000000.000000“Globaloptimalsolutionfoundatiteration:3”表示3次迭代后得到全局最优解Objectivevalue:
280.0000n表示最优目标值为280“Value”给出最优解中各变量的值造2个书桌(desks)0个餐桌(tables)8个椅子(chairs)o所以desks、chairs是基变量(非0)tables是非基变量
(0)oSlackorSurplus给出松驰变量(要使等式成立,左边应虚加的数值)的值第1行松驰变量二280(模型第一行表示目标函数,所以第二行对应第一个约束)第2行松驰变量=24第3行松驰变量=0第4行松驰变量=0第5行松驰变量=5ReducedCost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时,目标函数的变化率其中基变量的reducedcost值应为0对于非基变量X相应的reducedcost值表示当某个变量X」增加一个单位时目标函数减少的量(max型问题)如本例中变量tables对应的reducedcost值为5表示当非基变量tables的值从0变为1时•(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值二280-5=275o“DUALPRICE(对偶价格)(对于紧约束来讲)表示当对应约束有微小变动时,目标函数的变化率输出结果中时应于每一个约束有一个对偶价格若其数值为P,表示对应约束中不等式右端项若增加1个单位,目标函数将增加p个单位(max型问题)显然,如果在最优解处约束正好取等号(也就是“紧约束”,也称为有效约束或起作用约束),对偶价格值才可能不是0本例中第
3、4行是紧约束,对应的对偶价格值为10表示当紧约束3)4DESKS+2TABLES+
1.5CHAIRS=20变为3)4DESKS+2TABLES+
1.5CHAIRS=21时,目标函数值=280+10=290o对第4行也类似对于非紧约束(如本例中第
2、5行是非紧约束),DUALPRICE的值为0表示对应约束中不等式右端项的微小扰动不影响目标函数有时,通过分析DUALPRICE也可对产生不可行问题的原因有所了解灵敏度分析的结果是AllowableAllowableCurrentRow目标函数中DESKS变量原来的费用系数为60Increase=4允许减少AllowableDecrease=2说明当它在[60-460+20]二
[5680]范围变化时,最优基保持不变对TABLES、CHAIRS变量,可以类似解释由于此时约束没有变化(只是目标函数中某个费用系数发生变化),所以最优基保持不变的意思也就是最优解不变(当然,由于目标函数中费用系数发生了变化,所以最优值会变化)第2行约束中右端项(RightHandSide简写为RHS)原来为48当它在[48-2448+8]=
[248]范围变化时,最优基保持不变第
3、
4、5行可以类似解释不过由于此时约束发生变化,最优基即使不变,最优解、最优值也灵敏性分析结果表示的是最优基保持不变的系数范围由此,也可以进一步确定当目标函数的费用系数和约束右端项发生小的变化时,最优基和最优解、最优值如何变化下面我们通过求解一个实际问题来进行说明例
5.2一奶制品加工厂用牛奶生产AbA2两种奶制品,1桶牛奶可以在甲车间用12小时加工成3公斤A”或者在乙车间用8小时加工成4公斤A2o根据市场需求,生产的酊A全部能售出,且每公斤Ai获利24元,每公斤A2获利16元现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间480小时并且甲车间每天至多能加工100公斤A”乙车间的加工能力没有限制试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题1)若用35元可以买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化每公斤4的获利增加到30元应否改变生产计划?模型代码如下max=72*xl+64*x2;xl+x2=50;12*xl+8*x2=480;3*xl=100;求解这个模型并做灵敏性分析,结果如下Globaloptimalsolutionfoundatiteration:0Objectivevalue:
3360.000Rangesinwhichthebasisisunchanged:CurrentAllowableAllowablVariableCoefficientIncreaseDecreaseRHSIncreaseDecrease结果告诉我们这个线性规划的最优解为x尸20X2=30最优值为z=3360即用20桶牛奶生产A30桶牛奶生产A2可获最大利润3360元输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息,下面结合题目中提出的3个附加问题给予说明3个约束条件的右端不妨看作3种“资源”原料、劳动时间、车间甲的加工能力输出中SlackorSurplus给出这3种资源在最优解下是否有剩余原料、劳动时间的剩余均为零,车间甲尚余40(公斤)加工能力目标函数可以看作“效益”,成为紧约束的“资源”一旦增加,“效益”必然跟着增长输出中DUALPRICES给出这3种资源在最优解下“资源”增加1个单位时“效益”的增量原料增加1个单位(1桶牛奶)时利润增长48(元)劳动时间增加1个单位(1小时)时利润增长2(元),而增加非紧约束车间甲的能力显然不会使利润增长这里,“效益”的增量可以看作“资源”的潜在价值,经济学上称为影子价格,即1桶牛奶的影子价格为48元,1小时劳动的影子价格为2元,车间甲的影子价格为零读者可以用直接求解的办法验证上面的结论,即将输入文件中原料约束milk)右端的50改为51看看得到的最优值(利润)是否恰好增长48(元)用影子价格的概念很容易回答附加问题1)用35元可以买到1桶牛奶,低于1桶牛奶的影子价格48当然应该作这项投资回答附加问题2)聘用临时工人以增加劳动时间,付给的工资低于劳动时间的影子价格才可以增加利润,所以工资最多是每小时2元目标函数的系数发生变化时(假定约束条件不变),最优解和最优值会改变吗?这个问题不能简单地回答上面输出给出了最优基不变条件下目标函数系数的允许变化范围:xi的系数为(72-872+24)=
(6496);x的系数为(64-1664+8)=
(4872)0注意X1系数的允许范围需要x系数64不变,反之亦然由于目标函数的费用系数变化并不影响约束条件,因此此时最优基不变可以保证最优解也不变,但最优值变化用这个结果很容易回答附加问题3)若每公斤4的获利增加到30元,则xi系数变为30X3=90在允许范围内,所以不应改变生产计划,但最优值变为90X20+64X30=3720下面对“资源”的影子价格作进一步的分析影子价格的作用(即在最优解下“资源”增加1个单位时“效益”的增量)是有限制的每增加1桶牛奶利润增长48元(影子价格),但是,上9面输出的CURRENTRIIS的ALLOWABLEINCREASE和ALLOWABLEDECREASE给出了影子价格有意义条件下约束右端的限制范围milk)原料最多增加10(桶牛奶),time)劳动时间最多增加53(小时)现在可以回答附加问题1)的第2问虽然应该批准用35元买1桶牛奶的投资,但每天最多购买10桶牛奶顺便地说,可以用低于每小时2元的工资聘用临时工人以增加劳动时间,但最多增加
53.3333小时需要注意的是灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件比如对于上面的问题,“原料最多增加10(桶牛奶)”的含义只能是“原料增加10(桶牛奶)”时最优基保持不变,所以影子价格有意义,即利润的增加大于牛奶的投资反过来,原料增加超过10(桶牛奶),影子价格是否一定没有意义?最优基是否一定改变?一般来说,这是不能从灵敏性分析报告中直接得到的此时,应该重新用新数据求解规划模型,才能做出判断所以,从正常理解的角度来看,我们上面回答“原料最多增加10(桶牛奶)”并不是完全科学的每个书桌每个餐桌每个椅子见有资源总娄8单位6单位1单位48单位4单位2单位
1.5单位20单位2单位
1.5单位
0.5单位8单位单价60单位30单位20单位DESKS
2.000000TABLES
0.000000CHAIRS
8.000000RowSlackorSurplusDualPrice
1280.
00001.
000000224.
000000.
00000030.
00000010.
0000040.
00000010.
0000055.
0000000.000000Rangesinwhichthebasisisunchanged:ObjectiveCoefficientRangesCurrentAllowableAllowableVariableCoefficientIncreaseDecreaseDESKS
60.
0000020.
04.0TABLES
30.
000005.0INFINITYCHAIRS
20.
000000.
00.0RighthandSideRangesRHSIncreaseDecrease
248.00000INFINITY
24.
0320.
000004.
04.
048.
0000002.
01.
355.000000INFINITY
5.0VariableValueXI
20.00000X
230.00000ReducedCost
0.
0000000.000000RowSlackorSurplus
13360.
00020.
00000030.
000000440.00000DualPrice
1.
00000048.
000002.
0000000.000000ObjectiveCoefficientRangesXI
72.00000X
264.
0000024.
000008.
0000008.
00000016.00000RighthandSideRangesRowCurrentAllowableAllowable
250.
000003480.
00004100.
000010.
000006.
66666753.
3333380.00000INFINITY
40.00000。