关于垃圾运输问题的解决

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

垃圾运输问题的解决

校内数学建模竞赛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)

不妨设x1>x2, y1>y2,不难看出A在B的后方,即A比B远。对于前方参考点O,要将A,B对应垃圾点的垃圾全部取回再返回O,一共有三种方式:

1.O→A→O, O→B→O

单独运输。这种情况下,总的路程消费等于空载运行费用(0.4元/公里)与装载时运行费用(1.8元/公里吨)的总和。所需的总时间等于车辆所走过的总路程与速度(40公里/小时)的比值再加上在A,B两点停留的时间(每个垃圾点上停留了10分钟,1/6小时),于是有:

Spend = 0.4*|A| + 1.8*|A|*Ta + 0.4*|B| + 1.8*|B|*Tb

Time = (2*|A| + 2*|B|)/40 + 1/6*2

2. O→A→B→O

先远点再近点,即先空载至最远处,装完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*2

3. O→B→A→O

先近点在远点,即先装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.O→A→O, O→B→O

单独运输。这种情况下,跟A,B两点有先后顺序中的情况完全相同,即有:

spend = 0.4*|A| + 1.8*|A|*Ta + 0.4*|B| + 1.8*|B|*Tb

time = (2*|A| + 2*|B|)/40 + 1/6*2

2.O→A→B→O

Spend = 0.4*|A| + 1.8*|A-B|*Ta + 1.8*|B|*(Ta+Tb) ----〈1〉

Time = (|A| + |A-B| + |B|)/40 + 1/6*2

3.O→B→A→O

Spend = 0.4*|B| + 1.8*|A-B|*Tb + 1.8*|A|*(Ta+Tb) ----〈2〉

Time = (|A| + |A-B| + |B|)/40 +1/6*2

相比之下,清晰可见并邻状态下的单独运输所花的费用最少,所以在不要求时间的情况下对于并邻两点,采用单独运输的方式最节约钱。用<1>式与<2>式相减除以1.8,得到如下判断式:

|A-B|*(Ta-Tb) + (Ta+Tb)*(|B|-|A|) ----<3>

上式 < 0时,选0→A→B→O;

上式 > 0时,选 O→B→A→O;

上式 = 0时,任意选上述两路线。

相关文档
最新文档