垃圾运输问题中车辆调度优化模型.doc_第1页
垃圾运输问题中车辆调度优化模型.doc_第2页
垃圾运输问题中车辆调度优化模型.doc_第3页
垃圾运输问题中车辆调度优化模型.doc_第4页
垃圾运输问题中车辆调度优化模型.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学建模竞赛C题垃圾运输问题中车辆调度优化模型摘要费用,若要把所有的垃圾运回垃圾处理站,这部分有效工的费用为1.8|Xi|Yi(|Xi|为垃圾点Xi到原点的距离,Yi为垃圾点的垃圾量),是恒定不变的。只要我们能保证空载路线最小,则所花的时间和费用都最小。因此解题的关键在于找出一个调度方案,使空载行驶的线路最小。第三阶段则是编制程序阶段,我们结合下山法逐点搜索,并引入随机生成器。在出现后继点权值相等难以判断以哪点继续搜索时,由随机生成器确定。为了让算法更接近人的思维,我们让更靠近父点的子点有更高的几率被作为下一个将去的垃圾点,这也与我们的算法原则对应。问题的解答如下:第一问,求得所需总费用为2338元,所需总时间为21。6小时,路线分配图见正文;第二问,求得需3辆铲车,铲车费用为81。6元,分配图及运输车调度表见正文;第三问,8吨,4吨运输车个需一辆。解决方案(一) 问题重述某城区有36个垃圾集中点,每天都要从垃圾处理厂(第37号节点)出发将垃圾运回。现有一种载重6吨的运输车。每个垃圾点需要用10分钟的时间装车,运输车平均速度为40km/h(夜里运输,不考虑塞车现象);每台车每日平均工作4小时。运输车重载运费1.8元/吨公里;运输车和装垃圾用的铲车空载费用0.4元/公里1 要投入多少辆运输车,每台车的行走路线,方案的运营总费用2 要投入多少辆铲车,每台铲车的行走路线,铲车的运营费用3 如果有载重量为4吨,6吨,8吨三种运输车,应该怎样调度(二) 基本假设1 运输车行走拐弯的时间,路上的意外事故的耽搁时间忽略。2 各垃圾点的垃圾必须当天及时清除完,不允许滞留3 晚上9:00后不堵车4 每天各垃圾点的垃圾量基本相同5 每个垃圾点无论其中垃圾是否清理完全都需要10分钟装车时间6 每个垃圾点都在路口,便于垃圾的集中、运输7 垃圾只在晚上运输,基本保证运完后,当天不会再有新的垃圾产生(三) 基本变量,符号和用语|A| 表示A点到原点的距离,恒正|B| 表示B点到原点的距离,恒正|A-B| 表示A,B两点之间的距离,恒正Ta 表示A点所在地的垃圾量Spend 花费钱的数量Time 花费的时间装的足够多 运输车当前的载重离限载不大于0.55吨(垃圾点的最小垃圾量)序数号 所在点的编号父点 本点的上一点子点 本点的下一点(四) 问题分析和数学模型的建立垃圾运输问题最终可以归结为最优路径搜索问题,但注意到此图为森林而不是树,不能直接套用Krusal,Prim等现成算法,于是根据具体问题设计出随机下山法,用计算模拟搜索,可以搜寻到令人满意的可行解。先注意到两点的情况,设两点分别为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元/公里吨)的总和。所需的总时间等于车辆所走过的总路程与速度(40公里/小时)的比值再加上在A,B两点停留的时间(每个垃圾点上停留了10分钟,1/6小时),于是有:Spend = 0.4*|A| + 1.8*|A|*Ta + 0.4*|B| + 1.8*|B|*TbTime = (2*|A| + 2*|B|)/40 + 1/6*22. OABO 先远点再近点,即先空载至最远处,装完A点垃圾后再返回至B,再回O点,有: Spend = 0.4*|A| + 1.8*|A-B|*Ta +1.8*|B|*(Ta+Tb) = 0.4*|A| + 1.8*|A|*Ta + 1.8*|B|*Tb Time = 2*|A|/40 + 1/6*23. OBAO 先近点在远点,即先装B点垃圾,然后载着B点的垃圾奔至A点,再回O点,有: Spend = 0.4*|B| + 1.8*|A-B|*Tb + 1.8*|A|*(Ta+Tb) = 0.4*|B| + 1.8*|A|*Ta + 1.8*|B|*Tb + 1.8*|A-B|*2*Tb Time = 2*|A|/40 + 1/6*2比较以上三种情况,远近点的遍历顺序,可以看出,“先远后近”绝对比“先近后远”在花费钱的数量上要少的多,省出1.8*|A-B|*2*Tb这部分的钱主要是车载着B点的垃圾奔到A点再返回B点。而又注意到两者的时间花费是相等的。所以在其余同等的情况下选择“先远后近”。考虑到时间上单独运输比其余的两种运输要大的多,多一一倍,而且花费的钱仍不比“先远后近”省,还多了0.4*|B|,所以一般情况下,不采用单独运输。二A,B两点没有明显先后顺序。 -并邻状态(如图2)还是一共有三种情况: 1 OAO, OBO单独运输。这种情况下,跟A,B两点有先后顺序中的情况完全相同,即有:spend = 0.4*|A| + 1.8*|A|*Ta + 0.4*|B| + 1.8*|B|*Tbtime = (2*|A| + 2*|B|)/40 + 1/6*22 OABOSpend = 0.4*|A| + 1.8*|A-B|*Ta + 1.8*|B|*(Ta+Tb) -1Time = (|A| + |A-B| + |B|)/40 + 1/6*23.OBAOSpend = 0.4*|B| + 1.8*|A-B|*Tb + 1.8*|A|*(Ta+Tb) -2Time = (|A| + |A-B| + |B|)/40 +1/6*2相比之下,清晰可见并邻状态下的单独运输所花的费用最少,所以在不要求时间的情况下对于并邻两点,采用单独运输的方式最节约钱。用式与式相减除以1.8, 得到如下判断式:|A-B|*(Ta-Tb) + (Ta+Tb)*(|B|-|A|) -上式 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后,下次运输车运C点垃圾时就无需跑的更远。四 关于垃圾点的垃圾是否一次清除的讨论(以6吨车例)由假设2知,每天的垃圾必须清除完毕,全部运往37点。这里说的一次清除问题不是指一天,而是指当一辆运输车已经装载了足够多的垃圾,不能完全清理下一个垃圾点的时候,车在下一个站点“停还是不停”的问题。例如,一辆运输车选择了3026183520的路线(即先将空车开往30,清理装载30点的垃圾,然后依次到26,18,35,20),它从20返回时车已经装载了5.8吨垃圾,仍可以装0.2吨(小于垃圾点垃圾量的最小值0.5,称这种情况为“装的足够多”)。在20点下方仍有不少的点,但肯定不能将下面的任意点的垃圾装完,那么此车是直接返回37点呢,还是继续装直至车装满为止呢?我们判断前者更好,就是车在装的足够多的情况下应该直接返回原点(37点)。这是因为对于下一垃圾点(假设为A点)内的垃圾而言,无论是一次装完还是分两次装完,将它们运回所花费用是恒定的,等于1.8*Ta*|A|。整体而言,两者花费的钱是相等的,但分两次装要多花10分钟的装车时间,所以选择前者。综上所述,得出搜索的基本原则:1 在两点递减的情况下,不采用单独运输;2 在其余同等的情况下选择“先远后近”;3 不要求时间的情况下对于并邻两点,采用单独运输的方式最节约钱;一般情况下用式x,Yhy)&min(Xh-x+Yh-y),子点即当前环中当前点的下一点(Xn,Yn)要求:(Xhx,Yh给定集合P-P是否为空如下结束重新开始,如不是,M=MAX(|L|),M为P中离原点最远的点。L=M. 。给定P集 求P集中的MAX点以L为中心搜索New_point找到New_pointWeight合适yes随机发生器父不是L父为L直接连接父不是L父为L父非0子非0父非0子为-1父为0子为-1父为0子非0父为0子为0以下根据父点与子点情况进行分类yes变权值通过后,则有将此点独立,将new_point父点设为L;将new_point子点设为 0随机发生器随机发生器L无子点,直接连接;L有子点,将子点独立;随机发生器随机发生器别的环中点。若变,则连接;不变则保持。自己环中点,保持。即,new_point=L;next new_point别的环中末点。若变,则将此点连接;不变,则寻找next_loop环中末点若变则将此点独立;若不变,则继续找对L赋值为下次循环做准备循环继续(六) 问题的搜索结果 1在不考虑铲车的情况下 ,问题1的解答。运输车的最优路线如下:(见图5,图6)工人工资,运输车的购买费用不记。 (2点单独算)总费用为2338.2元,总时间为21.6小时2.铲车加入后的讨论 ,问题2的解答当加入铲车后,我们应该让铲车将就运输车,因为铲车的空载费用为0.4元/小时. 运输车加入垃圾后为1.8元/公里小时.若改变一条线,则会造成几公里的误差,甚至十几公里的误差,这一项的数目就很大.若是铲车将就运输车,则即使路线误差大一点,但所需费用也不会变得很大.故我们以第一个方案的路线为准.这时我们只要保证前一条线路的末节点,与后一条线路的首节点的路程差分别相加之和最小即可.根据这一思路.我们设一个结构数组变量,他有11个元素(代表11条元素).其中每个元素里面有两个结构成员,这样一个元素就代表一条线路.对这11个元素进行排列,这样每一个排列就是一个线路方案.这样便能通过排列,遍历每种方案.就求出最优解.再考虑了最短路径的情况下,由于要考虑和各车在时间地衔接,以及尽量要在规定的时间内作完,我们进行相应的调整。这部分由于考虑到计算复杂性,我们用手工调整,由于前面有最短路径的保证,我们调整的结果接近最优解。 其中三辆铲车的起始点分别为36 ,30 ,28; 车号趟数一号二号三号四号五号六号第一趟22:00至00:4622:00至01:2723:19至00:4922:00 至01:02 23:44 至01:48 22:41 至00:11第二趟00:50至02:1001:38至04:1001:48 至03:55 00:28至00:56第三趟00:56至02:32因为运输车时速为40km/h,则铲车速度无须大于40km/h(因为没有必要).若速度小于40km/h,则至少要多买一辆铲车,这样造成重复,故最好多花点钱买大功率的铲车.为了保证能在晚上干完,我们可以多条路同时干,但考虑到新加铲车费用,我们只让三辆铲车同时工作,就能在规定时间干完。总费用为81。6元。3 存在4吨,6吨,8吨三种运输车时的调度 ,问题3的解答若存在4吨,6吨,8吨三种,我们应把握的原则是:尽量让8吨的车,拉远处的垃圾,远处垃圾拉得越多,以后车的空载路程就越少,而不考虑空载费用,只把垃圾运回垃圾处理厂,它的这部分费用不变.同时,我们考虑到8吨,6吨,4吨的运输车费用问题,故8吨的车不宜太多.我们在分析过程中,发现主要是第15点比较难处理,因此8吨的车应将这一点在30那条线上一并处理.而象第2点,用6吨车单独拉一次太浪费,应用4吨车还有11,22这两条线也可改用4吨车.(七) 模型的优缺点该模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论