1、数学模型课程设计课程设计(论文)任务书学 院理 学 院专 业信息与计算科学学生姓名 班级学号 课程名称数学模型课程设计课 程 设 计(论文)题目垃圾运输问题设计要求(技术参数):1. 建模:要求思路清晰、处理恰当、构思新颖。2. 分析:数学应用合理恰当,应用知识综合,内容丰富。3. 结论:要有一定的广度、深度、实用程度。4. 表达:文字通顺、语言流畅、论述简洁、推理严谨。设计任务:用所学过的数学建模知识,上网查阅相关资料,对现实生活中的某一个实际问题,建立数学模型,分析并解决提出的问题。(可结合自己解决的问题展开)并以MATLAB或者其他数学软件为工具,对所建模型进行求解,程序源码要在附录中给
2、出。论文篇幅要在15页以上。计划与进度安排:第一周:第一阶段:上网查阅相关资料第二阶段:建立模型第二周:第三阶段:模型求解及优化第四阶段:撰写论文指导教师(签字):年 月 日专业负责人(签字):年 月 日主管院长(签字) 年 月 日摘要该题我们的主要解题思路分三阶段:第一阶段,我们先根据题设条件和基本假设画出该题的图。第二阶段,我们根据图和点的位置关系结合题设,归纳出一些最基本的确定路线的原则:在仔细分析该题后,我们认为该题为一个单目标规划题。我们先抛开空载费用,若要把所有的垃圾运回垃圾处理站,这部分有效工的费用为1.8|Xi|Yi(|Xi|为垃圾点Xi到原点的距离,Yi为垃圾点的垃圾量),是
3、恒定不变的。只要我们能保证空载路线最小,则所花的时间和费用都最小。因此解题的关键在于找出一个调度方案,使空载行驶的线路最小。第三阶段则是编制程序阶段,采用计算机模拟搜索的计算方法,搜索出运输车投入辆数以及运输车最佳调配方案,使得在不考虑铲车的情况下运营费用最低。总运营费用为运输车空载费与实际运输费之和。问题的解答如下:第一问,求得所需总费用为2345.4元,所需总时间为22.5小时,路线分配图见正文;第二问,求得需3辆铲车,铲车费用为81.6元,分配图及运输车调度表见正文;第三问,运营总费用为:2325.8,其中8吨、6吨、4吨载重量的运输车各需5、2、3辆,路线分配图见正文。关键词 单目标优
4、化 计算机搜索目录一、问题重述1二、问题分析1三、名词解释2四、模型建立与求解341、模型假设342、参数说明343、模型的建立444、模型的求解5五、模型评价与推广2051、模型评价2052、模型推广20六、参考文献20七、附件2122一、问题重述某城区有 36 个垃圾集中点,每天都要从垃圾处理厂(第 37 号节点)出发将垃圾运回。现有一种载重 6 吨的运输车。每个垃圾点需要用 10 分钟的时间装车,运输车平均速度为 40 公里小时(夜里运输,不考虑塞车现象);每台车每日平均工作 4 小时。运输车重载运费 1.8 元 / 吨公里;运输车和装垃圾用的铲车空载费用 0.4 元 / 公里;并且假定
5、街道方向均平行于坐标轴。请你给出满意的运输调度方案以及计算程序。问题:1. 运输车应如何调度(需要投入多少台运输车,每台车的调度方案,运营费用)2. 铲车应如何调度(需要多少台铲车,每台铲车的行走路线,运营费用)3. 如果有载重量为 4 吨、 6 吨、 8 吨三种运输车,又如何调度? (垃圾点地理坐标数据表见附录一)二、问题分析 垃圾运输问题最终可以归结为最优路径搜索问题,但注意到此图为森林而不是树,不能直接套用Krusal,Prim等现成算法,于是根据具体问题设计出随机下山法,用计算模拟搜索,可以搜寻到令人满意的可行解。先注意到两点的情况,设两点分别为A(x1,y1),B(x2,y2)。主要
6、有以下两种情况:一 A,B明显有先后次序。-递减状态(如图1)不妨设x1x2, y1y2,不难看出A在B的后方,即A比B远。对于前方参考点O,要将A,B对应垃圾点的垃圾全部取回再返回O,一共有三种方式:1 OAO, OBO单独运输。这种情况下,总的路程消费等于空载运行费用(0.4元/公里)与装载时运行费用(1.8元/公里吨)的总和。所需的总时间等于车辆所走过的总路程与速度(40公里/小时)的比值再加上在A,B两点停留的时间(每个垃圾点上停留了10分钟,1/6小时),于是有:2. OABO 先远点再近点,即先空载至最远处,装完A点垃圾后再返回至B,再回O点,有:3. OBAO 先近点在远点,即先
7、装B点垃圾,然后载着B点的垃圾奔至A点,再回O点,有:比较以上三种情况,远近点的遍历顺序,可以看出,“先远后近”绝对比“先近后远”在花费钱的数量上要少的多,省出1.8*|A-B|*2*Tb这部分的钱主要是车载着B点的垃圾奔到A点再返回B点。而又注意到两者的时间花费是相等的。所以在其余同等的情况下选择“先远后近”。考虑到时间上单独运输比其余的两种运输要大的多,多一一倍,而且花费的钱仍不比“先远后近”省,还多了0.4*|B|,所以一般情况下,不采用单独运输。 三、名词解释|A| 表示A点到原点的距离,恒正|B| 表示B点到原点的距离,恒正|A-B| 表示A,B两点之间的距离,恒正Ta 表示A点所在
8、地的垃圾量cost:运费;time:时间消耗;装的足够多 运输车当前的载重离限载不大于0.55吨(垃圾点的最小垃圾量)序数号 所在点的编号四、模型建立与求解41、模型假设1车辆在拐弯时的时间损耗忽略。2车辆在任意两站点中途不停车,保持稳定的速率。3只要平行于坐标轴即有街道存在。4无论垃圾量多少,都能在十分钟内装上运输车。5 每个垃圾站点的垃圾只能由一辆运输车运载。6. 假设运输车、铲车从A垃圾站到B垃圾站总走最短路线。7. 任意两垃圾站间的最短路线为以两垃圾站连线为斜边的直角三角形的两直角边之和。8. 建设在运输垃圾过程中没有新垃圾入站。9. 假设铲车、运输车载工作途中不发生意外也不遇到意外;
9、10. 各垃圾站每天的垃圾量相对稳定。42、参数说明|A| 表示A点到原点的距离,恒正|B| 表示B点到原点的距离,恒正|A-B| 表示A,B两点之间的距离,恒正Ta 表示A点所在地的垃圾量43、模型的建立先注意到两点的情况,设两点分别为A(x1,y1),B(x2,y2)。主要有以下两种情况:二 A,B明显有先后次序。-递减状态(如图1)图 一不妨设x1x2, y1y2,不难看出A在B的后方,即A比B远。对于前方参考点O,要将A,B对应垃圾点的垃圾全部取回再返回O,一共有三种方式:1 OAO, OBO单独运输。这种情况下,总的路程消费等于空载运行费用(0.4元/公里)与装载时运行费用(1.8元
10、/公里吨)的总和。所需的总时间等于车辆所走过的总路程与速度(40公里/小时)的比值再加上在A,B两点停留的时间(每个垃圾点上停留了10分钟,1/6小时),于是有: (1) (2)2. OABO 先远点再近点,即先空载至最远处,装完A点垃圾后再返回至B,再回O点,有: (3) (4) 3. OBAO 先近点在远点,即先装B点垃圾,然后载着B点的垃圾奔至A点,再回O点,有: (5) (6)比较以上三种情况,远近点的遍历顺序,可以看出,“先远后近”绝对比“先近后远”在花费钱的数量上要少的多,省出1.8*|A-B|*2*Tb这部分的钱主要是车载着B点的垃圾奔到A点再返回B点。而又注意到两者的时间花费是
11、相等的。所以在其余同等的情况下选择“先远后近”。考虑到时间上单独运输比其余的两种运输要大的多,多一一倍,而且花费的钱仍不比“先远后近”省,还多了0.4*|B|,所以一般情况下,不采用单独运输。二A,B两点没有明显先后顺序。 -并邻状态(如图2)图 二还是一共有三种情况: 1 OAO, OBO单独运输。这种情况下,跟A,B两点有先后顺序中的情况完全相同,即有: (7) (8) 2 OABO (9) (10)3.OBAO (11) (12)相比之下,清晰可见并邻状态下的单独运输所花的费用最少,所以在不要求时间的情况下对于并邻两点,采用单独运输的方式最节约钱。用式与式相减除以1.8, 得到如下判断式
12、: 上式 0时, 选 OBAO;上式 = 0时, 任意选上述两路线。三 两点选择趋势的讨论。 (如图3)图 三由图中看到B,C两点没有明显的先后顺序,属于并邻点。因为当运输车载重行驶时费用会成倍的增长,比其空载时所花费用要大的多,所以排除ABC或ACB这样的一次经过3点的往返路线,仅选择B,C中的某一点与A完成此次运输,将另一点留到下次。那么A点选择B还是C呢?不妨假设|B|C|,即B点离原点的距离比C点的更远,因为A在B,C之后,所以也就是B点离A点更近。这样,此次的运输我们更趋向于选择AB,因为就这三点而论,A无论是选B还是C,三点的垃圾总要运完,所以花费的钱是一样的。但选择AB后,下次运
13、输车运C点垃圾时就无需跑的更远。四 关于垃圾点的垃圾是否一次清除的讨论(以6吨车例)由假设2知,每天的垃圾必须清除完毕,全部运往37点。这里说的一次清除问题不是指一天,而是指当一辆运输车已经装载了足够多的垃圾,不能完全清理下一个垃圾点的时候,车在下一个站点“停还是不停”的问题。例如,一辆运输车选择了3026183520的路线(即先将空车开往30,清理装载30点的垃圾,然后依次到26,18,35,20),它从20返回时车已经装载了5.8吨垃圾,仍可以装0.2吨(小于垃圾点垃圾量的最小值0.5,称这种情况为“装的足够多”)。在20点下方仍有不少的点,但肯定不能将下面的任意点的垃圾装完,那么此车是直
14、接返回37点呢,还是继续装直至车装满为止呢?我们判断前者更好,就是车在装的足够多的情况下应该直接返回原点(37点)。这是因为对于下一垃圾点(假设为A点)内的垃圾而言,无论是一次装完还是分两次装完,将它们运回所花费用是恒定的,等于1.8*Ta*|A|。整体而言,两者花费的钱是相等的,但分两次装要多花10分钟的装车时间,所以选择前者。综上所述,得出搜索的基本原则:1 在两点递减的情况下,不采用单独运输;2 在其余同等的情况下选择“先远后近”;3 不要求时间的情况下对于并邻两点,采用单独运输的方式最节约钱;一般情况下用式s&w(5,j)=0) s=w(2,j)+w(3,j); jg(i,j1)=w(
15、1,j); sum=w(4,j); m=j; else continue; end end w(5,m)=1; j1=j1+1; while 1 js=0; q=40; for k=1:36 if(qw(2,m)-w(2,k)+w(3,m)-w(3,k)&w(2,m)w(2,k)&w(3,m)w(3,k)&(6-sum)w(4,k)&w(5,k)=0 q=w(2,m)+w(3,m)-w(2,k)-w(3,k); js=1; jg(i,j1)=w(1,k); i3=k; else continue; end end w(5,i3)=1; sum=sum+w(4,i3); j1=j1+1; m=i
16、3; if(w(2,i3)=0&w(3,i3)=0|js=0) break end endendkcost=0;zcost=0;allcost=0;n=0;for u1=1:11 for u2=1:11 if jg(u1,u2)=0 n=jg(u1,u2); else continue end zcost=zcost+w(4,n)*1.8*(w(2,n)+w(3,n); end n=jg(u1,1); kcost=kcost+0.4*(w(2,n)+w(3,n);endallcost=zcost+kcostzcostkcosti=1:11;time=i;time(1,:)=0;n1=0;n2=
17、0;n3=0;for u4=1:11 for u5=1:11 if jg(u4,u5)=0 n1=jg(u4,u5); n2=n2+1; else continue end end n3=jg(u4,1); time(1,u4)=(w(2,n3)+w(3,n3)*2)/40;endn2 time 附录三源码clearx=3 1 5 4 0 3 7 9 10 14 17 14 12 10 7 2 6 11 15 19 22 21 27 15 15 20 21 24 25 28 5 17 25 9 9 30 0;y=2 5 4 7 8 11 9 6 2 0 3 6 9 12 14 16 18 17
18、 12 9 5 0 9 19 14 17 13 20 16 18 12 16 7 20 15 12 0;t=1.50 1.50 0.55 1.20 0.85 1.30 1.20 2.30 1.40 1.50 1.10 2.70 1.80 1.80 0.60 1.50 0.80 1.50 0.80 1.40 1.20 1.80 1.40 1.60 1.60 1.00 2.00 1.00 2.10 1.20 1.90 1.30 1.60 1.20 1.50 1.30 0.00;r=1:37;%plot(x,y,*r);%for ii=1:37 % k=int2str(ii); % k=strcat
19、(P,k); % text(x(ii),y(ii),k);%endw=r;x;y;t;a=1:11;point=30 28 36 24 34 20 19 14 22 11 31; 3 5 21 15 2 9 8 1 22 10 6;a;point(3,:)=0;s=80;p=80;k=2;j1=0;j2=0;m=1;b=1:11;pai=b;pai(1,:)=0; for j=1:11 if s=w(2,point(1,j)+w(3,point(1,j)&point(3,j)=0 s=w(2,point(1,j)+w(3,point(1,j); else continue end end j1
20、=j; point(3,j1)=1; pai(1)=point(1,j1); while m=w(2,point(1,i)+w(3,point(1,i)-w(2,point(2,j1)-w(3,point(2,j1)&point(3,i)=0 p=w(2,point(1,i)+w(3,point(1,i)-w(2,point(2,j1)-w(3,point(2,j1); else continue end j2=i; point(3,j2)=1; pai(k)=point(1,j2); k=k+1; end j1=j2; m=m+1; end pai 附录三结果pai = 31 30 28 3
21、6 24 34 20 19 14 22 11 附录四:clearx=3 1 5 4 0 3 7 9 10 14 17 14 12 10 7 2 6 11 15 19 22 21 27 15 15 20 21 24 25 28 5 17 25 9 9 30 0;y=2 5 4 7 8 11 9 6 2 0 3 6 9 12 14 16 18 17 12 9 5 0 9 19 14 17 13 20 16 18 12 16 7 20 15 12 0;t=1.50 1.50 0.55 1.20 0.85 1.30 1.20 2.30 1.40 1.50 1.10 2.70 1.80 1.80 0.6
22、0 1.50 0.80 1.50 0.80 1.40 1.20 1.80 1.40 1.60 1.60 1.00 2.00 1.00 2.10 1.20 1.90 1.30 1.60 1.20 1.50 1.30 0.00;i=1:37;a=1:37;plot(x,y,*r)for ii=1:37 k=int2str(ii); k=strcat(P,k); text(x(ii),y(ii),k);endw=i;x;y;t;a;w(5,:)=0;jg=zeros(10,10);%11for i=1:20 sum=0; j1=1; s=0; m=37; i3=37; for j=1:36 if(w
23、(2,j)+w(3,j)=s&w(5,j)=0) s=w(2,j)+w(3,j); jg(i,j1)=w(1,j); sum=w(4,j); m=j; else continue; end end w(5,m)=1; j1=j1+1; while 1 js=0; q=40; for k=1:36 if(q=w(2,m)-w(2,k)+w(3,m)-w(3,k)&w(2,m)w(2,k)&w(3,m)w(3,k)&(8-sum)=w(4,k)&w(5,k)=0 q=w(2,m)+w(3,m)-w(2,k)-w(3,k); js=1; jg(i,j1)=w(1,k); i3=k; else con
24、tinue; end end w(5,i3)=1; sum=sum+w(4,i3); j1=j1+1; m=i3; if(w(2,i3)=0&w(3,i3)=0|js=0) break end endendkcost=0;zcost=0;allcost=0;n=1;for u1=1:10 for u2=1:10 if jg(u1,u2)=0 n=jg(u1,u2); else continue end zcost=zcost+w(4,n)*1.8*(w(2,n)+w(3,n); end n=jg(u1,1); kcost=kcost+0.4*(w(2,n)+w(3,n);endallcost=zcost+kcostzcostkcosti=1:10;time=i;time(1,:)=0;n1=0;n2=0;n3=0;for u4=1:10 for u5=1:10 if jg(u4,u5)=0 n1=jg(u4,u5); n2=n2+1; else continue end end n3=jg(u4,1); time(1,u4)=(w(2,n3)+w(3,n3)*2)/40;endn2 time jg
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100