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; end
4、对偶价格(影子价格) 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
(二)灵敏度分析报告
首先设置:Lingo→Options→General solver→Dual computations→Prices and Range。 当求解完成后,最小化求解报告窗口,然后点击菜单Lingo→Range,可得灵敏度分析报告:
Ranges in which the basis is unchanged:
Objective Coefficient Ranges
Current Allowable Allowable Variable Coefficient Increase Decrease X 60.00000 20.00000 4.000000 Y 30.00000 5.000000 INFINITY Z 20.00000 2.500000 5.000000
Righthand Side Ranges
Row Current Allowable Allowable RHS Increase Decrease 2 48.00000 INFINITY 24.00000 3 20.00000 4.000000 4.000000 4 8.000000 2.000000 1.333333 5 5.000000 INFINITY 5.000000
分析Objective Coefficient Ranges,Righthand Side Ranges的意义如下: 1、目标函数中系数的变化对最优基的影响
6
Objective Coefficient Ranges表示目标函数行各系数在某个范围内变化时,最优基保持不变。以变量x的系数为例:当x的系数在?60?460?20?内取值时,最优
基保持不变。此时,最优解不变,最优目标函数值变了。例如:可通过如下模型检验:
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; end
2、约束条件右端常数变化对最优基的影响
Righthand Side Ranges表示约束右端项各数在某个范围内变化时,最优基保持不变。以第一个约束行为例:当右端项在?48?2448???内取值时,最优基保持不变。
此时,最优解,目标函数的最优值变化了。例如:可通过如下模型检验:
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) @gin(x) @free(x) @bnd(a,x,b) 定义x为0-1变量 定义x为整数变量 X无限制(lingo模型里面,变量被默认为非负,即任意变量x>=0) A 1、建立线性规划模型并求解 (1)某工厂生产甲、乙两种产品。已知生产甲种产品1t需耗A种矿石10t、B种矿石5t、煤4t;生产乙种产品1t需耗A种矿石4t、B种矿石4t、煤9t。每1t甲种产品的利润是600元,每1t乙种产品的利润是1000元。工厂在生产这两种产品的计划中要求消耗A种矿石不超过300t、B种矿石不超过200t、煤不超过360t。甲、乙两种产品应各生产多少,能使利润总额达到最大? (2)设有A1,A2两个香蕉基地,产量分别为60吨和80吨,联合供应B1,B2,B3三个销地的销售量经预测分别为50吨、50吨和40吨。两个产地到三个销地的单位运价如下表所示: 表1(单位运费:元/吨) 7 问每个产地向每个销地各发货多少,才能使总的运费最少? 2、用Lingo软件对下列线性规划问题进行灵敏度分析。 (1) min?3x1?3x2?x3s.t.x1?2x2?x3?52x1?x2?3x3?16 x1?x2?12x1,x2,x3?0(2) max2x1?x2s.t.x1?x2?x3?5?x1?x2?x4?0 6x1?2x2?x5?21x1,(3) ,x5?0max30x1?35x2?40x3?45x4s.t.3x1?4x2?6x3?4x4?704x1?3x2?6x3?5x4?80xi?0?i?1,2,3,4?3、综合题 某工厂用甲,乙两种原料生产A,B,C,D 四种产品,每种产品的利润、现有原料数量及每种产品消耗原料定额如下表: 每万件产品所耗原料(千克) A 甲 乙 每万件产品利润(万元) 3 0 9 B 2 0 8 C 10 2 50 D 4 2.5 19 现有原料(千克) 18 3 问题: (1)怎样组织生产才能使总利润最大? (2)如果产品A的利润有波动,波动范围应限制在什么范围内,才能使得原生产计划不变? (3)若原料甲的数量发生变化,在什么范围内变化时才能使得原生产计划不变? (4)若工厂引进新产品E, 已知生产1万件E消耗原料甲3千克,材料乙1千克,问E的利润为至少为多少时,投资才有利?(提示:利用差额成本分析!) 要求:建立相应的数学模型,用Lingo进行分析。 model: model: max=9*x1+8*x2+50*x3+19*x4; max=9*x1+8*x2+50*x3+19*x4+x5; 3*x1+2*x2+10*x3+4*x4<=18; 3*x1+2*x2+10*x3+4*x4+3*x5<=18; 2*x3+2.5*x4<=3; 2*x3+2.5*x4+x5<=3; end end 8