一种面向价值流的配送派单方法与流程

文档序号:16884151发布日期:2019-02-15 22:29阅读:337来源:国知局
一种面向价值流的配送派单方法与流程

本发明涉及配送服务领域,尤其涉及一种面向价值流的配送派单方法。



背景技术:

配送是物流的基础活动之一,尤其是“最后一公里”的配送更是影响供应链效率、效益、服务水平的主要活动。在“最后一公里”配送业务中,同城配送的业务量占据了大多数。随着人们习惯于线上购物、订餐和生活节奏越发紧张等的影响下,同城配送的业务量逐年增长,而开展同城配送业务的企业也越来越多,竞争越来越激烈。配送及时性是同城配送主要竞争要素之一,如何更快速地响应客户的配送需求成了一个日益突出的问题。但目前国内关于同城配送的调度研究并不多,面对高频低量、客户分散、送达时间不确定等同城配送需求,当前主要形成了两种处理同城配送任务的指派方式:统一派单和抢单。统一派单方式主要沿用传统物流时间长、距离长的配送方式,会累计订单任务来节约成本,大大降低了时效性,不满足同城配送的及时性需求。而直接抢单方式虽然指派任务很快,但是从配送员角度出发,仍然没有完全考虑客户时间窗要求,也没有考虑配送距离等情况,因此也无法很好保证时效性和降低总体成本。

鉴于此,针对同城配送的特征和时效性要求,以客户及时性需求为核心,同时考虑配送企业的能力和降低成本的需求,研究新的派单算法具有重要价值。



技术实现要素:

为解决背景技术中提到的问题,本发明提供一种面向价值流的配送派单方法。以根据配送订单的时效优先级情况更加准确高效地指派配送任务,提高配送的效率和准确率,提高配送时效性和降低配送总成本。

一种面向价值流的配送派单方法,所述派单方法包括如下步骤:

步骤1:客户下单后,判断此订单号在配送任务系统中是否已经存在,若存在,则该订单为修改订单,若不存在,则该订单为新订单;

步骤2:当订单是修改订单时,若此时订单状态为“还未开始配送”时,则允许修改订单,返回步骤1;若此时订单状态不为“还未开始配送”时,则根据以下五个条件判断其是否可以修改:

步骤2.1:订单状态为“已经开始配送”时,则说明配送已经开始但还未到达取货点,此时比较pf1和pfi+1的大小,如果pf1<pfi+1,则允许修改取货地址和送货地址,计算出pf1的值进入步骤6;如果pf1>pfi+1,则不允许修改地址,客户重新下单,返回步骤1,其中pf1为第一个订单的取货优先级,pfi+1为第i+1个订单的取货优先级,i为大于等于零的整数;

步骤2.2:订单状态为“已经从取货点取货”时,则说明已经从取货点取货,此时不允许客户修改取货地址,但可以修改送货地址,并延长收货时间,进入步骤8;

步骤2.3:订单状态为“已经送达送货点”时,则说明已经送达送货点且货物已被签收,此时不允许客户修改,返回步骤1;

步骤2.4:订单状态为“已经过了取货点但未取到货”时,则说明已经过了取货点但未取到货,此时比较pf1和pfi+1的大小,如果pf1<pfi+1,则允许修改取货地址和送货地址,计算出的pf1值进入步骤6;如果pf1>pfi+1,则不允许修改地址,要求客户重新下单,返回步骤1,其中pf1为第一个订单的取货优先级,pfi+1为第i+1个订单的取货优先级,i为大于等于零的整数;

步骤2.5:订单状态为“经过送货点并已经送货但无人收货”时,则说明已经过了送货点且无人收货,此时允许客户修改送货地址,但要延长收货时间,进入步骤8;

步骤3:当订单为新订单时,审核订单是否合格,当不合格时,返回步骤1,当合格时进入下一步骤;

步骤4:根据订单的起点、路由和终点进行对订单进行分类;

步骤5:计算每个订单的取货优先级;

步骤6:将系统中所存在的取货优先级数值按照从小到大的顺序进行排序,执行取货优先级数值的最小值对应的操作,设此订单为i号订单;

步骤7:当i号订单的订单状态为已经从取货点取货时,计算i号订单的送货优先级dfi,以及更新剩下所有订单的送货优先级;当i号订单的订单状态为已经送达送货点时,更新剩下所有订单的送货优先级;

步骤8:计算修改订单的送货优先级dfi,若没有修改订单则跳过此步骤;

步骤9:将所有送货优先级数值按从小到大的数值排序,执行最小值对应的操作,此订单为i号订单;

步骤10:重复执行步骤7-步骤10,直到处理完订单。

进一步地,所述步骤2.1中取货优先级的具体过程为:

设系统当前时间为a,配送车辆从当前位置行驶至取货点的时间为b,

设某订单的客户期望时间窗是[ji,ki],ji是客户期望的最早的取货时间,ki是客户期望的最晚的送达时间

取货优先级为:

pf=(ji-a)/b

若pf≥1,则说明剩余时间刚好够用或有剩余,则按照pf值由小到大划分优先级,pf值小的优先级高,说明要先去取pf值小的商品;

若0<pf<1,则说明此时车辆从当前位置去取货时间是来不及的,需要将此任务派给其他正在运输途中的车辆来完成,说明此单需要插入其他车辆的配送任务中。

进一步地,所述步骤7中送货优先级的具体计算过程为:

设系统当前时间为e,配送车辆从当前位置行驶至送货点的时间为f,送货优先级为:

df=(ki-e)/f

只考虑df≥1的情况,按照df值由小到大划分优先级,df值小的优先级高,要先送df值小的商品。

进一步地,所述步骤3中审核新订单的具体过程为:

从以下三个方面审核:

查找是否有空闲车辆;

计算服务时间是否符合要求:(ji-ki)≥t,其中t服务时间;

距离符合要求:s≤5,其中s为订单距离;

同时满足以上三个条件,审核通过,进入步骤4;任意一个条件不满足,

审核不通过,返回步骤1。

进一步地,所述步骤4中订单分类的具体过程为:

假设每辆车的车型都相同,即可载货的重量和体积都是相同的,车辆的行驶速度也相同,设每台车的容量为q,载重量是z,行驶速度为v;

每一单的货物体积和重量为qi和zi(qi<q,zi<z);

分类的因素为:起点、路由和终点,满足以上条件中的任意两个,且q1+q2+q3+...<q,z1+z2+z3+...<z,将这些订单组成一组配送任务安排给同一辆车,循环步骤4,直至剩余订单m=0。

进一步地,所述步骤2中用户修改订单分为以下情况考虑:

还没有开始配送,允许修改订单,但此时修改订单相当于二次下单,客户需要先取消原来订单,再进行新的订单;

配送已经开始了,客户提交修改命令后,系统会自动判断能否允许客户修改;

配送车辆还未到达原定取送货点,此时判断新地点订单优先级和下一个位置的取送货优先级,如果新地点的优先级高,则允许修改,但要加收一定的费用;

配送车辆还未到达原定取送货点,此时判断新地点订单优先级和下一个位置的取送货优先级,如果下一个地点的优先级高,说明无法插单,则拒绝客户的修改申请,要求客户重新下单;

配送车辆已经达到或者经过了原定取送货点,则说明此单已经无法修改,要求客户重新下单。

本发明采用了上述技术方案,具有以下技术效果:

本发明在订单进入配送任务系统以后,首先会根据订单的起点、终点、路由进行分类,把路由相同的订单划分为同一类,然后根据每个订单配送时间要求、配送的预测耗费时间和当前时间等计算数字化优先级,进行优先级的判断,之后根据数字化优先级来决定具体的配送取、送货顺序和指派车辆。本发明区别地考虑了配送取货、送货的时效性,能更加准确高效地匹配配送任务,是一种面向时效和最小成本、资源约束等的派单调度算法,既能满足客户的最大价值,又同时保证配送企业的效益。

附图说明

图1是本发明的流程图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。

设每一次配送开始的时候,司机都是从配送站点出发,先到取货点取货,然后在客户要求的时间内,将货物送到送货点。取货点设为pi,送货点设为di。共有m台配送车辆,设为ci(i=1,2,3,...,m)。在每一笔订单中,都存在客户的期望配送时间窗[ji,ki],ji是客户期望的最早的取货时间,ki是客户期望的最晚的送达时间。早于ji时间取货,会产生司机等待成本,迟于ki时间送达物品,会产生客户服务成本。假设每辆车的车型都相同,即可载货的重量z和体积q都是相同的,车辆的行驶速度也相同,设每台车的容量为,载重量是,行驶速度为v。每个司机每天的工作时间是有限的,每天的工作时间为8小时,每天司机把车辆驶出配送站点后,完成配送任务后无需返回,可就近休息或者接着进行下一单,在每天工作结束后,再将车辆驶回站点停靠。设服务时间为t,每一单的货物体积和重量为qi和zi(qi<q,zi<z)。司机的工作时间是有限的,车辆所能行驶的最远距离也是有限的。

此派单方法实例中,车辆位置利用gps,gis,gprs系统获取,配送订单路线、时间、地点等信息均来自于百度地图。在百度地图中,输入起点和终点,选择交通方式,百度地图会为你推荐所有可行的交通方式,并显示一条时间最短的最佳路径,和显示出总距离、路由和所用总时间。这为本方法提供了一个计算配送优先级的基础。基于百度地图的派单模式,可以做到时间最短,并且时间和路径清晰可控。在技术层面上,百度地图的api和sdk都是开放且免费的,这为系统开发提供了极大的便利。

配送订单都通过统一的系统(或平台,以下简称系统)进入配送任务中,订单进入配送任务以后,首先会根据订单的起点、终点、和由百度地图获取的路由信息进行分类。把路由相同的订单划分为同一类,再进行每个订单配送优先级的判断。对应的系统会自动计算和判断其优先级,根据优先级来决定具体的配送方法。

优先级的计算:

由于配送过程分为取货和送货两个阶段,所以优先级也有两个,分别是取货优先级和送货优先级,取货优先级用pf表示,送货优先级用df表示。

系统在派单的时候,是以车辆为基础单位的,即决定哪几单分给某辆车,如果某个单不符合该车辆的要求(重量过重、体积过大或者0<pf<1),则迅速派给其他车辆。

设某订单的客户期望时间窗是[ji,ki],ji是客户期望的最早的取货时间,ki是客户期望的最晚的送达时间。早于ji时间取货,会产生司机等待成本,迟于ki时间送达物品,会产生客户服务成本。为了使这两项成本都降到最低,应该尽量精准控制取货和送货时间。

(1)取货优先级的计算:

设系统当前时间为a,配送车辆从当前位置行驶至取货点的时间为b(由百度地图获取)。则取货优先级为:

pf=(ji-a)/b

(3-1)

①若pf≥1,则说明剩余时间刚好够用或有剩余,则按照pf值由小到大划分优先级,pf值小的优先级高,说明要先去取pf值小的商品。

②若0<pf<1,则说明此时车辆从当前位置去取货时间是来不及的,需要将此任务派给其他正在运输途中的车辆来完成,说明此单需要插入其他车辆的配送任务中。

(2)送货优先级的计算:

设系统当前时间为e,配送车辆从当前位置行驶至送货点的时间为f。送货优先级为:

df=(ki-e)/f

(3-2)

只考虑df≥1的情况,按照df值由小到大划分优先级,df值小的优先级高,要先送df值小的商品。

配送优先权的选择:

计算完每一个订单的优先级以后,就要进行实际配送优先级的选择。即配送车辆在取完第一批货物之后,是先送第一批货物,还是接着去取第二批货物,需要具体判断。同时,为了跟踪订单变化和配送情况,优先级为动态的数据,即每一次取货或者送货结束后,都会重新计算新的优先级。

设订单的序号是1,2,3,…,相对应的取货优先级和送货优先级分别为pf1和df1等。假设此时订单经过审查后,共有3笔订单派给了某辆配送车辆。经过计算可得,其取货优先级pf1<pf2<pf3,说明要先取1号货物。取完1号货物后,就产生了1号货物的送货优先级df1,以及重新产生的2,3号货物的取货优先级pf2'和pf3‘。接着比较1号货物的送货优先级和2号货物的取货优先级:1号货物送货优先级df1=(k1-e)/f,2号货物取货优先级pf2'=(j2-a)/b,此时系统时间相同e=a,即比较取货跟送货哪一个比较急,哪个急就先完成哪个。重复此步骤,每次送完或者取完货后,就比较新产生的取货和送货优先级,按照优先级的大小决定取送货的顺序。

针对客户有时会修改订单要求等,进而影响了本方法中优先级判断的一些特殊情况,作如下规定。在一般情况下,客户在确定下单后是不允许修改取送货地址的,如果一定要修改,则分为以下情况考虑:

(1)还没有开始配送,允许修改订单,但此时修改订单相当于二次下单,客户需要先取消原来订单,再进行新的订单。

(2)配送已经开始了,客户提交修改请求后,系统会自动判断能否允许客户修改。

①配送车辆还未到达原定取送货点,此时判断新地点订单优先级和下一个位置的取送货优先级,如果新地点的优先级高,则允许修改,但要加收一定的费用;

②配送车辆还未到达原定取送货点,此时判断新地点订单优先级和下一个位置的取送货优先级,如果下一个地点的优先级高,说明无法插单,则拒绝客户的修改申请,要求客户重新下单;

③配送车辆已经达到或者经过了原定取送货点,则说明此单已经无法修改,要求客户重新下单。

如图1所示,根据本发明的一种面向价值流的配送派单方法结构示意图,

设订单状态“0”为“还未开始配送”,“1”为已经开始配送,“2”为已经从取货点取货,“3”为已经送达送货点,订单已完成。特别的,“4”为已经过了取货点但未取到货,“5”为已经过了送货点但无人收货。订单为mi(i=1,2,3,...,n),用m来统计剩余还未派单的订单数量。设车辆状态“0”为空闲,“1”为忙碌。t为百度地图显示的从起点到终点的时间,s为百度地图显示的从起点到终点的距离。

step1:客户下单后,判断此订单号在系统中是否已经存在。若存在,则该订单为修改订单,若不存在,则该订单为新订单。

step2:对于修改订单,若此时订单状态为“0”,则允许修改订单,相当于二次下单,转step1。若此时订单状态不为“0”,则根据以下五个条件判断其是否可以修改:

①订单状态为“1”,则说明配送已经开始但还未到达取货点,此时比较pf1和pfi+1的大小,如果pf1<pfi+1,则允许修改取货地址和送货地址,计算出pf1的值转step6;如果pf1>pfi+1,则不允许修改地址,要求客户重新下单,转step1。

②订单状态为“2”,则说明已经从取货点取货,此时不允许客户修改取货地址,但可以修改送货地址,并延长收货时间,转step8。

③订单状态为“3”,则说明已经送达送货点且货物已被签收,此时不允许客户修改,转step1。

④订单状态为“4”,则说明已经过了取货点但未取到货,此时比较pf1和pfi+1的大小,如果pf1<pfi+1,则允许修改取货地址和送货地址,计算出的pf1值转step6;如果pf1>pfi+1,则不允许修改地址,要求客户重新下单,转step1。

⑤订单状态为“5”,则说明已经过了送货点且无人收货,此时允许客户修改送货地址,但要延长收货时间,转step8。

step3:审核订单。从以下三个方面审核:

①是否有空闲车辆:是否有车辆的“车辆状态”=“0”。

②来不来得及:(ji-ki)≥t。

③距离符合要求:s≤5。

同时满足以上三个条件,审核通过,转step4;任意一个条件不满足,审核不通过,转step1。

step4:订单分类。从以下三个方面考虑:

①“起点”相同;

②“路由”相同;

③“终点”相同。

满足以上条件中的任意两个,且q1+q2+q3+...<q,z1+z2+z3+...<z。将这些订单组成一组配送任务安排给同一辆车。循环step4,直至m=0。

step5:计算优先级。设该组有n笔订单,计算优先级的数值,pf1=(j1-a)/b,pf2=(j2-a)/b,…,pfn=(jn-a)/b。

step6:将系统中所存在的优先级数值按照从小到大的顺序进行排序。执行最小值对应的操作,此订单为i号订单。

step7:当i号订单的“订单状态”为“2”时,计算i号订单的dfi,以及更新剩下所有订单的取货或者送货优先级;当i号订单的“订单状态”为“3”时,更新剩下所有订单的取货或者送货优先级。

step8:计算修改订单的dfi,,若没有修改订单则跳过此步骤。

step9:将所有优先级数值按从小到大的数值排序。执行最小值对应的操作,此订单为i号订单。

step10:循环step7—step9,直至n=0。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1