最优化方法——用Lingo对线性规划进行灵敏度分析(共8页).doc
-
资源ID:14181638
资源大小:187.50KB
全文页数:8页
- 资源格式: DOC
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
最优化方法——用Lingo对线性规划进行灵敏度分析(共8页).doc
精选优质文档-倾情为你奉上lingo软件求解线性规划及灵敏度分析注:以目标函数最大化为例进行讨论,对求最小的问题,有类似的分析方法!所有程序运行环境为lingo10。一、用lingo软件求解线性规划例1:在模型窗口输入:model:max=2*x+3*y;4*x+3*y<=10;3*x+5*y<12;! the optimal value is :7. ;End如图所示:运行结果如下(点击 工具栏上的solve或点击菜单lingo下的solve即可):Global optimal solution found. Objective value: 7.(最优解函数值) Total solver iterations: 2(迭代次数) Variable (最优解) Value Reduced Cost X 1. 0. Y 1. 0. Row Slack or Surplus Dual Price 1 7. 1. 2 0. 0.E-01 3 0. 0.例2:在模型窗口输入: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: 3 Variable Value Reduced Cost X1 35.00000 0. X2 10.00000 0. X3 25.00000 0. X4 0. 1. X5 0. 3. Row Slack or Surplus Dual Price 1 215.0000 1. 2 0. 0. 3 0. 1. 4 0. 3.例3在模型窗口输入: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. Total solver iterations: 2 Variable Value Reduced Cost X2 2. 0. X3 0. 0. X1 6. 0. X4 0. 0. X5 0. 0. Row Slack or Surplus Dual Price 1 -1. -1. 2 0. 0. 3 0. 0. 4 0. 0.例4:在模型窗口输入: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: 12 Variables: 12 Integers: 3 Global optimal solution found. Objective value: 3. Extended solver steps: 0 Total solver iterations: 4 Variable Value Reduced Cost X 2. 0. Y -1. 0. Z 0. 0. Row Slack or Surplus Dual Price 1 3. -1. 2 0. 1. 3 0. -1.二、用lingo软件进行灵敏度分析实例例5: 在模型窗口输入: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)通过菜单LingoSolve可以得到求解报告(solution report)如下:Global optimal solution found at iteration: 0 Objective value: 280.0000 Variable Value Reduced Cost X 2. 0. Y 0. 5. Z 8. 0. Row Slack or Surplus Dual Price 1 280.0000 1. 2 24.00000 0. 3 0. 10.00000 4 0. 10.00000 5 5. 0.分析Value,Reduced Cost,Slack or Surplus,Dual Price的意义如下:1、最优解和基变量的确定Value所在列给出了问题的最优解。由于基变量取值非零,因此Value所在列取值非零的决策变量x,z是基变量。2、差额成本Reduced Cost(或opportunity cost)所在列的三个数值表示当决策变量取值增加一个单位时,目标函数值的减少量。例如:第2个数5表示当变量y增加一个单位时,最优目标函数值减少的量。例如:当y=1时,最优目标函数值为280-5=275。可通过如下模型可检验: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;y=1;end注:(1)换一个角度说,就是目标函数中变量y的系数增加5,那么生产y才会有利!(2)基变量的Reduced Cost值为0,只有非基变量的Reduced Cost值才可能不为0;故由value,和Reduced Cost值分析可知y为非基变量。3、松弛变量取值Slack or Surplus所在列的各数表示各行的松弛变量的取值。目标函数行的Slack or Surplus值没啥意义,不用考虑。可通过如下模型检验:model:max=60*x+30*y+20*z;8*x+6*y+z+s1=48;4*x+2*y+1.5*z+s2=20;2*x+1.5*y+0.5*z+s3=8;y+s4=5;end4、对偶价格(影子价格)Dual Price所在列的各数表示相应约束条件的右端常数增加一个单位时,最优目标函数值的增加量。注,只有紧约束行的Dual Price值不为0。例如:要检验第二行约束,可通过如下模型:model:max=60*x+30*y+20*z;8*x+6*y+z<48;4*x+2*y+1.5*z<21;2*x+1.5*y+0.5*z<8;y<5;end(二)灵敏度分析报告 首先设置:LingoOptionsGeneral solverDual computationsPrices and Range。 当求解完成后,最小化求解报告窗口,然后点击菜单LingoRange,可得灵敏度分析报告: Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X 60.00000 20.00000 4. Y 30.00000 5. INFINITY Z 20.00000 2. 5. Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 48.00000 INFINITY 24.00000 3 20.00000 4. 4. 4 8. 2. 1. 5 5. INFINITY 5.分析Objective Coefficient Ranges,Righthand Side Ranges的意义如下:1、目标函数中系数的变化对最优基的影响 Objective Coefficient Ranges表示目标函数行各系数在某个范围内变化时,最优基保持不变。以变量x的系数为例:当x的系数在内取值时,最优基保持不变。此时,最优解不变,最优目标函数值变了。例如:可通过如下模型检验:model:max=56.0001*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;end2、约束条件右端常数变化对最优基的影响 Righthand Side Ranges表示约束右端项各数在某个范围内变化时,最优基保持不变。以第一个约束行为例:当右端项在内取值时,最优基保持不变。此时,最优解,目标函数的最优值变化了。例如:可通过如下模型检验:model:max=60*x+30*y+20*z;8*x+6*y+z<4800;4*x+2*y+1.5*z<20;2*x+1.5*y+0.5*z<8;y<5;end注:关于lingo软件的更广泛的应用见相关参考书或者lingo软件的帮助文档!lingo常用约束函数bin(x)定义x为0-1变量gin(x)定义x为整数变量free(x)X无限制(lingo模型里面,变量被默认为非负,即任意变量x>=0)bnd(a,x,b)A<x<b练习:1、建立线性规划模型并求解(1)某工厂生产甲、乙两种产品。已知生产甲种产品需耗种矿石、种矿石、煤;生产乙种产品需耗种矿石、种矿石、煤。每甲种产品的利润是元,每乙种产品的利润是元。工厂在生产这两种产品的计划中要求消耗种矿石不超过、种矿石不超过、煤不超过。甲、乙两种产品应各生产多少,能使利润总额达到最大?(2)设有A1,A2两个香蕉基地,产量分别为60吨和80吨,联合供应B1,B2,B3三个销地的销售量经预测分别为50吨、50吨和40吨。两个产地到三个销地的单位运价如下表所示:表1(单位运费:元/吨)问每个产地向每个销地各发货多少,才能使总的运费最少?2、用Lingo软件对下列线性规划问题进行灵敏度分析。(1)(2)(3)3、综合题某工厂用甲,乙两种原料生产A,B,C,D 四种产品,每种产品的利润、现有原料数量及每种产品消耗原料定额如下表:每万件产品所耗原料(千克)ABCD现有原料(千克)甲3210418乙0022.53每万件产品利润(万元)985019问题:(1)怎样组织生产才能使总利润最大?(2)如果产品A的利润有波动,波动范围应限制在什么范围内,才能使得原生产计划不变?(3)若原料甲的数量发生变化,在什么范围内变化时才能使得原生产计划不变?(4)若工厂引进新产品E, 已知生产1万件E消耗原料甲3千克,材料乙1千克,问E的利润为至少为多少时,投资才有利?(提示:利用差额成本分析!)要求:建立相应的数学模型,用Lingo进行分析。model:max=9*x1+8*x2+50*x3+19*x4;3*x1+2*x2+10*x3+4*x4<=18;2*x3+2.5*x4<=3;endmodel:max=9*x1+8*x2+50*x3+19*x4+x5;3*x1+2*x2+10*x3+4*x4+3*x5<=18;2*x3+2.5*x4+x5<=3;end专心-专注-专业