数学模型数学建模次作业线性规划实验.docx
《数学模型数学建模次作业线性规划实验.docx》由会员分享,可在线阅读,更多相关《数学模型数学建模次作业线性规划实验.docx(39页珍藏版)》请在冰点文库上搜索。
数学模型数学建模次作业线性规划实验
数学模型第三次作业线性规划实验
3.1实验目的与要求
●学会建立线性规划模型、整数规划模型
●学会LINGO软件的基本使用方法,求解线性规划和整数规划问题
●学会对线性规划问题进行灵敏度分析
●对计算结果进行分析和讨论
3.2基本实验
1.生产计划安排
NWAC电力公司为军事承包商生产4种类型的电缆。
每种电缆必须经过4种相继的操作:
拼接、焊接、套管和检查。
表3.1给出了该问题相关的数据.承包商保证对于四种电缆的每一种最低产量是100个单位。
(1)将问题建立成一个线性规划模型,并确定最优的产品进度表
(2)基于对偶价格(DnalPrice),你会推荐增加四种操作中哪一种操作的能力?
试解释。
(3)对于四种电缆的最低产量要求对NWAC电力公司有利还是不利?
试分析
解:
分析题意,这是一个较为基础的线性规划问题,
可以设生产4种电缆数量分别为X1,X2,X3,X4,
则目标函数:
MAX9.40X1+10.80X2+8.75X3+7.80X4
约束条件:
10.5X1+9.3X2+11.6X3+8.2X4<=4800
20.4X1+24.6X2+17.7X3+8.2X4<=9600
3.2X1+2.5X2+3.6X3+5.5X4<=4700
5.0X1+5.0X2+5.0X3+5.0X4<=4500
X1>=100
X2>=100
X3>=100
X4>=100
(1)使用LINGO软件进行计算:
Max9.40X1+10.80X2+8.75X3+7.80X4
subjectto
10.5X1+9.3X2+11.6X3+8.2X4<=4800
20.4X1+24.6X2+17.7X3+8.2X4<=9600
3.2X1+2.5X2+3.6X3+5.5X4<=4700
5.0X1+5.0X2+5.0X3+5.0X4<=4500
X1>=100
X2>=100
X3>=100
X4>=100
End
运行得到结果:
Globaloptimalsolutionfound.
Objectivevalue:
4650.484
Infeasibilities:
0.000000
Totalsolveriterations:
4
VariableValueReducedCost
X1100.00000.000000
X2190.32260.000000
X3100.00000.000000
X4100.00000.000000
RowSlackorSurplusDualPrice
14650.4841.000000
20.0000001.161290
3288.06450.000000
42994.1940.000000
52048.3870.000000
60.000000-2.793548
790.322580.000000
80.000000-4.720968
90.000000-1.722581
即当X1为100,X2约为190,X3为100,X4为100时
可以得到一个最大利润约为4650.484$。
(2)“DUALPRICE”(对偶价格)列出最优单纯形表中判别数所在行的松弛变量的系数,表示当对应约束有微小变动时,目标函数的变化率,输出结果中对应每一个约束有一个对偶价格。
若其数值为x,表示对应约束中不等式右端项若增加一个单位,目标函数将增加x个单位(max型问题)。
当REDUCECOST或DUALPRICE的值为0。
表示当微小扰动不影响目标函数。
由
(1)中得到的结果,其四种能力对应的DUALPRICE如下:
RowSlackorSurplusDualPrice
20.0000001.161290
3288.06450.000000
42994.1940.000000
52048.3870.000000
因此应该考虑增强第一种技术,即拼接技术。
(3)根据第二问的依据,需要分析最低产量要求的对偶价格列出其关系式所对应的Lingo分析结果:
RowSlackorSurplusDualPrice
60.000000-2.793548
790.322580.000000
80.000000-4.720968
90.000000-1.722581
易知,只有第二种电缆的最低产量要求对最高利润无影响;第一、第三、第四种电缆产量的最低要求都不利于NWAC电力公司,增加这三种电缆产量的最低要求,都会导致最大利润的减少。
2.工程进度问题
某城市在未来的五年内将启动四个城市住房改造工程。
每项工程有不同的始时间,工程周期也不一样。
表3.2提供这些项目的基本数据。
工程1和工程4必须在规定的周期内全部完成。
必要时,其余的二项工程可以在预算的限制内完成部分。
然而,每个工程在它的规定时间内必须至少完成25%.每年底,工程完成的部分立刻入住,并且实现一定比例的收入.例如,如果工程1在第一年完成40%,在第三年完成剩下的60%,在五年计划范围内的相应收入是0.4×50(第二年)+0.4×50(第三年)+(0.4+0.6)×50(第四年)+(0.4+0.6)×50(第五年)=(4×0.4+2×0.6)×50(单位:
万元)。
试为工程确定最优的时间进度表,使得五年内的总收入达到最大。
解:
设X为各项工程的完成进度
若工程1完成进度为X1,将进行工程1所获得的利润表示为:
50X11+50(X11+X12)+50(X11+X12+X13)+50
若工程2完成进度为X2,将进行工程2所获得的利润表示为:
70X22+70(X22+X23)+70(X22+X23+X24)
若工程3完成进度为X3,将进行工程3所获得的利润表示为:
150X31+150(X31+X32)+150(X31+X32+X33)+150(X31+X32+X33+X34)
若工程4完成进度为X4,将进行工程4所获得的利润表示为:
20X43+20(X43+X44)
编辑Lingo语句:
Model:
max=50*(4*X11+3*X12+2*X13)+70*(3*X22+2*X23+1*X24)+150*(4*X31+3*X32+2*X33+1*X34)+20*(2*X43+1*X44);
5000*X11+15000*X31<=3000;
5000*X12+8000*X22+15000*X32<=6000;
5000*X13+8000*X23+15000*X33+1200*X43<=7000;
8000*X24+15000*X34+1200*X44<=7000;8000*X25+15000*X35<=7000;
X11+X12+X13=1;
X22+X23+X24+X25<=1;
X22+X23+X24+X25>=0.25;
X31+X32+X33+X34+X35<=1;
X31+X32+X33+X34+X35>=0.25;
X43+X44=1;
End
得到运算结果:
Globaloptimalsolutionfound.
Objectivevalue:
523.7500
Infeasibilities:
0.000000
Totalsolveriterations:
10
VariableValueReducedCost
X110.60000000.000000
X120.40000000.000000
X130.0000000.000000
X220.00000020.00000
X230.00000010.00000
X240.22500000.000000
X310.0000000.000000
X320.26666670.000000
X330.38666670.000000
X340.34666670.000000
X431.0000000.000000
X440.0000008.000000
X250.77500000.000000
X350.00000018.75000
RowSlackorSurplusDualPrice
1523.75001.000000
20.0000000.3875000E-01
30.0000000.2875000E-01
40.0000000.1875000E-01
50.0000000.8750000E-02
6800.00000.000000
70.0000006.250000
80.0000000.000000
90.75000000.000000
100.00000018.75000
110.75000000.000000
120.00000017.50000
由此制定一个可以获得最大利润的进度计划表:
第一年
第二年
第三年
第四年
第五年
工程1
60%(开始)
40%
0(结束)
工程2
0(开始)
0
22.5%
77.5%(结束)
工程3
0(开始)
26.7%
38.7%
34.7%
0(结束)
工程4
100%(开始)
0(结束)
3、投资问题
一个商业主管在两个计划中有投资选择权,计划A保证每1美元的投资在1年后可以赚得0.70美元,而计划B保证每1美元的投资在两年后能赚得3美元。
对于计划A,可以按年制订投资规划,而对于计划B,只允许以两年为周期制订投资规划。
主管应如何投资100,000美元,使得在3年末的收入达到最大?
解:
考虑收益最大化,假设第一年将投资A、B两种计划:
设用XiA,XiB,i=1,2,3,表示第i年初给计划A,B,的投资金额,
第一年,若将本金全部抛出,有:
X1A+X1B=100000
第二年,因为投到B项目的钱为两年周期,所以第二年手头所拥有的钱为第一年投资到A的本金加利息:
X2A+X2B=1.7*X1A
对于第三年,则不应再投B项目,因为年末将无法收回本金和利息,因此,只能投资项目A,此时
X3A=1.7*X2A+4*X1B
第三年年末获得的本金加利息,即目标函数为:
1.7*X3A+4*X2B
X1A>=0;
X1B>=0;
X2A>=0;
X2B>=0;
X3A>=0;
编写Lingo程序:
model:
max=1.7*X3A+4*X2B;
X1A+X1B=100000;
X2A+X2B-1.7*X1A=0;
X3A-1.7*X2A-4*X1B=0;
X1A>=0;
X1B>=0;
X2A>=0;
X2B>=0;
X3A>=0;
End
得到结果
Globaloptimalsolutionfound.
Objectivevalue:
680000.0
Infeasibilities:
0.000000
Totalsolveriterations:
0
VariableValueReducedCost
X3A400000.00.000000
X2B0.0000000.000000
X1A0.0000000.000000
X1B100000.00.000000
X2A0.0000001.110000
RowSlackorSurplusDualPrice
1680000.01.000000
20.0000006.800000
30.0000004.000000
40.0000001.700000
50.0000000.000000
6100000.00.000000
70.0000000.000000
80.0000000.000000
9400000.00.000000
此时可以推出获得收益最大的方式为第一年将钱全部按B计划投入,第三年再将钱全部投入A计划。
第三年年末可以拿到最大收益680,000美元。
如果第一年全部投资A计划,B计划不投资的情况,则有:
X1A=100000,第一年年末赚到的钱为170000美元
第二年的投资计划为:
X2A+X2B=170000
第三年的投资计划为:
X3A=1.7*X2A
那么最后得到的钱为:
1.7*X3A+4*X2B
X1A>=0;
X2A>=0;
X2B>=0;
X3A>=0;
编写Lingo程序:
model:
max=1.7*X3A+4*X2B;
X2A+X2B=170000;
X3A-1.7*X2A=0;
X1A>=0;
X2A>=0;
X2B>=0;
X3A>=0;
End
得到结果:
Globaloptimalsolutionfound.
Objectivevalue:
680000.0
Infeasibilities:
0.000000
Totalsolveriterations:
0
VariableValueReducedCost
X3A0.0000000.000000
X2B170000.00.000000
X2A0.0000001.110000
X1A0.0000000.000000
RowSlackorSurplusDualPrice
1680000.01.000000
20.0000004.000000
30.0000001.700000
40.0000000.000000
50.0000000.000000
6170000.00.000000
70.0000000.000000
如第一年全投资A,第二年全投资B,也得到了680000美金,因此,总共有两种方式获得最大收益,即:
第一年将钱全部按B计划投入,第三年再将钱全部投入A计划,或者,第一年全投资A,第二年全投资B,都可得到最大钱数680000美金。
4.生产计划与库存问题
这里题目条件给错,自行改为500
某公司已签订了在未来的六、七、八月份生产A、B两种产品的合同。
总的生产能力(用小时表示)每月不同。
表3.3给出了本问题的基本数据。
对于产品A和B,每小时的单位生产率分别是1.25和1.所有的需求必须被满足。
然而,后面的月份的需求可以从前面的月份的生产来填补。
对于任何从本月转到下一个月的产品,每件产品A和产品B每月分别发生0.90美元和0.75美元的贮存成本。
A、B两种产品的单位成本分别是30美元和28美元,试着为两种产品确定最优的生产计划安排。
解:
根据题意,设六月生产A、B的时间为X1A、X1B
七月X2A、X2B,八月X3A、X3B,根据题意,列出所有目标方程和所有关系式:
生产成本为:
1.25*X1A*30+1*X1B*28+(1.25X1A-500)*0.90+(X1B-1000)*0.75+1.25*X2A*30+1*X2B*28+(1.25X2A-500)*0.90+(X2B-1200)*0.75+1.25*X3A*30+1*X3B*28
限制条件:
1.25*X1A+1.25*X2A+1.25*X3A=1750;
X1B+X2B+X3B=3400;
X1A+X1B-3500<=0;
X2A+X2B-3500<=0;
X3A+X3B-3000<=0;
X1A>=400;
1.25X1A-500+1.25*X2A>=500;
1.25X2A-500+1.25*X3A=750;
X1B>=1000;
X1B-1000+X2B>=1200;
X2B-1000+X3B=1200;
X1A>=0;
X2A>=0;
X3A>=0;
X1B>=0;
X2B>=0;
X3B>=0;
编写Lingo程序:
model:
min=37.5*X1A+28*X1B+0.9*(1.25*X1A-500)+0.75*(X1B-1000)+37.5*X2A+28*X2B+0.9*(1.25*X2A-500)+0.75*(X2B-1200)+37.5*X3A+28*X3B;
1.25*X1A+1.25*X2A+1.25*X3A=1750;
X1B+X2B+X3B=3400;
X1A+X1B-3500<=0;
X2A+X2B-3500<=0;
X3A+X3B-3000<=0;
X1A>=400;
1.25*X1A-500+1.25*X2A>=500;
1.25*X2A-500+1.25*X3A=750;
X1B>=1000;
X1B-1000+X2B>=1200;
X2B-1000+X3B=1200;
X1A>=0;
X2A>=0;
X3A>=0;
X1B>=0;
X2B>=0;
X3B>=0;
end
得到如下结果:
Globaloptimalsolutionfound.
Objectivevalue:
147700.0
Infeasibilities:
0.000000
Totalsolveriterations:
0
VariableValueReducedCost
X1A400.00000.000000
X1B1200.0000.000000
X2A400.00000.000000
X2B1000.0000.000000
X3A600.00000.000000
X3B1200.0000.000000
RowSlackorSurplusDualPrice
1147700.0-1.000000
20.000000-30.00000
30.000000-28.00000
41900.0000.000000
52100.0000.000000
61200.0000.000000
70.0000000.000000
80.000000-0.9000000
90.0000000.000000
10200.00000.000000
110.000000-0.7500000
120.0000000.000000
13400.00000.000000
14400.00000.000000
15600.00000.000000
161200.0000.000000
171000.0000.000000
181200.0000.000000
即最低的生产成本为147700美金:
生产计划如下
6月
7月
8月
生产A的时间(小时)
400
400
600
生产B的时间(小时)
1200
1000
1200
5、职员日程安排问题
(1)在一个星期中每天安排一定数量的职员,每天需要的职员数如表3.4所示,每个职员每周连续工作五天,休息两天.每天付给每个职员的工资是200元.公司将如何安排每天开始的工作人数,使得总费用最小.
(2)假设公司每天工作8小时,周一需要18名职员,共计144小时,以此类推.公司计划雇用全职人员和兼职人员完成公司的工作,其中全职人员每天工作8小时,兼职人员每天工作4小时,无论是全职人员还是兼职人员,均是每周连续工作5天,休息2天.全职人员每小时工资25元,兼职人员每小时工资15元,并且一周内兼职人员的总工作时间不能超过全体职员总工作时间的25%,试问该公司将如何安排职员的工作时间,使公司的总花费最小?
解:
(1)根据题意,设一周七天每天的工作人数为Xi,i=1,2,3,4,5,6,7
列出目标函数和限制条件:
公司的总花费为(X1+X4+X5+X6+X7)*200+(X1+X2+X5+X6+X7)*200+(X1+X2+X3+X6+X7)*200+(X1+X2+X3+X4+X7)*200+(X1+X2+X3+X4+X5)*200+(X2+X3+X4+X5+X6)*200+(X3+X4+X5+X6+X7)*200;
X1+X4+X5+X6+X7=18;
X1+X2+X5+X6+X7=15;
X1+X2+X3+X6+X7=12;
X1+X2+X3+X4+X7=16;
X1+X2+X3+X4+X5=19;
X2+X3+X4+X5+X6=14;
X3+X4+X5+X6+X7=12;
X1>=0;X2>=0;X3>=0;X4>=0;X5>=0;X6>=0;X7>=0;
列出Lingo程序:
model:
min=200*(x1+x4+x5+x6+x7)+200*(x1+x2+x5+x6+x7)+200*(x1+x2+x3+x6+x7)+(x1+x2+x3+x4+x7)*200+(x1+x2+x3+x4+x5)*200+(x2+x3+x4+x5+x6)*200+(x3+x4+x5+x6+x7)*200;
x1+x4+x5+x6+x7=18;
x1+x2+x5+x6+x7=15;
x1+x2+x3+x6+x7=12;
x1+x2+x3+x4+x7=16;
x1+x2+x3+x4+x5=19;
x2+x3+x4+x5+x6=14;
x3+x4+x5+x6+x7=12;
x1>=0;
x2>=0;
x3>=0;
x4>=0;
x5>=0;
x6>=0;
x7>=0;
end
分析结果:
Globaloptimalsolutionfound.
Objectivevalue:
21200.00
Infeasibilities:
0.000000
Totalsolveriterations:
7
VariableValueReducedCost
X16.6000000.000000
X45.6000000.000000
X53.6000000.000000
X61.6000000.000000
X70.60000000.000000
X22.6000000.000000
X30.60000000.000000
RowSlackorSurplusDualPrice
121200.00-1.000000
20.000000-200.0000
30.000000-200.0000
40.000000-200.0000
50.000000-200.0000
60.000000-200.0000
70.000000-200.0000
80.000000-200.0000
96.6000000.000000
102.6000000.000000
110.60000000.000000
125.6000000.000000
133.6000000.000000
141.6000000.0000