13170130 LINGO 实验报告 下载本文

内容发布更新时间 : 2024/4/28 5:46:21星期一 下面是文章的全部内容请认真阅读。

2014~2015学年第二学期短学期

《数学软件及应用(Lingo)》实验报告

班级 数学131班 姓名 张金库 学号 13170130 成绩

实验名称

奶制品的生产与销售计划的制定

完成日期:2015年9月3日

一、实验名称:奶制品的生产与销售计划的制定 二、实验目的及任务

1.了解并掌握LINGO的使用方法、功能与应用; 2.学会利用LINGO去解决实际中的优化问题。

三、实验内容

问题

一奶制品加工厂用牛奶生产A1,A2两种奶制品,1桶牛奶可以在甲类设备上用12h

加工成3kgA1,或者在乙类设备上用8h加工成4kgA2。根据市场的需求,生产A1,A2全部能售出,且每千克A1获利24元,每千克A2获利16元。现在现在加工场每天能的到50桶牛奶的供应,每天正式工人总的劳动时间为480h,并且甲类设备每天至多能加工100kgA1,乙类设备的加工能力没有限制。为增加工厂的利益,开发奶制品的深加工技术:用2h和3元加工费,可将1kgA1加工成0.8kg高级奶制品B1,也可将1kgA2加工成0.75kg高级奶制品B2,每千克B1能获利44元,每千克B2能获利32元。试为该工厂制订一个生产销售计划,使每天的净利润最大,并讨论以下问题:

(1)若投资30元可以增加供应1桶牛奶,投资3元可以增加1h的劳动时间,应否做这些投资?若每天投资150,可以赚回多少?

(2)每千克高级奶制品B1,B2的获利经常有10%的波动,对制订的生产销售计划有无影响?若每千克B1获利下降10%,计划应该变化吗?

(3)若公司已经签订了每天销售10kgA1的合同并且必须满足,该合同对公司的利润有什么影响? 问题分析

要求制定生产销售计划,决策变量可以先取作每天用多少桶牛奶生产A1,A2,

再添上用多少千克A1加工B1,用多少千克A2加工B2,但是问题要分析B1,B2的获利对生产销售计划的影响,所以决策变量取作A1,A2,B1,B2每天的销售量更为方便。目标函数是工厂每天的净利润——A1,A2,B1,B2的获利之和扣除深加工费用。

基本模型

决策变量:设每天销售x1kgA1,x2kgA2,x3kgB1,x4kgB2,用x5kgA1加工B1,用x6kgA1加工B2。

目标函数:设每天净利润为z,容易写出z?24x1?16x2?44x3?32x4?3x5?3x6。 约束条件: 原料供应

每天生产A1x1?x5kg,用牛奶(x1?x5)/3桶,每天生产A2x2?x6kg,用牛

奶(x2?x6)/4桶,二者只和不超过每天的供应量50桶; 劳动时间

每天生产A1,A2的时间分别为4(x1?x5)和2(x2?x6),加工B1,B2的时间

分别为2x5和2x6,二者只和不得超过总的劳动时间480h; 设备能力 非负约束 附加约束

A1的生产量x1?x5不超过甲类设备每天的加工能力100kg;

x1,x2,?,x6均为非负。

1kgA1加工成0.8kgB1,故x3?0.8x5,同理x4?0.75x6。

由此得基本模型为:

max z?24x1?16x2?44x3?32x4?3x5?3x6 (1)

S.t. (x1?x5)/3+(x2?x6)/4≤50 (2)

4(x1?x5)+2(x2?x6)+2x5+2x6≤480 (3)

x1?x5≤100 (4) x3?0.8x5 (5) x4?0.75x6 (6) x1,x2,?,x6≥0 (7)

模型求解

用LINGO软件求解,输入时为了方便将(2)、(3)分别改为

4x1?3x2?4x3?3x4?600

(7*) (8*)

4x1?2x2?6x5?4x6?480

LINGO程序

model:

max=24*x1+16*x2+44*x3+32*x4-3*x5-3*x6; [milk] 4*x1+3*x2+4*x5+3*x6<=600;

[time] 4*x1+2*x2+6*x5+4*x6<=480; [cpct] x1+x5<=100; x3=0.8*x5; x4=0.75*x6; end

输入并求解,可得如下输出:

Global optimal solution found.

Objective value: 3460.800 Total solver iterations: 2

Variable Value Reduced Cost X1 0.000000 1.680000 X2 168.0000 0.000000 X3 19.20000 0.000000 X4 0.000000 0.000000 X5 24.00000 0.000000 X6 0.000000 1.520000

Row Slack or Surplus Dual Price 1 3460.800 1.000000 MILK 0.000000 3.160000 TIME 0.000000 3.260000 CPCT 76.00000 0.000000 5 0.000000 44.00000 6 0.000000 32.00000 Ranges in which the basis is unchanged:

Objective Coefficient Ranges

Current Allowable Allowable Variable Coefficient Increase Decrease X1 24.00000 1.680000 INFINITY X2 16.00000 8.150000 2.100000 X3 44.00000 19.75000 3.166667 X4 32.00000 2.026667 INFINITY X5 -3.000000 15.80000 2.533333 X6 -3.000000 1.520000 INFINITY

Righthand Side Ranges

Row Current Allowable Allowable RHS Increase Decrease

MILK 600.0000 120.0000 280.0000 TIME 480.0000 253.3333 80.00000 CPCT 100.0000 INFINITY 76.00000 5 0.0 INFINITY 19.20000 6 0.0 INFINITY 0.0

最优解为x1?0,x2?168,x3?19.2,x4?0,x5?24,x6?0,最优值为z=3460.8,即每天生产168kgA2和19.2kgB1(不出售A1,B2),可获净利润3460.8元。为此,需用8桶牛奶加工成A1,42桶牛奶加工成A2,并且将得到的24kgA1全部加工成B1。

结果和灵敏度分析

利用输出中的影子价格和敏感性分析讨论以下问题:

(1)上述结果给出,约束[MILK]、[TIME]的影子价格分别为3.16和3.26,注意到约束[MILK]的影子价格为(2*)右端增加1个单位时目标函数的增量,有(2)式可知,增加一桶牛奶可使净利润增长3.16×12=37.92元,约束[TIME]的影子价格说明:增加1h的劳动时间可以使净利润增长3.26元。所以应该投资30元增加一桶牛奶,或投资3元增加1h劳动时间。若每天投资150元,增加供应五桶牛奶,可赚回37.92×5=189.6元。但是通过增加牛奶的数量是有限制的,输出结果表明,约束[MILK]右端的允许变化范围为(600-120,600+120),相当于(2)右端允许变化范围为(50-23.3,50+10),即最多增加供应10桶牛奶。

(2)上述输出结果给出,最优解不变的条件下目标函数系数的允许变化范围:x3的系数为(44-3.17,44+19.75);x4的系数为(32-?,32+2.03)。所以当B1的获利向下波动10%,或B2的获利向上波动10%,上面得到的生产计划将不再一定是最优的,应该重新制订。如若每千克B1获利下降10%,应该将原模型(1)式中的x3改为39.6,重新计算,得到最优解为x1?0,x2?160,x3?0,x4?30,x5?0,x6?40,最优值为z=3400.

(3)上述结果的给出,变量x1对应的“Reduced Cost”严格大于0(为1.68),首先表明目前最优解中x1的取值一定为0;其次,如果限定x1的取值大于等于某个正数,则x1从0开始每增加一个单位时,(最优的)目标函数将减少1.68。因此若该公司已经签订了每天销售10kg的合约并且必须满足,改合同将会使该公司利润减少1.68×10=16.8元,即最优利润为3460.8-16.9=3444元。也可以反过来理解:如果目标函数中x1对应的费用系数增加不小于1.68,则在最优解中x1将可以取到严格大于0的值。