最优化方法线性规划用Lingo对线性规划进行灵敏度分析Word下载.docx
- 文档编号:6104876
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:22
- 大小:65.71KB
最优化方法线性规划用Lingo对线性规划进行灵敏度分析Word下载.docx
《最优化方法线性规划用Lingo对线性规划进行灵敏度分析Word下载.docx》由会员分享,可在线阅读,更多相关《最优化方法线性规划用Lingo对线性规划进行灵敏度分析Word下载.docx(22页珍藏版)》请在冰点文库上搜索。
x1+3*x2+x3=90;
2*x1+x2+x4=80;
x1+x2+x5=45;
end
运行(solve)结果如下:
215.0000
3
VariableValueReducedCost
X135.000000.000000
X210.000000.000000
X325.000000.000000
X40.0000001.000000
X50.0000003.000000
1215.00001.000000
20.0000000.000000
30.0000001.000000
40.0000003.000000
例3
min=-x2+2*x3;
x1-2*x2+x3=2;
x2-3*x3+x4=1;
x2-x3+x5=2;
运行结果如下:
Globaloptimalsolutionfound.
-1.500000
2
X22.5000000.000000
X30.50000000.000000
X16.5000000.000000
X40.0000000.5000000
X50.0000000.5000000
1-1.500000-1.000000
30.0000000.5000000
40.0000000.5000000
例4:
(非线性)
min=@abs(x)+@abs(y)+@abs(z);
x+y<
=1;
2*x+z=4;
@free(x);
@free(y);
@free(z);
求解器状态如下:
(可看出是非线性模型!
)
运行结果为:
Linearizationcomponentsadded:
Constraints:
12
Variables:
Integers:
(最优解函数值)3.000000
Objectivebound:
3.000000
Extendedsolversteps:
0
Variable(最优解)ValueReducedCost
X2.0000000.000000
Y-1.0000000.000000
Z0.0000000.000000
13.000000-1.000000
20.0000001.000000
30.000000-1.000000
二、用lingo软件进行灵敏度分析实例
例5:
Lingo模型:
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;
(一)求解报告(solutionreport)
通过菜单Lingo→Solve可以得到求解报告(solutionreport)如下:
Globaloptimalsolutionfoundatiteration:
0.000000
Objectivevalue:
280.0000
Totalsolveriterations:
2
Y0.0000005.000000
Z8.0000000.000000
1280.00001.000000
224.000000.000000
30.00000010.00000
40.00000010.00000
55.0000000.000000
分析Value,ReducedCost,SlackorSurplus,DualPrice的意义如下:
1、最优解和基变量的确定
Value所在列给出了问题的最优解。
由于基变量取值非零,因此Value所在列取值非零的决策变量x,z是基变量。
2、差额成本
ReducedCost(或opportunitycost)所在列的三个数值表示当决策变量取值增加一个单位时,目标函数值的减少量。
例如:
第2个数5表示当变量y增加一个单位时,最优目标函数值减少的量。
当y=1时,最优目标函数值为280-5=275。
可通过如下模型可检验:
y=1;
(1)换一个角度说,就是目标函数中变量y的系数至少增加5,那么生产y才会有利!
(2)基变量的ReducedCost值为0,只有非基变量的ReducedCost值才可能不为0;
故由value,和ReducedCost值分析可知y为非基变量。
3、松弛变量取值
SlackorSurplus所在列的各数表示各行的松弛变量的取值。
目标函数行的SlackorSurplus值没啥意义,不用考虑。
可通过如下模型检验:
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;
4、对偶价格(影子价格)
DualPrice所在列的各数表示相应约束条件的右端常数增加一个单位时,最优目标函数值的增加量。
注,只有紧约束行的DualPrice值不为0。
要检验第三行约束,可通过如下模型:
21;
(二)灵敏度分析报告
首先设置:
Lingo→Options→Generalsolver→Dualcomputations→PricesandRange。
当求解完成后,最小化求解报告窗口,然后点击菜单Lingo→Range,可得灵敏度分析报告:
Rangesinwhichthebasisisunchanged:
ObjectiveCoefficientRanges
CurrentAllowableAllowable
VariableCoefficientIncreaseDecrease
X60.0000020.000004.000000
Y30.000005.000000INFINITY
Z20.000002.5000005.000000
RighthandSideRanges
RowCurrentAllowableAllowable
RHSIncreaseDecrease
248.00000INFINITY24.00000
320.000004.0000004.000000
48.0000002.0000001.333333
55.000000INFINITY5.000000
分析ObjectiveCoefficientRanges,RighthandSideRanges的意义如下:
(不必控制变量,可以同时改变多个值)
1、目标函数中系数的变化对最优基的影响
ObjectiveCoefficientRanges表示目标函数行各系数在某个范围内变化时,最优基保持不变。
以变量x的系数为例:
当x的系数在
(开区间)内取值时,最优基保持不变。
此时,最优解不变,最优目标函数值变了。
max=56.0001*x+30*y+20*z;
2、约束条件右端常数变化对最优基的影响
RighthandSideRanges表示约束右端项各数在某个范围内变化时,最优基保持不变。
以第一个约束行为例:
当右端项在
此时,最优解不变,目标函数的最优值变化了。
4800;
关于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)某工厂生产甲、乙两种产品。
已知生产甲种产品
需耗
种矿石
、
、煤
;
生产乙种产品
。
每
甲种产品的利润是
元,每
乙种产品的利润是
元。
工厂在生产这两种产品的计划中要求消耗
种矿石不超过
、煤不超过
甲、乙两种产品应各生产多少,能使利润总额达到最大?
maxz=600x+1000y;
s.t.10x+4y<
=300;
2x+4y<
=200;
4x+9y<
=360;
x>
=0,y>
=0;
42648.65
Infeasibilities:
X17.027030.000000
Y32.432430.000000
142648.651.000000
20.00000018.91892
336.216220.000000
40.000000102.7027
(2)设有A1,A2两个香蕉基地,产量分别为60吨和80吨,联合供应B1,B2,B3三个销地的销售量经预测分别为50吨、50吨和40吨。
两个产地到三个销地的单位运价如下表所示:
表1(单位运费:
元/吨)
问每个产地向每个销地各发货多少,才能使总的运费最少?
minz=600*x11+300*x12+400*x13+400*x21+700*x22+300*x23;
x11+x12+x13=60;
x21+x22+x23=80;
x11+x21=50;
x12+x22=50;
x13+x23=40;
x11>
=0,x12>
=0,x13>
=0,x21>
=0,x22>
=0,x23>
48000.00
1
X110.000000100.0000
X1250.000000.000000
X1310.000000.000000
X2150.000000.000000
X220.000000500.0000
X2330.000000.000000
148000.00-1.000000
30.000000100.0000
40.000000-500.0000
50.000000-300.0000
60.000000-400.0000
2、用Lingo软件对下列线性规划问题进行灵敏度分析。
(1)
Rangesinwhichthebasisisunchanged:
X1-3.0000001.5000003.000000
X23.0000003.0000001.500000
X31.000000INFINITY5.000000
25.0000003.0000001.000000
316.000001.0000006.000000
412.00000INFINITY1.000000
(2)
X12.0000004.0000001.000000
X21.0000001.0000000.6666667
X30.00.8000000INFINITY
X40.00.57142860.5000000
X50.00.2000000INFINITY
25.0000001.0000001.500000
30.0INFINITY1.400000
421.000009.0000003.500000
(3)
X130.000005.000000INFINITY
X235.0000010.000008.000000
X340.0000020.00000INFINITY
X445.0000013.333335.714286
270.0000036.666676.000000
380.000007.50000027.50000
3、综合题
某工厂用甲,乙两种原料生产A,B,C,D四种产品,每种产品的利润、现有原料数量及每种产品消耗原料定额如下表:
每万件产品所耗原料(千克)
A
B
C
D
现有原料(千克)
甲
3
2
10
4
18
乙
2.5
每万件产品利润(万元)
9
8
50
19
问题:
(1)怎样组织生产才能使总利润最大?
(2)如果产品A的利润有波动,波动范围应限制在什么范围内,才能使得原生产计划不变?
(3)若原料甲的数量发生变化,在什么范围内变化时才能使得原生产计划不变?
(4)若工厂引进新产品E,已知生产1万件E消耗原料甲3千克,材料乙1千克,问E的利润为至少为多少时,投资才有利?
(提示:
利用差额成本分析!
要求:
建立相应的数学模型,用Lingo进行分析。
解:
(1)
max=9*x1+8*x2+50*x3+19*x4;
3*x1+2*x2+10*x3+4*x4<
=18;
2*x3+2.5*x4<
=3;
Globaloptimalsolutionfound.
87.00000
X10.0000003.000000
X21.5000000.000000
X31.5000000.000000
X40.0000009.500000
187.000001.000000
20.0000004.000000
30.0000005.000000
(2)and(3)
X19.0000003.000000INFINITY
X28.0000002.0000002.000000
X350.00000INFINITY7.600000
X419.000009.500000INFINITY
有问题218.00000INFINITY3.000000
有问题33.0000000.60000003.000000
(4)
max=9*x1+8*x2+50*x3+19*x4+x5;
3*x1+2*x2+10*x3+4*x4+3*x5<
2*x3+2.5*x4+x5<
X50.00000016.00000
4、整数规划
maxz=4*x1+3*x2;
s.t.3*x1+4*x2<
=12;
4*x1+2*x2<
=9;
x1>
=0,x2>
=0,且为整数
max=4*x1+3*x2;
3*x1+4*x2<
@gin(x1);
@gin(x2);
10.00000
Objectivebound:
X11.000000-4.000000
X22.000000-3.000000
110.000001.000000
21.0000000.000000
31.0000000.000000
minz=x1+4*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 方法 线性规划 Lingo 进行 灵敏度 分析