数学建模论文
题 目 生活中的数学建模问题
学 院
专业班级
学生姓名
成 绩
年 月 日
摘要 钢铁、煤炭、水电等生活物资从若干供应点运送到一些需求点,怎样安排输送
方案使利润最大?各种类型的货物装箱,由于受体积、重量等的限制,如何相互搭配装载,使获利最高?若干项任务分给一些候选人来完成,因为每个人的专长不同,他们完成任务的效益就不一样,如何分派使获得的总效益最大?本文将通过以下的例子讨论用数学建模解决这些问题的方法。
关键词:获利最多,0-1变量
一. 自来水输送问题
问题 某市有甲、乙、丙、丁四个居民区,自来水由A,B,C三个水库供应。四个区每天必须得到保证的基本生活用水量分别为80,50,10,20千吨,但由于水源紧张,三个水库每天 只能分别供应60,70,40千吨自来水。由于地理位置的差别,自来水公司从各水库向各区送水所需付出的引水管理费用不同(见下表),其他管理费用都是400元每千吨。根据公司规定,各区用户按照统一标准950元每千吨收费。此外,四个区都向公司申请了额外用水量,分别为10,20,30,50千吨。该公司应如何分配供水量,才能获利更多?
引水管理费(元每千吨) 甲 乙 丙 丁
A 160 130 220 170
B 140 130 190 150
C 190 200 230 ----
问题分析
分配供水两就是安排从三个水库向四个区供水的方案,目标是获利最多,而从题目给出的数据看,A,B,C三个水可的供水量170千吨,不够四个区的基本生活用水量与额外用水量之和270千吨,因而总能全部卖出并获利,于是自来水公司每天的总收入是950*(60+70+40)=161500元,与送水方案无关。同样,公司每天的其他管理费为400*(60+70+40)=68000元也与送水方案无关。所以要是利润最大,只须是引水管理费最小即可。另外,送水方案自然要受三个水可的供水量和四个取得需求量的限制。
模型建立
决策变量为A、B、C、三个水库(i=1,2,3)分别向甲、乙、丙、丁四个小区(j=1,2,3,4)的供水量。设水库i向j的日供水量为xij。由于C水库鱼定去之间没有输水管道,即X34=0,因此只有11个决策变量。
由上分析,问题的目标可以从获利最多转化为引水管理费最少,于是有
min=160*x11+130*x12+220*x13+170*x14+140*x21+130*x22+190*x23+150*x24+190*x31+200*x32+230*x33;
约束条件有两类:一类是水库的供应量限制,另一类是各区的需求量限制。由于供水量总能卖出并获利,水库的供应量限制可以表示为
x11+x12+x13+x14=60;
x21+x22+x23+x24=70;
x31+x32+x33=40;
考虑到歌曲的基本用水量月外用水量,需求量限制可以表示为
80<=x21+x11+x31;
50<=x12+x22+x32;
10<=x13+x23+x33;
20<=x14+x24;
x21+x11+x31<=90;
x12+x22+x32<=70;
x13+x23+x33<=40;
x14+x24<=70;
模型求解
将以上式子,输入LINGO求解,得到如下输出:
Optimal solution found at step: 10
Objective value: 25800.00
Variable Value Reduced Cost
X11 0.0000000 20.00000
X12 60.00000 0.0000000
X13 0.0000000 40.00000
X14 0.0000000 20.00000
X21 50.00000 0.0000000
X22 0.0000000 0.0000000
X23 0.0000000 10.00000
X24 20.00000 0.0000000
X31 30.00000 0.0000000
X32 0.0000000 20.00000
X33 10.00000 0.0000000
送水方案为:A水库向乙区供水60千吨,B水库甲区、丁区分别供水50,20千吨,C水库向甲、丙分别供水30,10千吨。引水管理费为25800元,利润为161500-68000-25800=67700元。
二. 货机装运
问题 某架火机油三个货舱:前舱、中舱、后舱。三个货舱所能装载的货物最大量的体积都有限,如下表所示,并且,为了保持飞机的平衡,三个货舱中世纪装在货物的重量必须与其最大容许重量成比例。
前舱 中舱 后舱
重量限制(吨) 15 26 12
体积限制(立方米) 8000 9000 6000
现有四类货物供该伙计本次飞行装运,其有关信息如下表所示,最后一列之装运后所获得的利润。应如何安排装运,使货机本次飞行获利最大?
重量(吨) 空间 利润(元每千吨)
货物1 20 480 3500
货物2 18 650 4000
货物3 35 600 3500
货物4 15 390 3000
模型假设 问题中没有对货物装运提出其他要求,我们可以作如下假设:
(1) 每种货物可以分割到任意小;
(2) 每种货物可以在一个或多个货舱中任意分布;
(3) 多种货物可以混装,并保证不留空隙。
模型建立
决策变量:用Xij表示第i种货物装入第j个货舱的重量(吨),货舱j=1,2,3分别表示前舱、中舱、后舱。
决策目标是最大化利润,即
max=3500*(x11+x12+x13)+4000*(x21+x22+x23)+3500*(x31+x32+x33)+3000*(x41+x42+x43);
约束条件包括以下4个方面:
(1)供装载的四种货物的总重量约束,即
x11+x12+x13<=20;
x21+x22+x23<=18;
x31+x32+x33<=35;
x41+x42+x43<=15;
(2)三个货舱的重量限制,即
x11+x21+x31+x41<=15;
x12+x22+x32+x42<=26;
x13+x23+x33+x43<=12;
(3)三个货舱的空间限制,即
480*x11+650*x21+600*x31+390*x41<=8000;
480*x12+650*x22+600*x32+390*x42<=9000;
480*x13+650*x23+600*x33+390*x43<=6000;
(4)三个货舱装入重量的平衡约束,即
(x11+x21+x31+x41)/15=(x12+x22+x32+x42)/26;
(x12+x22+x32+x42)/26=(x13+x23+x33+x43)/12;
模型求解
将以上模型输入LINGO求解,可以得到:
Optimal solution found at step: 10
Objective value: 155340.1
Variable Value Reduced Cost
X11 0.5055147 0.0000000
X12 6.562500 0.0000000
X13 2.286953 0.0000000
X21 11.93439 0.0000000
X22 0.0000000 2526.843
X23 6.065611 0.0000000
X31 0.0000000 0.4547474E-12
X32 0.0000000 1783.654
X33 1.599359 0.0000000
X41 0.0000000 1337.740
X42 15.00000 0.0000000
X43 0.0000000 1337.740
实际上,不妨将所得最优解四舍五入,结果为货物1装入前舱1吨、装入中舱7吨、装入后舱2吨;货物2装入前舱12吨、后舱6吨;货物3装入后舱2吨;货物4装入中舱15吨。最大利润为155340元。
三. 混合泳接力队的选拔
问题 某班准备从5名游泳队员中选择4人组成接力队,参加学校的4*100m混合泳接力比赛。5名队员4中用字的百米平均成绩如下表所示,问应如何让选拔队员组成接力队?
甲 乙 丙 丁 戊
蝶泳 1`06 57``2 1`18 1`10 1`07
仰泳 1`15 1`06 1`07 1`14 1`11
蛙泳 1`27 1`06 1`24 1`09 1`23
自由泳 58``6 53`` 59``4 57``2 1`02
问题分析 从5名队员中选出4人组成接力队,没人一种泳姿,且4人的用字各不相同,是接力队的成绩最好。容易想到的一个办法是穷举法,组成接力对的方案共有5!=120中,一一计算并作比较,即可找出最优方案。显然这不是解决这类问题的好办法,随着问题规模的变大,穷举法的计算量将是无法接受的。
可以用0-1变量表示以讴歌队员是非入选接力队,从而建立这个问题的0-1规划模型,借助县城的数学软件求解。
模型的建立与求解
设甲乙丙丁戊分别为队员i=1,2,3,4,5;即蝶泳、仰泳、蛙泳、自由泳分别为泳姿j=1,2,3,4.记队员i的第j中用字的百米最好成绩为Cij(s),既有
Cij I=1 I=2 I=3 I=4 I=5
J=1 66 57.2 78 70 67
J=2 75 66 67 74 71
J=3 87 66 84 69 83
J=4 58 53 59 57.2 62
引入0-1变量Xij,若选择队员i参加泳姿j的比赛,记Xij-=1,否则记Xij=0.根据组成接力队的要求,Xij应该满足两个约束条件:
第一, 没人最多只能入选4中用字之一,记对于i=1,2,3,4,5,应有∑Xij《=1;
第二, 每种泳姿必须有一人而且只能有1人入选,记对于甲,2,3,4,应有∑Xij=1;
当队员i入选泳姿j是,CijXij表示他的成绩,否则CijXij=0。于是接力队的成绩可表示为∑∑CijXij,这就是该题的目标函数。
将题目所给的数据带入这一模型,并输入LINGO:
min=66*x11+75*x12+87*x13+58.6*x14+57.2*x21+66*x22+66*x23+53*x24+78*x31+67*x32+84*x33+59.4*x34+70*x41+74*x42+69*x43+57.2*x44+67*x51+71*x52+83*x53+62*x54;
SUBJECT TO
x11+x12+x13+x14<=1;
x21+x22+x23+x24<=1;
x31+x32+x33+x34<=1;
x41+x42+x43+x44<=1;
x11+x21+x31+x41+x51=1;
x12+x22+x32+x42+x52=1;
x13+x23+x33+x43+X53=1;
x14+x24+x34+x44+X54=1;
@bin(X11);@bin(X12);@bin(X13);@bin(X14);@bin(X21);@bin(X22);@bin(X23);@bin(X24);@bin(X31);@bin(X32);@bin(X33);@bin(X34);@bin(X41);@bin(X42);@bin(X43);@bin(X44);@bin(X51);@bin(X52);@bin(X53);@bin(X54);
得到如下结果
Optimal solution found at step: 12
Objective value: 251.8000
Branch count: 0
Variable Value Reduced Cost
X11 0.0000000 66.00000
X12 0.0000000 75.00000
X13 0.0000000 87.00000
X14 1.000000 58.60000
X21 1.000000 57.20000
X22 0.0000000 66.00000
X23 0.0000000 66.00000
X24 0.0000000 53.00000
X31 0.0000000 78.00000
X32 1.000000 67.00000
X33 0.0000000 84.00000
X34 0.0000000 59.40000
X41 0.0000000 70.00000
X42 0.0000000 74.00000
X43 1.000000 69.00000
X44 0.0000000 57.20000
X51 0.0000000 67.00000
X52 0.0000000 71.00000
X53 0.0000000 83.00000
X54 0.0000000 62.00000
即当派选甲乙丙丁4人组陈和积累对,分别参加自由泳、蝶泳、仰泳、蛙泳的比赛。
参考文献
数学模型(第三版) 姜启源著 高等教育出版社