1、线性规划和整数规划实验
1、加工奶制品的生产计划
(1)一奶制品加工厂用牛奶生产A1, A2两种奶制品,1桶牛奶可以在甲车 间用12小时加工成3千克A1产品,或者在乙车间用8小时加工成4千克A2 产品.根据市场需求,生产的A1、A2产品全部能售出,且每千克A1产品获利 24元,每千克A2产品获利16元.现在加工厂每天能得到50桶牛奶的供应, 每天正式工人总的劳动时间为480小时,并且甲车间的设备每天至多能加工100 千克A1产品,乙车间的设备的加工能力可以认为没有上限限制.试为该厂制订 一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:
(i)若用35元可以买到1桶牛奶,是否应作这项投资?若投资,每天最多购买多少桶牛奶?
(ii)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?
(iii)由于市场需求变化,每千克A1产品的获利增加到30元,是否应改变生产计划?
(2)进一步,为增加工厂获利,开发奶制品深加工技术.用2小时和3元加 工费,可将1千克A1加工成0.8千克高级奶制品B1,也可将1千克A2加工成 0.75千克高级奶制品B2,每千克B1可获44元,每千克B2可获32元.试为该 厂制订一个生产销售计划,使每天获利最大,并进一步讨论以下问题:
(i)若投资30元可增加供应1桶牛奶,投资3元可增加1小时劳动时间, 是否应作这项投资?若每天投资150元,或赚回多少?
(ii)每千克高级奶制品B1, B2的获利经常有10%的波动,对制订的生产销售计划有无影响?若每千克B1的获利下降10%,计划是否应作调整?
解:由已知可得1桶牛奶,在甲车间经过十二小时加工完成可生产3千克的A1,利润为72元;在乙车间经八小时加工完成可生产四千克的A2,利润为64元。 利用lingo软件,编写如下程序: model:
max=24*3*x1+16*4*x2; s.t.
12*x1+8*x2≤480; x1+x2≤50; 3*x1≤100; X1≥0,x2≥0 end
求解结果及灵敏度分析为:
Objective value: 3360.000 Total solver iterations: 2
Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000
Row Slack or Surplus Dual Price 1 3360.000 1.000000 2 0.000000 2.000000 3 0.000000 48.00000 4 40.00000 0.000000 Objective Coefficient Ranges
Current Allowable Allowable Variable Coefficient Increase Decrease
X1 72.00000 24.00000 8.000000 X2 64.00000 8.000000 16.00000
Righthand Side Ranges
Row Current Allowable Allowable RHS Increase Decrease 2 480.0000 53.33333 80.00000 3 50.00000 10.00000 6.666667 4 100.0000 INFINITY 40.00000 分析结果: 1)从结果可以看出在供应甲车间20桶、乙车间30桶的条件下,获利可以达到最大3360元。
ⅰ)从计算结果可以看出,多增加一桶可以获利48元,大于35元,因此可以做此项投资,在结果显示中,修改相关参数,可得还可以再购买10桶。
ⅱ)从结果中可以看出,增加一小时劳动时间可以增加利润两元,因此,若聘用临时工人以增加劳动时间,工人每小时的工资应不超过2元钱。
ⅱⅰ)从程序的运行结果看,A产品系数变化范围为64到96,当A1产品获利增加到30元时,系数变化为30*3=90<96,因此,不用改变生产计划。
2)由题意可知,对产品做进一步的深加工,设用以生产A1的为A1桶,A2的为A2桶,其中加工成B1B2的千克数位x和y千克,编写如下程序: max=72*A1+64*A2+8.2*X+5*Y; A1+A2<=50;
12*A1+8*A2+2*X+2*Y<=480; 3*A1<=100; 3*A1-X>=0; 3*A2-Y>=0;
运行以上程序,得到如下结果: Global optimal solution found.
Objective value: 3460.800 Total solver iterations: 3
Variable Value Reduced Cost A1 8.000000 0.000000 A2 42.00000 0.000000 X 24.00000 0.000000
Y 0.000000 1.520000
Row Slack or Surplus Dual Price 1 3460.800 1.000000 2 0.000000 37.92000 3 0.000000 3.260000 4 76.00000 0.000000 5 0.000000 -1.680000 6 126.0000 0.000000
从上面的结果可以看出,50桶牛奶中,8桶用于生产产品A1,42桶用于生产产品A2,且其中用以加工B1产品的A1为24千克,而A2不需要,可获得的最大利润为3460.8元。
ⅰ)从结果可以看出,每增加一桶牛奶可赚钱37.92元大于30,每增加一小时可赚钱3.26元大于3,因此应做此项投资。若投入150元,可买5桶,所得利润分别为:39.6和13元。
ⅱ)从灵敏度分析可知,B1和B2获利10%的波动对生产销售计划没有影响,而B1获利减少10%对生产销售计划有影响。
2、下料问题
用长度为500厘米的条材,截成长度分别为98厘米和78厘米二种毛坯, 要求共截出长98厘米的毛坯10000根,78厘米的20000根,问怎样截法,(1)使得所用的原料最少?(2)使得所剩余的边料最少?试分析两种问题的答案是否相同.
解:由已知可得现有500厘米的条材,要截出98厘米和78厘米两种不同的长度的条材,
可选择的模式如下表所示:
选择模式 1 2 3 4 5 6 98厘米条材根数 5 4 3 2 1 0 78厘米条材根数 0 1 2 3 5 6 余料/厘米 10 30 50 70 12 32 (1)欲使所用原料最少,建立如下数学模型,其中xi为采用第i中模式的切割根数: min=x1+x2+x3+x4+x5+x6;
5*x1+4*x2+3*x3+2*x4+x5>=10000; x2+2*x3+3*x4+5*x5+6*x6>=20000;
运行结果如下:
Global optimal solution found.
Objective value: 5200.000 Total solver iterations: 2
Variable Value Reduced Cost X1 1200.000 0.000000 X2 0.000000 0.4000000E-01 X3 0.000000 0.8000000E-01 X4 0.000000 0.1200000 X5 4000.000 0.000000 X6 0.000000 0.4000000E-01
Row Slack or Surplus Dual Price 1 5200.000 -1.000000 2 0.000000 -0.2000000 3 0.000000 -0.1600000
从运行结果可以看出,欲使所用原料最少,应采用第一种模式的截法1200根,第五种模式的截法4000根,做简单计算可得余料为60000cm。
(2)欲使剩余的边料最少,建立如下数学模型,并运行相应程序: min=10*x1+30*x2+50*x3+70*x4+12*x5+32*x6; 5*x1+4*x2+3*x3+2*x4+x5>=10000; x2+2*x3+3*x4+5*x5+6*x6>=20000; 运行程序,结果如下:
Global optimal solution found.
Objective value: 60000.00 Total solver iterations: 2
Variable Value Reduced Cost X1 1200.000 0.000000 X2 0.000000 20.00000 X3 0.000000 40.00000 X4 0.000000 60.00000 X5 4000.000 0.000000 X6 0.000000 20.00000
Row Slack or Surplus Dual Price 1 60000.00 -1.000000 2 0.000000 -2.000000 3 0.000000 -2.000000
从运行结果可以看出,最少边料依旧是60000cm,采用第一种模式裁1200根,采用第5中模式裁4000根,这与欲使使用原料最少的结果是一致的。
3、投资问题
假设投资者有如下四个投资的机会.
(A)在三年内,投资人应在每年的年初投资,每年每元投资可获利息0.2元,每年取息后可重新将本息投入生息.
(B)在三年内,投资人应在第一年年初投资,每两年每元投资可获利息0.5元.两
年后取息,可重新将本息投入生息.这种投资最多不得超过20万元.
(C)在三年内,投资人应在第二年年初投资,两年后每元可获利息0.6元,这种投资最多不得超过15万元.
(D)在三年内,投资人应在第三年年初投资,一年内每元可获利息0.4元,这种投资不得超过10万元.假定在这三年为一期的投资中,每期的开始有30万元的资金可供投资,投资人应怎样决定投资计划,才能在第三年底获得最高的收益.
解:用xiA,xiB,xiC,xiD(i=1,2,3)表示第i年初给项目A,B,C,D的投资金
额,则
max 1.2x3A+1.6x2C+1.4x3D s.t.x1A+x1B=30
1.2x1A=x2A+x2C
x3B+x3A+x3D=1.2x2A+1.5x1B x1B≤20 x2C≤15 x3D≤10 程序如下: MODEL:
1]max=1.2*X3a+1.6*X2c+1.4*X3d; 2]X1a+X1b=30;
3]X2a+X2c-1.2*X1a=0;
4]X3b+X3a+X3d-1.2*X2a-1.5*X1b=0; 5]@bnd(0,X1b,20); 6]@bnd(0,X2c,15); 7]@bnd(0,X3d,10); END
运行结果如下:
Global optimal solution found at iteration: 4
Objective value: 57.50000
Variable Value Reduced Cost X3A 16.25000 0.000000 X2C 15.00000 -0.1000000 X3D 10.00000 -0.2000000 X1A 12.50000 0.000000 X1B 17.50000 0.000000 X2A 0.000000 0.6000000E-01 X3B 0.000000 1.200000
Row Slack or Surplus Dual Price 1 57.50000 1.000000 2 0.000000 1.800000 3 0.000000 1.500000 4 0.000000 1.200000