送货路线的设计问题

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

送货路线的设计问题

摘要

该题为送货路线设计问题,发现其与旅行商问题[]1几乎一样,所以采用了与解决TSP 问题类似的方法进行求解,即TSP 模型。

针对问题一, 在解决问题的过程中用TSP 问题中的经典算法Floyd 算法[]2算出了距离矩阵A ,然后将其代入破圈法LINGO []3程序,得出最佳路线为:

26312739273638434249424540343124191318141623322317210→→→→→→→→→→→→→→

→→→→→→→→→→→→→

求得的最短路程和时间(包括交货时间)分别为:

m S 58864= 9526.3=T 针对问题二,不要求返回,但因为有时间的限制,所以根据时间优先的原则,将1-30号货物的送达地点进行分块分组,分别为13,18,24;31,34,40,45;38,42,43,49;14,16,17,21,23,26,27,32,36,39,则优先送达时间要求紧的货物,再利用问题一得出的结果来安排问题二中的顺序,求出其中耗时最短的路线,即:

14

162332231721263127392736384342494245403431241913180→→→→→→→→→→→→→→

→→→→→→→→→→→→

针对问题三,考虑在这51个点的连通图中找到最小生成树,又因为重量和体积的限制,把整个图分为3部分进行送货,就得到了求最短路的问题,再用问题一的办法进行求解,即求的最优路线。其总时间与总路程分别为:

时千米,117844.1009246.127==T S

关键词: 最短路径[]4; TSP 问题; Floyd 算法; 破圈法[]5;最小生成树

一、问题重述

有一快递公司,库房在图1中的O点,一个送货员需将货物送至城市内多处,设计送货方案,使所用时间最少。相关信息已在题中附录中显示,包括该地形图的示意图、各点连通信息表、各件货物的相关信息和50个位置点的坐标,送货员只能沿连通线路行走,而不能走其它任何路线。

送货员一次最大载重为50公斤,所带货物最大体积为1立方米,送货员的平均速度为24公里/小时,每件货物交接花费3分钟,为简化起见,同一地点有多件货物也简单按照每件3分钟交接计算。下图为用MATLAB程序(附录1)画出的图:

快递公司送货地点示意图

0200040006000800010000120001400016000

图一

问题一需要解决:将1-30号货物送到指定地点并返回,设计最快完成路线与方式,给出结果并标出送货线路;

问题二需要解决:送货员从早上8点上班开始送货,要将1-30号货物的送达时间不能超过指定时间,设计最快完成路线,并标出送货线路;

问题三需要解决:不需考虑所有货物送达时间限制(包括前30件货物),将100件货物全部送到指定地点并返回,设计出最快完成路线与方式,并标出送货线路,给出送完所有快件的时间,需要考虑到重量和体积的限制,送货员可中途返回取货,不考虑中午休息时间。

二、问题分析

旅行商问题,即TSP 问题(Travelling Salesman Problem )是数学领域中著名问题之一。假设有一个旅行商人要拜访n 个城市,他必须选择所要走的路径,路经的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。

对于问题一,由前30 件货物要到达的节点分别为,13、14、16、17、18、21、23、24、26、27、31、32、34、36、38、39、40、42、43、45、49,这30件货物的总重量∑<=kg kg m 505.48,总体积33188.0m m V <=∑,故送货员可一次携带,不需要返回O 点重新取货,只需要满足从O 点出发经过图中的21 个点并回到O 的距离最短即可。由题目容易知道,问题一并不是TSP 问题的直接应用,但是我们可以先用任意两点间最短距离来联系每个点,形成完全图后便是一个TSP 问题了,再利用破圈法求出最优路线。

对于问题二,加入了时间的要求,所以货物必须按时到达送货地点,通过分析发现这4个时间点内需要完成的任务正好在最优路线之内,所以在问题一的基础上进行送货。

对于问题三,送货员将1-100号货物全部送到指定地点并返回。货物的总质量为148公斤,总体积为2.8立方米,因此送货员至少要往返两次取货,故我们构建出最小生成树,将其划分为三个区域,求出它的三条最优路线,求得的最短总路程和总时间分别为:

时千米,117844.1009246.127==T S

三、模型假设及符号说明

3.1模型假设

(1) 送货员的速度保持不变;

(2) 交接每件货物所需要的时间为3分钟;

(3) 过程中无意外发生,即一路顺利,无塞车等现象; (4) 送货员只按照图中给定的可通路线行走; 3.2符号说明

T : 表示送货用的总时间; S : 表示送货行走的总路程; V :表示货物总体积; m :表示货物总重量;

0v : 表示送货员行走的恒定速度; 0t : 表示每件货物所需的交接时间;

四、

4.1模型的建立

对于问题一,问题要求设计最快完成路线,由于送货员的平均速度是确定的,可以知道所用时间最小即所走距离最短,也即为最短时间模型。

因此目标函数[]6为:

300⨯+=t v S T

其中:S 表示从O 开始回到O 的总路程; v 表示送货员的平均速度; 0t 表示每件货物的交接时间。 4.2模型的求解 4.2.1求解距离矩阵

用ij a 来表示两点间的距离,则任意两点间的距离可用矩阵A 表示,在这里我们用Floyd 算法得出距离矩阵A 。(具体的Floyd 算法MATLAB 程序见附录2) (1)Floyd 算法的基本思想

直接在图的带权邻接矩阵中用插入顶点的方法依次构造出v 个矩阵)1(D 、)2(D ……)(v D ,使最后得到的矩阵)(v D 成为图的距离矩阵,同时也求出插入点矩阵以便得到两点间的最短路径. (2)Floyd 算法的原理

把带权邻接矩阵W 作为距离矩阵的初值,即W d D v v ij ==⨯)()

0()0(

①)1(D = νν⨯)()1(ij d ,其中)0(1)0()1(,min{i ij ij d d d =})0(1j d +

)

1(ij

d 是从i v 到j v 的只允许以1v 作为中间点的路径中最短路的长度 ②)2(D = νν⨯)()2(ij d ,其中)1(2)1()2(,min{i ij ij d d d =})1(2j d +

)

2(ij

d 是从i v 到j v 的只允许以1v 、j v 作为中间点的路径中最短路的长度

……

到最后v v v ij v d D ⨯=)()()

(,其中)

1()1()(,min{--=ννννi ij ij d d d })1(-+ννj d

)

(νij

d 是从i v 到j v 的只允许以v v v v ,,,21 作为中间点的路径中最短路的长度.即是从i v 到j v 中间可插入任何顶点的路径中最短路的长,因此)(v D 即是距离矩阵. (3)Floyd 算法的步骤

i j i D :),(到j 的距离; i j i R :),(到j 之间的插入点;

输入带权邻接矩阵),(j i w 的步骤: Step1:赋初值:

对所有j i ,, 1,),(),,(),(←←←k j j i R j i w j i D Step2:更新),(),,(j i R j i D 对所有

,,j i 若)

,(),(),(j i D j k D k i D <+,则用),(j i D 代替

相关文档
最新文档