【2017年整理】lingo灵敏度分析实例
灵敏度分析
一些典型模型举例注:Lingo系统自带一百多个模型可供学习。
线性规划求解简单举例( 含灵敏度分析)例某天加工奶制品的生产计划1桶牛奶(经过12小时)产生3公斤奶制品A ,可获利24元/公斤或1桶牛奶(经过8小时)产生4公斤奶制品B ,可获利16元/公斤某天约束:50桶牛奶、时间480小时、至多加工100公斤奶制品A 如何制定生产计划,使这一天获利最大?一些小问题如下:问1、35元可买到1桶牛奶,买吗?若买,这一天最多买多少?问2、可聘用临时工人,付出的工资最多是每小时几元?问3、奶制品A的获利增加到30元/公斤,是否应改变生产计划?解:决策变量用x桶牛奶生产A 用y桶牛奶生产B目标函数Max z=72 x + 64 y约束条件x+ y ≤50 (原料供应)12 x+ 8 y ≤480 (劳动时间)3 x ≤100 (加工能力,产量约束)x, y≥0 (非负约束)在LINGO输入窗中输入如下代码:max=72 *x+64* y;[raw_materials] x+y<50;[hours] 12*x+8*y<480;[milk_A] 3*x<100;再点按求解命令即可得到优化结果(含灵敏度分析信息)(若没有灵敏度分析报告,则需按下述步骤设置:Lingo->Options->General Solver->Dual Computations|Prices & Ranges->OK)Global optimal solution found.Objective value: 3360.000Total solver iterations: 2Variable Value Reduced CostX 20.00000 0.000000Y 30.00000 0.00000020桶牛奶生产A, 30桶生产B,利润3360元。
reduced cost值表示当该非基变量增加一个单位时(其他非基变量保持不变)目标函数减少的量(对max型问题)Row Slack or Surplus Dual PriceRAW_MATERIALS 0.000000原料无剩余 48.00000HOURS 0.000000时间无剩余 2.000000MILK_A 40.00000加工能力剩余40 0.000000对偶价格(影子价格):最优解下“资源”增加1单位时“效益”的增量原料增1单位(桶), 利润增48(3360==>3408,{20,30}==>{18,33})可重新求解如下规划问题:max=72* x+64* y;[raw_materials] x+y<51;[hours]12*x+8*y<480;[milk_A] 3*x<100;时间加1单位, 利润增2能力增减不影响利润35元可买到1桶牛奶,要买吗?35 <48, 应该买!聘用临时工人付出的工资最多每小时几元?2元!LINGO菜单项 RANGE子菜单基不变时目标系数允许变化范围(约束条件不变)(意味着生产计划不变或变化不大,而最优目标值要改变?)Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable Allowable Variable Coefficient Increase Decrease X 72.00000 24.00000 8.000000 Y 64.00000 8.000000 16.00000x系数范围[64,96]y系数范围[48,72]A获利增加到30元/千克(90元/桶),应否改变生产计划?不变!Righthand Side RangesRow Current Allowable Allowable RHS Increase Decrease RAW_MATERIALS 50.00000 10.00000 6.666667 HOURS 480.0000 53.33333 80.00000 MILK_A 100.0000 INFINITY 40.00000原料最多增加10、时间最多增加5335元可买到1桶牛奶,每天最多买多少?最多买10桶?(多于10桶意味着基要发生改变,亦即生产计划要发生较大变化!)小结:问1、35元可买到1桶牛奶,买吗?若买,这一天最多买多少?答:买!10桶!问2、可聘用临时工人,付出的工资最多是每小时几元?答:2元!问3、奶制品A的获利增加到30元/公斤,是否应改变生产计划?答:不变!注:若限制决策变量为整数,则此问题变为整数线性规划了。
lingo结果分析及灵敏性分析
lingo结果分析及灵敏性分析问题描述程序代码:max = 60*desks + 30*tables + 20*chairs;8*desks + 6*tables + chairs <= 48;2*desks + 1.5*tables + 0.5*chairs <= 8;4*desks + 2*tables + 1.5*chairs <= 20;tables<= 5;部分结果一:Variable Value Reduced CostDESKS 2.000000 0.000000TABLES 0.000000 5.000000CHAIRS 8.000000 0.000000⑴Value:给出最优解中各变量的值,Value=0(非基变量),反之为基变量。
⑵Reduced Cost:表示当非基变量有微小变动时, 目标函数的变化率。
本例中:变量tables 对应的reduced cost 值为5,表示当非基变量tables 的值从0 变为1 时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值= 280 - 5 = 275。
部分结果二:Row Slack or Surplus Dual Price1 280.0000 1.0000002 24.00000 0.0000003 0.000000 10.000004 0.000000 10.000005 5.000000 0.000000⑴“Slack or Surplus”――松驰变量。
⑵“Dual Price”――对偶价格表示当对应约束有微小变动时, 目标函数的变化率。
若其数值为p,表示对应约束中不等式右端项若增加1个单位,目标函数将增加p个单位(max 型问题)。
⑶如果在最优解处约束正好取等号(紧约束,也称为有效约束或起作用约束),对偶价格值才可能不是0。
本例中:第3、4 行是紧约束,对应的对偶价格值为10,表示当紧约束4) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 变为4) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 21 时,目标函数值= 280 +10 = 290。
灵敏度分析5种实例
Maxz=2x1+3X2+4x3x1+2X2+x i+x4=3S.t2x l-x2+3x3-x5=4x1,∙∙∙,x5≥0基变量xl=2,x2=3;非基变量x3=x4=x5=O;由约束条件得基变量用非基变量表示为p=⅛-5⅞-⅛^4÷y⅞[j⅛=f+∣Λ⅛-⅜X4-⅜X5目标函数中基变量用非基变量代入后Z=14-fx3-fx4-fx5o(1)当目标函数中系数Ci变化时(只要考虑最优性条件):设目标函数变为MaX z,=cx l+3X2+4x3目标函数中基变量用非基变量代入2=⅛c+f-(yC-^)x3-(y+fc)x4-(⅜-jc)%5所以如果“-等,∣+⅛C,∣-⅜C≥0,则符合最优解判别条件,所以目标函数最优性不变z=∙⅛c+/由“一等,f+⅛c,£一"之0解得最优性不变的C的范围。
否则,即如果超出该范围,则重新用单纯形法求解。
(2)当约束条件右边常数2变化时(先考虑可行性条件看最优基是否变化,再考虑):x1+2X2+x3+x4=b设约束条件变为2X1-X2+3X3-X5=4X I,∙∙∙,Λ5≥0先假设基没有变,所以令非基变量x3=x4=x5=0代入约束条件解得为4,JX2=2^-4根据可行性条件,必须和%≥o,解得匕的范围,即在此范围内最优基不变(最优解可能变化,要另外去求)。
否则,即如果超出该范围,则重新用单纯形法求解。
(3)当约束条件中价值系数传变化时(先看可行性条件看最优基是否变化,再考虑最优值):a ll x l+Ix1+x3+X4=3设约束条件变为,2X1-X2+3X3-X5=4x1,∙∙∙,x5≥0Ir=5先假设基没有变,所以令非基变量x3=x4=x5=0代入约束条件解得解得为{,^v_2q∣-36(x21Il根据可行性条件,必须%,马≥0,解得。
”的范围,即在此范围内最优基不变(最优解可能变化,要另外去求)。
否则,即如果超出该范围,则重新用单纯形法求解。
LINGO结果窗口内容解读与灵敏度分析
LINGO结果窗⼝内容解读与灵敏度分析1.结果窗⼝内容解读1. ⽬标函数值:Global option solution found.表⽰求出了全局最优解;Objective value表⽰最优⽬标值,Total solver iretion表⽰求解时共⽤了⼏次迭代2. 决策变量:Value给出最优解中各变量的值3. 变量的判别数:Reduced Cost表⽰最优单纯形表中判别数所在的⾏的变量的系数,表⽰当变量有微⼩变化时,⽬标函数的变化率。
其中基变量的reduced cost值应为零。
对于基变量相应的reduced cost值表⽰这个变量增加⼀个单位时⽬标函数值减少的量(max型问题)4. 紧约束与松约束:slack or Surplus给出松弛或剩余变量的值,其值为零的对应约束为"紧约束",表⽰在最优解下该项资源已经⽤完;其值为⾮零的对应约束为"松约束",表⽰在最优解下该项资源还有剩余5. 对偶价格(经济学:影⼦价格):DUAl PRICE(对偶价格)表⽰当对应约束有微⼩变动时⽬标函数的变化率。
输出结果中对应每⼀个"紧约束"有⼀个对偶价格。
若其数值为怕,则表⽰对应约束不等式右端项正好增加⼀个单位,⽬标函数将增加P个单位(max)模型。
显然,如果在最优解处约束条件正好取等号(也就是"紧约束",也称为有效约束或起作⽤约束),对偶价格值才可能不是0.6. 变量框(Variables):Total表⽰当前模型的全部变量数,Nonlinear显⽰其中的⾮线性变量数,Integers显⽰其中的整数变量数。
⾮线性变量是指它⾄少处于某⼀个约束条件中的⾮线性关系中。
7. 约束(Constains)框:Total表⽰当前模型扩展后的全部约束个数,Nonlinear显⽰其中的⾮线性约束个数。
⾮线性约束是该约束⾄少有⼀个⾮线性变量。
如果⼀个约束中的所有变量都是定值,那么该约束就以定值不等式表⽰,该约束的真假由变量的具体值决定,仍计⼊约束总数中。
Lingo实验例子
Lingo实验例子(例子来源:《运筹学教程》(第三版)胡运权主编清华大学出版社2007年第三版) 一、线性规划及单纯形法、灵敏度分析例1 P28页例5 Lingo程序:max=2*x1+x2;5*x2<=15;6*x1+2*x2<=24;x1+x2<=5;例2 P44页习题1.7(1)Lingo程序:model:max=2*x1-x2+2*x3;x1+x2+x3>=6;-2*x1+x3>=2;2*x2-x3>=0;end其余课本上的例题和习题同学们自己动手编写程序并进行调试运行,分析运行结果。
二、运输问题例3 P82页例1 Lingo程序:model:sets:gy/g1..g3/:ai;xs/x1..x4/:dj;link(gy,xs):c,x;endsetsdata:ai=16,10,22; dj=8,14,12,14;c=4,12,4,112,10,3,98,5,11,6;enddatamin=@sum(link(i,j):c(i,j)*x(i,j) );@for(gy(i):@sum(xs(j):x(i,j))=ai (i));@for(xs(j):@sum(gy(i):x(i,j))=dj (j));end例4 P98页例5(转运)Lingo程序:model:sets:plant/x1..x5/:produce; customer/y1..y5/:require;link(plant,customer):c,x; endsetsdata:produce=60,90,50,50,50;require=50,50,50,80,70;c=-4,5,3,2,1005,-1,2,100,43,2-3,5,52,100,5-3,6100,4,5,6,-5;enddatamin=@sum(link:c*x);@for(plant(i):@sum(customer(j):x (i,j))=produce(i));@for(customer(j):@sum(plant(i):x (i,j))=require(j));end三、目标规划例5 P108页例2 Lingo程序:第一种做法分三步来完成第一步:考虑目标:min=11Pd-model:min=dminus1;5*x1+10*x2<=60;x1-2*x2+dminus1-dplus1=0;4*x1+4*x2+dminus2-dplus2=36;6*x1+8*x2+dminus3-dplus3=48; end第二步:考虑目标:min=1122Pd P d-++ model:min=dminus1+dplus2;5*x1+10*x2<=60;x1-2*x2+dminus1-dplus1=0;4*x1+4*x2+dminus2-dplus2=36;6*x1+8*x2+dminus3-dplus3=48; end第三步:考虑目标:min=112233Pd P d P d-+-++model:min=dminus1+dplus2+dminus3;5*x1+10*x2<=60;x1-2*x2+dminus1-dplus1=0;4*x1+4*x2+dminus2-dplus2=36;6*x1+8*x2+dminus3-dplus3=48;end注意:如果想要在上述各步中进行灵敏度分析,只需按快捷键Ctrl+R就可以得到相应的结果或者采用一个程序进行输值运算:model:sets:level/1..3/:P,z,goal;variable/1..2/:x;h_con_num/1..1/:b;s_con_num/1..3/:g,dplus,dminus; h_cons(h_con_num,variable):A;s_cons(s_con_num,variable):C;obj(level,s_con_num):wplus,wminu s;endsetsdata:P=? ? ?;goal=? ? 0;b=60;g=0 36 48;A=5 10;C=1 -2 4 4 6 8;wplus=0 0 00 1 00 0 0;wminus=1 0 00 0 00 0 1;enddatamin=@sum(level:P*z);@for(level(i):z(i)=@sum(s_con_nu m(j):wplus(i,j)*dplus(j))+@sum(s _con_num(j):wminus(i,j)*dminus(j ))); @for(h_con_num(i):@sum(variable( j):A(i,j)*x(j))<=b(i));@for(s_con_num(i):@sum(variable( j):C(i,j)*x(j))+dminus(i)-dplus( i)=g(i));@for(level(i)|i #lt#@size(level):@bnd(0,z(i),goal(i) ));end例6 P110页例4 Lingo程序:第一种做法分四步来完成第一步:考虑目标:min=11Pd-model:min=dminus1;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end第二步:考虑目标:min=1122Pd P d-++model:min=dminus1+dplus2;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end第三步:考虑目标:min= 1122335Pd P d P d-+-++model:min=dminus1+dplus2+5*dminus3+3*d minus4;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end第四步:考虑目标:min= 1122334(53)Pd P d P d d-+--+++model:min=dminus1+dplus2+5*dminus3+3*d minus4+dplus1;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end注:做到此步后已得到满意解,可不必再往下求解,因为此时第三级优先因子已不能完全满足。
lingo结果分析及灵敏性分析
lingo结果分析及灵敏性分析问题描述程序代码:max = 60*desks + 30*tables + 20*chairs;8*desks + 6*tables + chairs <= 48;2*desks + 1.5*tables + 0.5*chairs <= 8;4*desks + 2*tables + 1.5*chairs <= 20;tables<= 5;部分结果一:Variable Value Reduced CostDESKS 2.000000 0.000000TABLES 0.000000 5.000000CHAIRS 8.000000 0.000000⑴Value:给出最优解中各变量的值,Value=0(非基变量),反之为基变量。
⑵Reduced Cost:表示当非基变量有微小变动时, 目标函数的变化率。
本例中:变量tables 对应的reduced cost 值为5,表示当非基变量tables 的值从0 变为1 时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值= 280 - 5 = 275。
部分结果二:Row Slack or Surplus Dual Price1 280.0000 1.0000002 24.00000 0.0000003 0.000000 10.000004 0.000000 10.000005 5.000000 0.000000⑴“Slack or Surplus”――松驰变量。
⑵“Dual Price”――对偶价格表示当对应约束有微小变动时, 目标函数的变化率。
若其数值为p,表示对应约束中不等式右端项若增加1个单位,目标函数将增加p个单位(max 型问题)。
⑶如果在最优解处约束正好取等号(紧约束,也称为有效约束或起作用约束),对偶价格值才可能不是0。
本例中:第3、4 行是紧约束,对应的对偶价格值为10,表示当紧约束4) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 变为4)4 DESKS + 2 TABLES + 1.5 CHAIRS <= 21 时,目标函数值= 280 +10 = 290。
灵敏度分析1
(1)实验仪器的整平对实验数据的误差有很大的影响;
(2)水准测量和水平角测量均需检查闭合差,超过差限则一定要重新测;
(3)要注意计算问题,计算最好由两个人完成,一个初步的计算,一个检验,不过,在此过程当中,也还是出现了计算错误的问题,我们在不断的重复检验之中算出了正确的数值,尽量让误差减少到了最少.。
通过这次实训,让我体会到了团队精神的重要性,也认识到测量学的严谨性,无论是少了中间的哪一环都无法完成任务,任何一个步骤、环节,都少不了,也出不得错,一步错步步错,因此,测量学才有“从整体到局部、先控制后碎部”的工作原则,并要求做到“步步有检核”.当然,搞好测量既离不开团队的合作,也离不开我们每个人的努力.。
实验序号
2
实验
名称
灵敏度分析
实验地点
格致楼c107
实验
日期
实验目的和实验内容
一、实验目的
1、学会使用LINGO软件求解线性规划问题的灵敏度分析。
2、学会分析LINGO软件求解的结果。
二.实验内容
已知某工厂计划生产I,II,III三种产品,各产品需要在A、B、C设备上加工,有关数据如下:
I
II
III
设备有效台时
就整个测量实训来说,我们从中学到了不少知识,不过这其中也反映出了我们还有许多的不足,希望在以后的学习中不断吸取经验教训,逐一克服,不断提高我们的测量水平。
与该门实习课程教学大纲(或实习教学任务书、指导书)要求一致。
(四)实习内容
lingo结果分析及灵敏性分析精选文档
l i n g o结果分析及灵敏性分析精选文档TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-lingo结果分析及灵敏性分析问题描述程序代码:max = 60*desks + 30*tables + 20*chairs;8*desks + 6*tables + chairs <= 48;2*desks + 1.5*tables + 0.5*chairs <= 8;4*desks + 2*tables + 1.5*chairs <= 20;tables<= 5;部分结果一:Variable Value Reduced CostDESKS 2.000000 0.000000TABLES 0.000000 5.000000CHAIRS 8.000000 0.000000⑴Value: 给出最优解中各变量的值,Value=0(非基变量),反之为基变量。
⑵Reduced Cost:表示当非基变量有微小变动时, 目标函数的变化率。
本例中:变量 tables 对应的 reduced cost 值为 5,表示当非基变量 tables 的值从0 变为 1 时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值 = 280 - 5 = 275。
部分结果二:Row Slack or Surplus Dual Price1 280.0000 1.0000002 24.00000 0.0000003 0.000000 10.000004 0.000000 10.000005 5.000000 0.000000⑴“Slack or Surplus”――松驰变量。
⑵“Dual Price”――对偶价格表示当对应约束有微小变动时, 目标函数的变化率。
若其数值为 p,表示对应约束中不等式右端项若增加 1个单位,目标函数将增加 p个单位(max 型问题)。
201709动力实数学建模实验——线性规划灵敏度分析实验报告模板
数学建模与数学实验课程实验报告实验名称线性规划问题建模和灵敏度分析
所以当生产甲产品12.41379t,乙产品34.48276t时,可以获得最大利润
A1基地向B1,B2,B3销售地分别发货0吨,50吨,10吨;A2基地向分别发货50吨,0吨,30吨,才能使总的运费最小为4800元。
、综合题,建立模型并借助lingo求解和分析。
所以当生产A,B,C,D产品分别为0万件,1.5万件,1.5万件,0万件时,使总利润最大。
(2)答:利用lingo进行分析得:
因为决策变量x5的差额成本为16,说明在E的利润为
产品要亏损16万元。
所以E的利润为至少为17万元,投资才有利。
三、思考题解答
1、简述什么是线性规划问题的紧约束?
答:一般称资源剩余为0的约束为紧约束,此时系统已达最优状态,都成为紧约束时,这样才能充分发挥生产能力和资源潜力,。
全国数学建模lingo实例讲解
全国数学建模lingo 实例讲解LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如下表。
单位 销地 运 价 产地B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 产量 A 1 6 2 6 7 4 2 5 9 60 A 24953858255A3 5 2 1 9 7 4 3 3 51A4 7 6 7 3 9 2 7 1 43A5 2 3 9 5 7 2 6 5 41A6 5 5 2 2 8 1 4 3 52销量35 37 22 32 41 32 43 38使用LINGO软件,编制程序如下:model:!6发点8收点运输问题;sets:warehouses/wh1..wh6/: capacity;vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume;endsets!目标函数;min=@sum(links: cost*volume);!需求约束;@for(vendors(J):@sum(warehouses(I): volume(I,J))=demand(J));!产量约束;@for(warehouses(I):@sum(vendors(J): volume(I,J))<=capacity(I));!这里是数据;data:capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38;cost=6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
LINGO解题结果的分析
一个很好的运算结果分析莫版!!!例5.1某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、木工和漆工。
生产数据如下表所示:每个书桌每个餐桌每个椅子现有资源总数木料8单位6单位1单位48单位漆工4单位2单位 1.5单位20单位木工2单位 1.5单位0.5单位8单位成品单价60单位30单位20单位若要求桌子的生产量不超过5件,如何安排三种产品的生产可使利润最大?用DESKS、TABLES和CHAIRS分别表示三种产品的生产量,建立LP模型。
[OBJ] max=60*desks+30*tables+20*chairs;[ml] 8*desks+6*tables+chairs<=48;[qg] 4*desks+2*tables+1.5*chairs<=20;[mg] 2*desks+1.5*tables+.5*chairs<=8;[zz] tables<=5;Global optimal solution found at iteration: 0Objective value: 280.0000Variable Value Reduced CostDESKS 2.000000 0.000000TABLES 0.000000 5.000000CHAIRS 8.000000 0.000000Row Slack or Surplus Dual PriceOBJ 280.0000 1.000000ML 24.00000 0.000000QG 0.000000 10.00000MG 0.000000 10.00000ZZ 5.000000 0.000000“Global optimal solution found at iteration: 3”表示3次迭代后得到全局最优解。
“Objective value: 280.0000”表示最优目标值为280。
“Value”给出最优解中各变量的值:造2个书桌(desks)“Reduced Cost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率。
LINGO线性规划及其灵敏度分析
线性规划问题及灵敏度分析在LINGO软件中的实现一、问题的提出:某公司饲养实验用的动物以出售给动物研究所,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g,矿物质3g,维生素8mg,该公司能买到5种不同的饲料,每种饲料1kg所含各种营养成分和成本如下表所示,如果每个小动物每周食用饲料不超过52kg,才能满足动物生长需要。
A1A2A3A4A5营养最低要 求蛋白质(g)0.3210.6 1.860矿物质(g)0.10.050.020.20.053维生素(mg)0.050.10.020.20.088成本(元/ kg)0.20.70.40.30.5问题:1.求使得总成本最低的饲料配方?2.如果另一个动物研究对蛋白质的营养要求变为59单位,但是要求动物的价格比现在的价格便宜0.3元,问该养殖所值不值得接受?3.由于市场因素的影响,X2的价格降为0.6元每千克,问是否要改变饲料配方?二、建立线性规划数学模型解答:(1)设需要饲料A1, A2, A3, A4分别为X1, X2, X3, X4kg,则建立线性规划数学模型如下:目标函数:MinS=0.2X1+0.7X2+0.4X3+0.3X4+0.5X5约束条件:0.3X1+2X2+X3+0.6X4+1.8X5>=600.1X1+0.05X2+0.02X3+0.2X4+0.05X5>=3005X1+0.1X2+0.02X3+0.2X4+0.08X5>=8X1+X2+X3+X4+X5<=52X1, X2, X3, X4, X5>=0三、在LINGO软件中的求解在LINGO中输入下面的命令:Model:Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5;0.3*x1+2*x2+x3+0.6*x4+1.8*x5>60;0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x5>3;0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x5>8;x1+x2+x3+x4+x5<52;end操作:选菜单Lingo|Solve(或按Ctrl+S),或用鼠标点击“求解”按纽,如果模型有语法错误,则弹出一个标题为“LINGO Error Message”(错误信息)的窗口,指出在哪一行有怎样的错误,每一种错误都有一个编号(具体含义可查阅相关文献或LINGO的Help).改正错误以后再求解,如果语法通过,LINGO用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGO Solver Status”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、耗费内存、所花时间等信息,点击Close关闭窗口,屏幕上出现标题为“Solution Report”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函数值、列出各变量的计算结果.输出结果如下:Global optimal solution found at iteration: 4Objective value: 22.40000Variable Value Reduced CostX1 0.000000 0.7000000X2 12.00000 0.000000X3 0.000000 0.6166667X4 30.00000 0.000000X5 10.00000 0.000000Row Slack or Surplus Dual Price1 22.40000 -1.0000002 0.000000 -0.58333333 4.100000 0.0000004 0.000000 -4.1666675 0.000000 0.8833333四、结果分析:(一) 一般分析1.因此,每周每个动物的配料为饲料A2、A4、A5分别为12、30和10kg,合计为52KG,可使得饲养成本达到最小,最小成本为22.4元;2. “Reduced Cost”表示当变量有微小变动时, 目标函数的变化率。
Lingo灵敏度分析实验报告
信息技术学院
运筹学课程实验报告
姓名
专业
班级
学号
实验题目
在LINGO中求解LP问题
实验环境
LINGO软件
实验目的
(1)使学生了解Lingo软件特点及其使用方法
(2)使学生掌握Lingo软件求解线性规划模型的编程与结果分析
实验原理和方案:
实验原理:
利Байду номын сангаасLingo软件求解线性规划模型以及相应的灵敏度分析问题
分析与体会:
认真的好好听课,不玩手机,细心的做老师布置的作业。积极向上的学习,乐观向上的生活。
实验日期:指导老师:成绩:
实验方案:
通过分析线性规划对应的数学模型,利用Lingo软件进行求解
实验内容与过程:
1、 用公式编辑器打印相应的数学模型
2、打开Lingo软件,在模型窗口输入程序
3、运行程序,结果如下
4、结果分析
该线性规划问题的最优解为:x1=2;x2=3;最优值maxS=13
5、实验总结
通过本次试验,我掌握线性规划的灵敏度分析。
最优化方法——用Lingo对线性规划进行灵敏度分析
lingo 软件求解线性规划及灵敏度分析注:以目标函数最大化为例进行讨论,对求最小的问题,有类似的分析方法!所有程序运行环境为lingo10。
一、用lingo 软件求解线性规划例1:max 23..43103512,0z x y s t x y x y x y =++≤+≤≥在模型窗口输入:model: max=2*x+3*y; 4*x+3*y<=10; 3*x+5*y<12;! the optimal value is :7.454545 ; End 如图所示:运行结果如下(点击 工具栏上的‘solve ’或点击菜单‘lingo ’下的‘solve ’即可):Global optimal solution found.Objective value: 7.454545(最优解函数值) Total solver iterations: 2(迭代次数)Variable (最优解) Value Reduced Cost X 1.272727 0.000000 Y 1.636364 0.000000Row Slack or Surplus Dual Price 1 7.454545 1.000000 2 0.000000 0.9090909E-01 3 0.000000 0.5454545例2:12123124125max 54..390280450z x x s t x x x x x x x x x x =+++=++=++=≥ 在模型窗口输入:model:max=5*x1+4*x2; x1+3*x2+x3=90; 2*x1+x2+x4=80; x1+x2+x5=45; end运行(solve )结果如下:Global optimal solution found.Objective value: 215.0000 Total solver iterations: 3Variable Value Reduced Cost X1 35.00000 0.000000 X2 10.00000 0.000000 X3 25.00000 0.000000 X4 0.000000 1.000000 X5 0.000000 3.000000Row Slack or Surplus Dual Price 1 215.0000 1.000000 2 0.000000 0.000000 3 0.000000 1.000000 4 0.000000 3.000000例323123234235min 2..223120z x x s t x x x x x x x x x x =-+-+=-+=-+=≥ 在模型窗口输入:model:min=-x2+2*x3; x1-2*x2+x3=2; x2-3*x3+x4=1; x2-x3+x5=2; end运行结果如下:Global optimal solution found.Objective value: -1.500000 Total solver iterations: 2Variable Value Reduced Cost X2 2.500000 0.000000 X3 0.5000000 0.000000 X1 6.500000 0.000000 X4 0.000000 0.5000000 X5 0.000000 0.5000000Row Slack or Surplus Dual Price 1 -1.500000 -1.000000 2 0.000000 0.000000 3 0.000000 0.5000000 4 0.000000 0.5000000例4:min ..124x y z s t x y x z +++≤+= 在模型窗口输入:model :min =@abs (x)+@abs (y)+@abs (z); x+y<1; 2*x+z=4; @free (x); @free (y); @free (z);End求解器状态如下:(可看出是非线性模型!)运行结果为:Linearization components added:Constraints: 12Variables: 12Integers: 3Global optimal solution found.Objective value: 3.000000Extended solver steps: 0Total solver iterations: 4Variable Value Reduced Cost X 2.000000 0.000000Y -1.000000 0.000000 Z 0.000000 0.000000Row Slack or Surplus Dual Price1 3.000000 -1.0000002 0.000000 1.0000003 0.000000 -1.000000二、用lingo软件进行灵敏度分析实例例5:max 603020864842 1.5202 1.50.585,,0S x y z x y z x y z x y z y x y z =++++≤++≤++≤≤≥在模型窗口输入: Lingo 模型:model:max=60*x+30*y+20*z; 8*x+6*y+z<48; 4*x+2*y+1.5*z<20; 2*x+1.5*y+0.5*z<8; y<5; end(一)求解报告(solution report )通过菜单Lingo →Solve 可以得到求解报告(solution report )如下:Global optimal solution found at iteration: 0 Objective value: 280.0000Variable Value Reduced Cost X 2.000000 0.000000 Y 0.000000 5.000000 Z 8.000000 0.000000Row Slack or Surplus Dual Price 1 280.0000 1.000000 2 24.00000 0.000000 3 0.000000 10.00000 4 0.000000 10.00000 5 5.000000 0.000000分析Value,Reduced Cost ,Slack or Surplus ,Dual Price 的意义如下: 1、最优解和基变量的确定Value 所在列给出了问题的最优解。
lingo结果分析及灵敏性分析
lingo结果分析及灵敏性分析问题描述程序代码:max = 60*desks + 30*tables + 20*chairs;8*desks + 6*tables + chairs <= 48;2*desks + 1.5*tables + 0.5*chairs <= 8;4*desks + 2*tables + 1.5*chairs <= 20;tables<= 5;部分结果一:Variable Value Reduced CostDESKS 2.000000 0.000000TABLES 0.000000 5.000000CHAIRS 8.000000 0.000000⑴Value: 给出最优解中各变量的值,Value=0(非基变量),反之为基变量。
⑵Reduced Cost:表示当非基变量有微小变动时, 目标函数的变化率。
本例中:变量 tables 对应的 reduced cost 值为 5,表示当非基变量 tables 的值从 0 变为 1 时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值 = 280 - 5 = 275。
部分结果二:Row Slack or Surplus Dual Price1 280.0000 1.0000002 24.00000 0.0000003 0.000000 10.000004 0.000000 10.000005 5.000000 0.000000⑴“Slack or Surplus”――松驰变量。
⑵“Dual Price”――对偶价格表示当对应约束有微小变动时, 目标函数的变化率。
若其数值为 p,表示对应约束中不等式右端项若增加 1个单位,目标函数将增加 p个单位(max 型问题)。
⑶如果在最优解处约束正好取等号(紧约束,也称为有效约束或起作用约束),对偶价格值才可能不是 0。
本例中:第 3、4 行是紧约束,对应的对偶价格值为 10,表示当紧约束 4) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 变为4) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 21 时,目标函数值 = 280 +10 =290。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【2017年整理】lingo灵敏度分析实例一个实例理解Lingo的灵敏性分析
线性规划问题的三个重要概念:
最优解就是反应取得最优值的决策变量所对应的向量。
最优基就是最优单纯形表的基本变量所对应的系数矩阵如果其行列式是非奇异的,则该系数矩阵为最优基。
最优值就是最优的目标函数值。
Lingo的灵敏性分析是研究当目标函数的系数和约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。
灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件。
下面是一道典型的例题。
一奶制品加工厂用牛奶生产A1,A2两种奶制品,1桶牛奶可以在甲车间用12小时加工成3公斤A1,或者在乙车间用8小时加工成4公斤A2。
根据市场需求,生产的A1,A2全部能售出,且每公斤A1获利24元,每公斤A2获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间480小时,并且甲车间每天至多能加工100公斤A1,乙车间的加工能力没有限制。
试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:
1) 若用35元可以买到1桶牛奶,应否作这项投资,若投资,每天最多购买多少桶牛奶, 2) 若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元, 3) 由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划, 模型代码:
max=72*x1+64*x2;
x1+x2<=50;
12*x1+8*x2<=480;
3*x1<=100;
运行求解结果:
Objective value: 3360.000
Variable Value Reduced Cost
X1 20.00000 0.000000
X2 30.00000 0.000000
Row Slack or Surplus Dual Price
1 3360.000 1.000000
2 0.000000 48.00000
3 0.000000 2.000000
4 40.00000 0.000000
这个线性规划的最优解为x1=20,x2=30,最优值为z=3360,即用20桶牛奶生产A1, 30桶牛奶生产A2,可获最大利润3360元。
输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息。
其中,“Reduced Cost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率。
其中基变量的reduced cost值应为0,对于非基变量 Xj, 相应的 reduced cost值表示当某个变量Xj 增加一个单位时目标函数减少的量( max型问题)。
本例中X1,X2均为基变量。
“Slack or Surplus”给出松驰变量的值,模型第一行表示目标函数,所以第二行对应第一个约束。
3个约束条件的右端不妨看作3种“资源”:原料、劳动时间、车间甲的加工能力。
输出中Slack or Surplus给出这3种资源在最优解下是否有剩余:原料、劳动时间的剩余均为
零,车间甲尚余40(公斤)加工能力。
“DUAL PRICE”(对偶价格)表示当对应约束有微小变动时, 目标函数的变化率。
输出结
果中对应于每一个约束有一个对偶价格。
若其数值为p,表示对应约束中不等式右端项若
增加1 个单位,目标函数将增加p个单位(max型问题)。
显然,如果在最优解处约束正好
取等号(也就是“紧约束”,也称为有效约束或起作用约束),对偶价格值才可能不是0。
上
例中,第一、二个约束是“紧约束”。
当“x1+x2<=50”改为“x1+x2<=51”时,目标函数的值为
3360+48=3408.对于非紧约束,DUAL PRICE 的值为0, 表示对应约束中不等式右端项的微
小扰动不影响目标函数。
目标函数可以看作“效益”,成为紧约束的“资源”一旦增加,“效益”必然跟着增长。
输出中
DUAL PRICES 给出这3种资源在最优解下“资源”增加1个单位时“效益”的增量:原料增加
1个单位(1桶牛奶)时利润增长48(元),劳动时间增加1个单位(1小时)时利润增长2
(元),而增加非紧约束车间甲的能力显然不会使利润增长。
这里,“效益”的增量可以看作“资
源”的潜在价值,经济学上称为影子价格,即1桶牛奶的影子价格为48元,1小时劳动的影
子价格为2元,车间甲的影子价格为零。
用影子价格的概念很容易回答附加问题1):用35元可以买到1桶牛奶,低于1桶牛奶的
影子价格48,当然应该作这项投资。
回答附加问题2):聘用临时工人以增加劳动时间,付给的工资低于劳动时间的影子价格才
可以增加利润,所以工资最多是每小时2元。
Objective Coefficient Ranges: Current Allowable Allowable
Variable Coefficient Increase Decrease
X1 72.00000 24.00000 8.000000
X2 64.00000 8.000000 16.00000
Righthand Side Ranges:
Current Allowable Allowable
Row RHS Increase Decrease
2 50.00000 10.00000 6.666667
3 480.0000 53.33333 80.00000
4 100.0000 INFINITY 40.00000
目标函数的系数发生变化时(假定约束条件不变),最优解和最优值会改变吗, 上面输出给出了最优基不变条件下目标函数系数的允许变化范围:x1的系数为(72-8,72+24)
=(64,96);x2的系数为(64-16,64+8)=(48,72)。
注意:x1系数的允许范围需要x2
系数64不变,反之亦然。
由于目标函数的费用系数变化并不影响约束条件,因此此时最优
基不变可以保证最优解也不变,但最优值变化。
用这个结果很容易回答附加问题3):若每公斤A1的获利增加到30元,则x1系数变为
30×3=90,在允许范围内,所以不应改变生产计划,但最优值变为
90×20+64×30=3720。
下面对“资源”的影子价格作进一步的分析。
影子价格的作用(即在最优解下“资源”增加1
个单位时“效益”的增量)是有限制的。
每增加1桶牛奶利润增长48元(影子价格),但是,
上面输出的CURRENT RHS 的ALLOWABLE INCREASE 和 ALLOWABLE DECREASE 给出了影子价格有意义条件下约束右端的限制范围: milk)原料最多增加10(桶牛奶),time)
劳动时间最多增加53(小时)。
现在可以回答附加问题1)的第2问:虽然应该批准用35元买1桶牛奶的投资,但每天
最多购买10桶牛奶。
顺便地说,可以用低于每小时2元的工资聘用临时工人以增加劳动时
间,但最多增加53.3333小时。
需要注意的是:灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件。
比如对于上面的问题,“原料最多增加10(桶牛奶)”的含义只能是“原料增加10(桶牛奶)”时最优基保持不变,所以影子价格有意义,即利润的增加大于牛奶的投资。
反过来,原料增加超过10(桶牛奶),影子价格是否一定没有
意义,最优基是否一定改变,一般来说,这是不能从灵敏性分析报告中直接得到的。
此时,应该重新用新数据求解规划模型,才能做出判断。
所以,从正常理解的角度来看,我们上面回答“原料最多增加10(桶牛奶)”并不是完全科学的。