资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
lingo软件求解线性规划及灵敏度分析注:以目标函数最大化为例进行讨论,对求最小的问题,有类似的分 析方法!所有程序运行环境为 lingo10。一、用 lingo 软件求解线性规划例 1 :max z = 2 x + 3 ys.t 4x + 3y 103 x + 5 y 0在模型窗口输入:model:max=2*x+3*y;4*x+3*y=10;3*x+5*y 0在模型窗口输入:model:max=5*x1+4*x2;x1+3*x2+x3=90;2*x1+x2+x4=80;x1+x2+x5=45;end运行(solve)结果如下:215.00000.0000003Global optimal solution found. Objective value:Infeasibilities:Total solver iterations:VariableValueReduced CostX135.000000.000000X210.000000.000000X325.000000.000000X40.0000001.000000X50.0000003.000000RowSlack or SurplusDual Price1215.00001.00000020.0000000.00000030.0000001.00000040.0000003.000000例3min z = - x + 2 x23st x 一 2x + x = 21 2 3x 一 3 x + x = 1234x 一 x + x = 2235x 0在模型窗口输入:model:min=-x2+2*x3;x1-2*x2+x3=2;x2-3*x3+x4=1;x2-x3+x5=2;end运行结果如下:Global optimal solution found.-1.5000000.0000002Objective value:Infeasibilities:Total solver iterations:VariableValueReduced CostX22.5000000.000000X30.50000000.000000X16.5000000.000000X40.0000000.5000000X50.0000000.5000000例 4 :(非线性)RowSlack or SurplusDual Price1-1.500000-1.00000020.0000000.00000030.0000000.500000040.0000000.5000000minx + y + zstx + y 12x+z=4在模型窗口输入:model:min=abs(x)+abs(y)+abs(z); x+y=1;2*x+z=4;free(x);free(y);free(z);End求解器状态如下:(可看出是非线性模型!)运行结果为:Linearization componentsadded:Constraints:12Variables:12Integers:3Global optimal solution found.Objective value:(最优解函数值)3.000000Objective bound:3.000000Infeasibilities:0.000000Extended solver steps:0Total solver iterations:3Varia(最优解)ValueReducedCostX2.0000000.000000Y-1.0000000.000000Z0.0000000.000000RowSlack or SurplusDual Price13.000000-1.00000020.0000001.00000030.000000-1.000000二、用lingo软件进行灵敏度分析实例例5:max S = 60x + 30y + 20z 8 x + 6 y + z 484 x + 2 y +1.5 z 202 x +1.5 y + 0.5 z 8 y 0在模型窗口输入:Lingo 模型:model:max=60*x+30*y+20*z;8*x+6*y+z48;4*x+2*y+1.5*z20;2*x+1.5*y+0.5*z8;y5;end(一)求解报告(solution report)通过菜单LingoSolve可以得到求解报告(solution report)如下:Global optimal solution found at iteration: 0Infeasibilities:0.000000Objective value:280.0000Total solver iterations:VariableValueReduced CostX2.0000000.000000Y0.0000005.000000Z8.0000000.0000002RoSwlack or Surplus1280.00002 24.000003 0.0000004 0.0000005 5.000000Dual Price1.0000000.00000010.0000010.000000.000000分析Value,Reduced Cost, Slack or Surplus, Dual Price的意义如下:1、最优解和基变量的确定Value所在列给出了问题的最优解。由于基变量取值非零,因此Value所在列取值非零的决策变量x,z是基变量。2、差额成本Reduced Cost (或oppor tun it y cos t)所在列的三个数值表示当决策变量取值增加一个 单位时,目标函数值的减少量。例如:第2个数5表示当变量y增加一个单位时,最优目标函 数值减少的量。例如:当y=l时,最优目标函数值为280-5=275。可通过如下模型可检验: model:max=60*x+30*y+20*z;8*x+6*y+z48;4*x+2*y+1.5*z20;2*x+1.5*y+0.5*z8;y5;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+z48; 4*x+2*y+1.5*z21; 2*x+1.5*y+0.5*z8; y5;end(二)灵敏度分析报告首先设置: LingoOptionsGeneral solverDual computationsPrices and Range。当求解完成后,最小化求解报告窗口,然后点击菜单LingoRange,可得灵敏度分析报告:Ranges in which the basis is unchanged:ObjectiveCoefficient RangesCurrentAllowableAllowableVariableCoefficientIncreaseDecreaseX60.0000020.000004.000000Y30.000005.000000INFINITYZ20.000002.5000005.000000Righthand Side RangesRHSIncrease Decrease248.00000INFINITY 24.00000320.000004.0000004.00000048.0000002.0000001.33333355.000000INFINITY5.000000RowCurrentAllowableAllowable分析 Objective Coefficient Ranges,Righthand Side Ranges 的意义如下:(不 必控制变量,可以同时改变多个值)1、目标函数中系数的变化对最优基的影响Objective Coefficient Ranges 表示目标函数行各系数在某个范围内变化时, 最优基
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号