快递员配送路线优化模型摘要如今,随着网上购物的流行,快递物流行业在面临机遇的同时也需要不断迎接新的挑战。
如何能够提高物流公司的配送效率并降低配送过程中的成本,已成为急需我们解决的一个问题。
下面,本文将针对某公司的一名配送员在配送货物过程中遇到的三个问题进行讨论及解答。
对于问题一,由于快递员的平均速度及在各配送点停留的时间已知,故可将最短时间转换为最短路程。
在此首先通过Floyd求最短路的算法,利用Matlab 程序将仓库点和所有配送点间两两的最短距离求解出来,将出发点与配送点结合起来构造完备加权图,由完备加权图确定初始H圈,列出该初始H圈加点序的距离矩阵,然后使用二边逐次修正法对矩阵进行翻转,可以求得近似最优解的距离矩阵,从而确定近似的最佳哈密尔顿圈,即最佳配送方案。
对于问题二,依旧可以将时间问题转化为距离问题。
利用问题一中所建立的模型,加入一个新的时间限制条件,即可求解出满足条件的最佳路线。
对于问题三,送货员因为快件载重和体积的限制,至少需要三次才能将快件送达。
所以需要对100件快件分区,即将50个配送点分成三组。
利用距离矩阵寻找两两之间的最短距离是50个配送点中最大的三组最短距离的三个点,以此三点为基点按照准则划分配送点。
关键字:Floyd算法距离矩阵哈密尔顿圈二边逐次修正法矩阵翻转问题重述某公司现有一配送员,,从配送仓库出发,要将100件快件送到其负责的50个配送点。
现在各配送点及仓库坐标已知,货物信息、配送员所承载重物的最大体积和重量、配送员行驶的平均速度已知。
问题一:配送员将前30号快件送到并返回,设计最佳的配送方案,使得路程最短。
问题二:该派送员从上午8:00开始配送,要求前30号快件在指定时间前送到,设计最佳的配送方案。
问题三:不考虑所有快件送达的时间限制,现将100件快件全部送到并返回。
设计最佳的配送方案。
配送员受快件重量和体积的限制,需中途返回取快件,不考虑休息时间。
符号说明D:n个矩阵nV:各个顶点的集合E:各边的集合e:每一条边ijw:边的权()eG:加权无向图,v v:定点i jC:哈密尔顿圈()f V:最佳哈密尔顿圈i模型的建立一、基本假设1、假设送货员的始终以24千米/小时的速度送货,中途没有意外情况;2、假设送货员按照路径示意图行走;3、假设仓库点为第51点;4、假设送货员回到仓库点再次取货时间不计。
二、模型建立与求解问题一:1、数据处理使用数据处理软件,处理附表2求出给定配送点之间的相互距离。
最终使用矩阵对处理数据进行数据统计整理。
1319161828642207823511821825121179751261392⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦L L L L L L L L L矩阵前两列表示相互连接的配送点,第三列表示相邻两配送点之间边的距离。
使用上述数据矩阵可以构造路线示意图的带权邻接矩阵,再用Floyd 算法求出各配送点之间的距离。
2、Floyd 算法基本思想直接在示意图的带权邻接矩阵中,通过插入定点的方法构造出n 个矩阵12,,,n D D D L ,最后得到的矩阵n D 为距离矩阵,同时求出插入点矩阵以便得到两点之间的最短路程。
123495051107745191620306169891006827745058292557022001169263191658290207051738810467049203062557020705035691172150169892200117388356909928511006816926104671172199280⎡⎢⎢⎢⎢⎢⎣L L L L L L L L L L L L L LL LL L L L L L L LL LL L⎤⎥⎥⎥⎥⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎦令(,)G V E =为一个加权无向图,其中V 表示各个顶点的集合,}{012,,,,n V v v v v =L ;其中E 表示各边的集合,}{ij E e =,而(,)ij i j e v v =。
图G 中每一条边ij e 都对应一个实数()e w ,则称()e w 为边的权。
如果任意两边相连,则G 为完备图。
设(,)G V E =是连通无向图,经过G 的每个定点正好形成一个圈,则称G 为哈密尔顿圈,简称H 圈。
最佳哈密尔顿圈是在加权图(,)G V E =中,权最小的哈密尔顿圈。
判定一个加权图(,)G V E =是否存在哈密尔顿圈是一个NP 问题,而它的完备加权图''(,)G V E =('E 中每条边的权等于,i j v v 之间的最短路径的权)中一定存在哈密尔顿圈。
所以需要在完备加权图''(,)G V E =中寻求最佳哈密尔顿圈。
该过程需要采用二边逐次修正法并且利用矩阵翻转实现。
3、二边逐次修正法的选法过程(1)、任取初始H 圈:012,1=,,,,,,,i j n C v v v v v v L L L(2)、对所有的,,11i j i j n <+<<,若1111(,)(,)(,)(,)i j i j i i j j w v v w v v w v v w v v +++++<+,则在0C 中删去边(,)i j w v v 和11(,)i j w v v ++而加入边1(,)i i w v v +和1(,)j j w v v +,形成新的H 圈C ,即12,1,,,,,,,i j n C v v v v v v =L L L(3)、对C 重复步骤(2),直到条件不满足为止,最终得到的C 即为所求。
4、矩阵翻转在一个矩阵中,对他的第i 行(列)到第j 行(列)翻转是以i 行(列)和j 行(列)的中心位置为转轴、旋转180度,这样:第i 行(列)和第j 行(列)位置互换,第i+1行(列)和第j-1行(列)位置互换。
图一由附录给定的快件信息可知,1:30号快件总重量为48.5kg 、体积为0.88m 3,显然送货员可以一次性携带所有货物到达配送点,经统计配送点共有21个,即(V 13、14、16、17、18、21、23、24、26、27、31、32、34、36、38、40、42、43、45、49)首先在程序里设置限制:3030501i i i i w v ==⎧≤⎪⎪⎨⎪≤⎪⎩∑∑ 将出发点51点与21个送货点结合起来构造完备加权图,由完备加权图确定初始H 圈,列出该初始H 圈加点序的距离矩阵,然后使用二边逐次修正法对矩阵进行翻转,可以求得近似最优解的距离矩阵,从而确定近似的最佳哈密尔顿圈。
由于使用矩阵翻转方法来实现二边逐次修正法的结果与初始圈有关,为得到更优解,在使用软件编程时,随机搜索出若干个初始H 圈,例如2000。
在所有的H 圈中筛选权值最小的一个,即就是最佳H 圈。
最佳H 圈的近似解为:20001()ii f V =∑min ()i f V在0C 中删去边(,)i j w v v 和11(,)i j w v v ++而加入边1(,)i i w v v +和1(,)j j w v v +,形成新的H 圈C 。
最终由编程得到近似最佳配送路线以及总长度。
图二最佳配送路线:51→26→21→17→14→16→23→32→35→38→36→38→43→42→49→ 42→45→4→→→→→→31→24→19→13→18→51解得路线总长为54709m ,耗时226.77min 。
问题二:因货物可在一次性配送,故可以不用考虑送货员的最大载重与体积问题。
但是较于问题一在选择路线上,需要考虑送货时间问题,不得超过指定时间。
所以在问题一的程序中需要再增加时间限制。
300300501(0,1,2,,30)i i ii i i w v T t i ==⎧≤⎪⎪⎪⎨≤⎪⎪≤=⎪⎩∑∑L 结合问题一,使用相同方法求解最佳H 圈。
图三最佳配送路线:51→18→→→→→→→→→→→→38→35→32→23→16→14→17→2→→→→→→26→51解得路线总长为54996m,耗时227.50min问题三:由附录给定的快件信息知,1:100号快件总重量为148kg、体积为2.8m3。
由于考虑送货员的最大载重与体积,送货员必须分多次配送快件。
送货员显然至少需要连续三次配送,才能完成配送任务。
因此问题三存在配送点分组、以及每组求最佳配送方案这两个问题。
首先需要制定一种比较合理的划分准则,使三组总长加起来最短。
需要选择三个点作为每一组的基点,要求这三个点两两之间的最短距离是50个配送点中最大的三组最短距离。
利用距离矩阵查找其他任意点与三个基点之间的距离,距离哪一个基点近,就被划分在哪一组。
通过计算三个基点为:9号、28号、43号配送点。
通过距离矩阵将100件快件的配送点分组如下:配送方案重量(kg)体积(m3 )一12345678910141617182123323549.90.9112二111213151920222526282930334144464848.380.985 三 242731343637383940434547495049.720.9038求和148 2.8使用问题一与问题二中相同的方法:首先将出发点与其他组内点结合起来构造完备加权图,由完备加权图确定初始H圈,列出该初始H圈加点序的距离矩阵,然后使用二边逐次修正法对矩阵进行翻转,可以求得近似最优解的距离矩阵,从而确定近似的最佳哈密尔顿圈。
图四最终由程序解得三组最佳配送路线为:第一组:51→→→→→→→→→→→1→6→1→7→→→→→→→→→→→→1解得路线总长52743m,耗时227.4min第二组:51→26→31→24→19→25→41→44→48→46→33→28→3→→→→→→→→→→→1解得路线总长47736m,耗时221.4min。
第三组:51→26→31→27→39→27→36→38→43→42→49→5→→→→→→40→34→31→26→51解得路线总长42421m,耗时208.2min模型的优缺点点评对于问题一所建立的模型,通过Floyd算法和二边逐次修正法找到最优哈密尔顿圈,可以得到准确的最优路线,在不考虑时间及负重限制的情况下,该模型可以精确地计算出唯一的最优路线。
而对于问题二与问题三,其最优路线的求解均是建立在近似最优哈密尔顿圈的基础之上的。
由于无法得到准确的最优哈密尔顿圈,故模型得到的最优路线与真实的最优路线还存在着一定的差距,只能通过增加计算次数不断地逼近真实最优路线。
但在允许的误差范围内,模型已经可以很好地模拟出最优的配送路线了。