
送货员最短路径模型优化.doc
19页西安邮电学院第五届大学生数学建模竞赛参赛作品 参赛队编号: 52 赛题类型代码: B 送货路线设计模型摘要:为了解决最佳送货路线一系列问题,本文建立了求最短Hamilton圈问题利用Floyd算法【2】求出顶点间最短路,构造连接各顶点的一个无向赋权完备图(矩阵)使用启发式算法(Heuristic Algorithm)【2】寻找该完备图最短的Hamilton圈借助Matlab等数学工具,使用模拟退火算法(SA)求出最优解(问题一)问题二中加入了时间限制,我们根据需求到达时间的不同,对整个路线图进行了片区的划分,然后对于不同的片区便转化为一个新的求最短Hamilton圈问题问题三没有时间限制,但是基于重量和体积的要求,我们比照第二问中所用方法对总路线按照体积与重量的限制进行了划分片区,仍然按照最短Hamilton圈问题进行求解得到了令人较为满意的近似解由于我们考虑到各分段距离最短并不代表总和最短,所以我们对最短Hamilton圈问题进行了优化,最终整理为本文中的辅助途中的最短Hamilton圈问题利用辅助途中的最短Hamilton圈问题的求解方法,我们得到了最佳解。
总的来说,本模型不仅成功的解决了本次建模的最佳送货路线模型问题,而且可以成为类似于本最佳送货路线问题类似问题的一个有效而且具有较强实用性的方法关键字:Hamilton圈 Floyd算法 启发式算法(Heuristic Algorithm) 模拟退火算法(SA) 划分片区 送货路线设计模型 一、 问题重述现今社会网络越来越普及,网购已成为一种常见的消费方式,随之物流行业也渐渐兴盛,每个送货员往往一人送多个地方,他们怎么样才能以最快的速度及时将货物送达是个十分重要的问题,本文将就送货路线设计问题展开分析和讨论现有一快递公司,库房在图1(图略)中的O点,一送货员需将货物送至城市内多处,需要设计适当的送货方案,使所用时间最少该地形图的示意图见图1(图略),各点连通信息见表3(表略),送货员只能沿这些连通线路行走,而不能走其它任何路线各件货物的相关信息见表1(表略),50个位置点的坐标见表2(表略) 假定送货员最大载重50公斤,所带货物最大体积1立方米送货员的平均速度为24公里/小时假定每件货物交接花费3分钟,为简化起见,同一地点有多件货物也简单按照每件3分钟交接计算。
现在送货员要将100件货物送到50个地点问题1:若将1~30号货物送到指定地点并返回设计最快完成路线与方式给出结果要求标出送货线路问题2:假定该送货员从早上8点上班开始送货,要将1~30号货物的送达时间不能超过指定时间,请设计最快完成路线与方式要求标出送货线路问题3: 若不需要考虑所有货物送达时间限制(包括前30件货物),现在要将100件货物全部送到指定地点并返回设计最快完成路线与方式要求标出送货线路,给出送完所有快件的时间由于受重量和体积限制,送货员可中途返回取货可不考虑中午休息时间二、 模型假设和符号说明2.1 模型假设 1.假设送货员的行进速度与所送货物的重量无关,速度均为24公里/小时 2.送货员送货中途不休息,午休时间也略去 3.送货员送货中途无任何意外发生中断送货 4.送货的每一条路、每个地点可以重复进过 5.假定每件货物交接花费3分钟,同一地点有多件货物也简单按照每件3分钟交接计算2.2 符号系统N(V,E,W),WtN(V,E,W)表示无向图V是节点集合,E为边的集合,Wt为边上的权.d(,)相邻顶点,之间的距离M3030个包裹的总重量M100100个包裹的总重量V3030个包裹的总体积V100100个包裹的总体积第i个包裹的重量第i个包裹的体积vi0每个阶段的起点 i=1,2,3,4viz每个阶段的终点 i=1,2,3,4t送包裹到指定地点所用时间t100送完100件货物所用时间T到达指定地点并交接包裹后的时刻MA VAA区包裹的总质量、总体积MB VBB区包裹的总质量、总体积MC VCC区包裹的总质量、总体积dAA区送货路线总长dBB区送货路线总长dCC区送货路线总长三、问题分析3.1 问题1的分析: 注意到30个包裹的总重量(M30=)不超过50kg,且总体积(V30=)不超过1 ,则送货员可一次携带30 个包裹送货到指定地点并返回。
由假设送货员行进速度恒定,从而最佳运送方案等价于找出一个遍历所有目的顶点并返回出发点的最短路线从而可以将该问题转化为TSP(旅行商)问题【1】(本题可以重复经过某顶点),即寻找一个最短的Hamilton圈【2】利用Matlab软件编程,先计算出相邻顶点(vi,vj)之间的Euclid距离()并赋为边的权值,利用Floyd算法【2】求出顶点间最短路径构造连接各顶点的一个无向赋权完备图(矩阵)使用启发式算法(Heuristic Algorithm)【2】寻找该完备图最短的Hamilton圈3.2 问题2的分析3.2.1 建模流程 问题转化示意图l 根据规定时间先后划分线路为四个阶段l 每个阶段可以看成一个寻找一个最短的Hamilton链l 使用穷举法及递推算法解决l 送货路线问题 用最短的路径在规定时间内送到指定地点 3.2.2 问题分析同问题1送货员可一次携带30 个包裹送货到指定地点,但是不需要返回出发点又由于在时间上有了限制,等价于两个限制因素,用最短的路径在规定时间内送到指定地点根据指定时间的先后,分四个阶段去送货(划分见附录2)。
从而最佳运送方案是找出每个区域的起点vi0到终点viz(距离下一个区域最近的点)的最短路径,即在每个区域寻找一个最短的Hamilton链结合问题1的结果,区域1和区域2 的最短路径可以经过简单计算得出,区域3可以利用Matlab软件编程,构造连接各顶点的一个无向赋权完备图(矩阵)使用枚举法寻找每个区域完备图的最短的Hamilton链3.3 问题3的分析3.3.1 建模流程 问题转化示意图3.3.2 问题分析送货员将100个包裹最快送到50个指定地点,经过计算100个包裹的总质量;总体积,送货员每次携带货物质量不能超过50kg,体积不能超过1m3,可将路线划分为n(n>=3,且n为整数)个片区,相当于n个送货员同时从同一地点出发再返回出发点,考虑到送货员需最快送货完毕,即需要最短送货路线,则每个区域的包裹质量和体积在不超过限制时应尽可能最大,所以考虑选取n=3划分方案如下:(1) 按照地理位置划分法将路线划分为A、B、C三个区域2) 由送货员负载包裹的重量限制和体积限制对三个区域进行优化3) 区域的公共地点可以将一个地点的多份包裹进行两次或三次送到,达到区域的优化。
由假设送货员行进速度恒定,从而最佳运送方案等价于找出一个遍历每个区域所有目的顶点并返回出发点的最短路线从而可以将该问题转化为TSP(旅行商)问题(本题可以重复经过某顶点),即寻找一个最短的Hamilton圈 四、模型建立与求解 4.1模型准备先根据题中所给的距离表将各节点标在示意图中(附录1),其中节点代表目标地点,边上的权表示路径的长度.设其为N(V,E,W) Wt,V是节点集合,E为边的集合,Wt为边上的权.其中边上的权Wt确定方法如下:计算出相邻顶点(vi,vj)之间的Euclid距离(),再将该图转化为一个无向赋权完备图(undirected weighted complete graph)转换方法如下:利用Floyd算法求出任意两个顶点,之间的距离(最短路径长度)d(,)=得到矩阵无向赋权完备图d=[].(程序,结果见附录4)4.2 问题1模型的建立与求解4.2.1 模型建立由问题1的分析知,本题可以转化为一个TSP【1】(旅行商)问题(本题可以重复经过某顶点),即寻找一个最短的Hamilton圈【2】数据预处理部分已经得到了连接各顶点的一个无向赋权完备图(矩阵)。
由于TSP问题是一个典型的NP-hard问题【1】对于本问题的规模在有效建模时间内利用穷举法(exhaustion method)是困难的所以这里考虑使用模拟退火算法(SA)【1】来寻找该完备图中的最短Hamilton圈4.2.2 模型求解借助数学工具Matlab,使用模拟退火算法(SA)可以求出最优解如下:路线:O—>26—>21—>17—>14—>16—>23—>32—>35—>38—>36—>38—>43—>42—>49—>42—>45—>40—>34—>31—>27—>39—>27—>31—>24—>19—>13—>18—>O图示:4.3 问题2模型的建立与求解4.3.1 模型的建立 由问题二的分析可知模型建立步骤如下:(1) 根据时间先后划分为四个阶段(划分见附录2);(2) 确定每个阶段的起点和终点,显然第一阶段的起点为O点,然后每一阶段的起点要求距离上一个阶段最近,终点要求距离下一个阶段距离最近3) 阶段一二三结合问题的结果可以分析计算出;阶段四较一二三复杂,可借助数学工具Matlab,使用递归法得出最优解4) 所用时间(t)的计算可以根据公式:所用时间=路程/速度+3×货物数目()(5) 到达时间(T)可以根据公式:到达时间=起始时间+该阶段各路段累计所用时间()4.3.2 模型的求解(1)阶段一 要求9:00到达: 共有三个指定地点:13,18,24,分析可得起点为18,终点为24。
则可确定路线即为18—>13—>24此时我们只要计算出每一段的最短距离即可根据图示以及问题1所得数据,确定最优线路为18—>13—>19—>24具体计算结果如下表所示:路线起点O-1818-1313-24路程(m)2182.02893113.46275704.3372所用时间5分27秒7分47秒14分17秒到达时间8点5分27秒8点16分14秒8点36分31秒交货用时3分3分3分离开时间8点8分27秒8点19分14秒8点39分31秒(2)阶段二 要求9:30到达共有四个指定地点:31,34,40,45分析可得起点为31,终点为45从而可以得到两种行程路线31—>34—>40—>45或31—>40—>34—>45分析比较两种路线的行程总路程如下:路线124—3131—3434—4040—45路程(m)1780.14752324.74731630.7823217.0056路线224—3。












