最优化方法 - 用Lingo对线性规划进行灵敏度分析

2020-06-07 12:37

lingo软件求解线性规划及灵敏度分析

注:以目标函数最大化为例进行讨论,对求最小的问题,有类似的分析方法!所有程序运行环境为lingo10。 一、用lingo软件求解线性规划

例1:

maxz?2x?3ys.t.4x?3y?103x?5y?12x,y?0在模型窗口输入:

model: max=2*x+3*y; 4*x+3*y<=10; 3*x+5*y<12;

! the optimal value is :7.454545 ; End 如图所示:

运行结果如下(点击 工具栏上的‘solve’

Global optimal solution found.

或点击菜单‘lingo’下的‘solve’即可):

Objective value: 7.454545(最优解函数值) Total solver iterations: 2(迭代次数)

1

Variable (最优解) Value Reduced Cost X 1.272727 0.000000 Y 1.636364 0.000000

Row Slack or Surplus Dual Price 1 7.454545 1.000000 2 0.000000 0.9090909E-01 3 0.000000 0.5454545

例2:

maxz?5x1?4x2s.t.x1?3x2?x3?902x1?x2?x4?80 x1?x2?x5?45x?0在模型窗口输入:

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.000000 X2 10.00000 0.000000 X3 25.00000 0.000000 X4 0.000000 1.000000 X5 0.000000 3.000000

Row 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

例3

2

minz??x2?2x3s.t.x1?2x2?x3?2x2?3x3?x4?1 x2?x3?x5?2x?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.

Objective value: -1.500000 Total solver iterations: 2

Variable 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.5000000

Row 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:

minx?y?zs.t.在模型窗口输入:

model:

min=@abs(x)+@abs(y)+@abs(z); x+y<1; 2*x+z=4; @free(x); @free(y); @free(z);

x?y?1 2x?z?4 3

End

求解器状态如下:(可看出是非线性模型!)

运行结果为:

Linearization components added: Constraints: 12 Variables: 12 Integers: 3

Global optimal solution found.

Objective value: 3.000000 Extended solver steps: 0 Total solver iterations: 4

Variable Value Reduced Cost X 2.000000 0.000000 Y -1.000000 0.000000 Z 0.000000 0.000000

Row Slack or Surplus Dual Price 1 3.000000 -1.000000 2 0.000000 1.000000 3 0.000000 -1.000000

二、用lingo软件进行灵敏度分析实例

例5:

4

maxS?60x?30y?20z8x?6y?z?484x?2y?1.5z?202x?1.5y?0.5z?8y?5x,y,z?0在模型窗口输入: 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.0000

Variable Value Reduced Cost X 2.000000 0.000000 Y 0.000000 5.000000 Z 8.000000 0.000000

Row 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所在列给出了问题的最优解。

由于基变量取值非零,因此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;

5


最优化方法 - 用Lingo对线性规划进行灵敏度分析.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国人民银行关于人民币贷款利率有关问题的通知银发

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: