拼车路线的确定方法及装置、存储介质、计算设备与流程

文档序号:16471410发布日期:2019-01-02 23:08阅读:222来源:国知局
拼车路线的确定方法及装置、存储介质、计算设备与流程
本发明涉及智能物流与机器算法
技术领域
,具体地涉及一种拼车路线的确定方法及装置、存储介质、计算设备。
背景技术
:智能汽车物流运输领域是人工智能领域与汽车物流领域的交叉领域,旨在通过人工智能算法替代人工方法解决汽车物流领域的常见问题,例如,路径规划问题、道口计划问题、车辆调度问题和仓库选址问题等等。其中,路径规划问题指的是对指定出发地以及目的地来规划车辆行驶路线的问题,以减少车辆行驶路程,或者减少车辆行驶时间。车辆调度问题指的是在满足一定约束的条件下,有序地通过一系列装货点和卸货点的问题,以缩短行驶路程、降低费用、缩短耗时。在传统车辆调度中,主要考虑满板运输的情况,即在一次运输过程中,运输车辆从出发地运输到目的地的情况。而在实际车辆调度中,可能出现车辆未满板运输,且存在多个目标经销点有待运订单的情况,因而,拼车行为应运而生。拼车行为指的是,在运输过程中,将多目的地或多出发地的货物装载于同一车辆上进行运输的行为,既属于路径规划问题,又属于车辆调度问题。现有的拼车解决方案,往往以牺牲物流服务质量为代价,节省运输成本。然而,随着车辆运输业务的增长以及客户对服务质量要求的提高,现有的解决方案难以满足客户需求。技术实现要素:本发明解决的技术问题是如何确定拼车路线,以减小运输成本,提高物流服务质量。为解决上述技术问题,本发明实施例提供一种拼车路线的确定方法,所述拼车路线的确定方法包括:确定拼车路线的出发地与各个目标地之间产生的距离代价,并确定各个目标地彼此之间产生的距离代价;确定所述出发地至每一目标地产生的订单交付代价,并确定各个目标地彼此之间产生的订单交付代价;分别将每一目标地作为各个拼车路线的终点保存至动态规划表中,基于所述动态规划表、所述出发地距离各个目标地产生的距离代价、各个目标地彼此之间产生的距离代价,以及所述出发地至每一目标地产生的订单交付代价、各个目标地彼此之间产生的订单交付代价,利用动态规划算法确定各个拼车路线各自的总代价;将各个拼车路线中总代价最小的拼车路线确定为从所述出发地经各个目标地形成的拼车路线。可选的,所述确定从所述出发地至每一目标地产生的订单交付代价包括:确定所述出发地产生的出厂订单交付代价;确定从所述出发地至每一目标地的运输过程中各自产生的路程订单交付代价;将所述出厂订单交付代价与每一目标地对应的路程订单交付代价之和确定为从所述出发地至该目标地产生的订单交付代价。可选的,所述基于所述出发地与各个目标地之间产生的距离代价、各个目标地彼此之间产生的距离代价,以及从所述出发地至每一目标地产生的订单交付代价、各个目标地之间产生的订单交付代价,利用动态规划算法确定各个拼车路线各自的代价包括:在第1阶段,对于每一拼车路线,在该拼车路线中分别加入各自剩余的目标地以得到各个子路线的当前起点,将各个子路线的当前起点与所述终点之间产生的订单交付代价以及距离代价之和确定为所述第1阶段各个子路线各自的代价,并将各个子路线存储至所述动态规划表中,所述剩余的目标地是终点以外的目标地,所述子路线是终点和所述剩余的目标地形成的路线;在第k阶段,对于每一拼车路线,如果未加入所有目标地和所述出发地,那么对于该拼车路线的每一子路线,分别将未加入该子路线的其余目标地和所述出发地确定为该子路线的新起点,基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至每一目标地产生的订单交付代价和距离代价,确定第(k-1)阶段至第k阶段的新增代价,并将该子路线的新增代价与第(k-1)阶段的代价之和的最小值确定为该拼车路线在第k阶段的代价,更新该拼车路线至所述动态规划表中,直至加入所有目标地和所述出发地为止,k≥2且k为正整数。可选的,所述基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至每一目标地各自产生的订单交付代价和距离代价,确定第(k-1)阶段至第k阶段的新增代价包括:对于每一拼车路线,确定该拼车路线剩余目标地及所述出发地的总数;如果未加入所述拼车路线的剩余目标地及所述出发地的总数小于预设阈值,则基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至每一目标地各自产生的订单交付代价和距离代价,确定基本代价,否则确定加急代价;将所述基本代价或加急代价确定为所述第(k-1)阶段至所述第k阶段的新增代价;所述基本代价采用如下公式表示:rsj=dsj+otd(s,j),n-k<m,或者,rij=dij+otd(i,j),n-k<m;所述加急代价采用如下公式表示:r’sj=dsj+2·otd(s,j),n-k≥m,或者,r’ij=dij+2·otd(i,j),n-k≥m;其中,rsj表示出发地s与目标地j之间产生的基本代价、r’sj表示出发地s与目标地j之间产生的加急代价,rij表示目标地i与目标地j之间产生的基本代价,r’ij表示目标地i与目标地j之间产生的加急代价,dsj表示出发地s与目标地j之间产生的距离代价,dij表示目标地i与目标地j之间产生的距离代价;otd(s,j)表示出发地s与目标地j之间产生的订单交付代价,otd(i,j)表示目标地i与目标地j之间产生的订单交付代价;(n-k)表示所述剩余目标地及所述出发地的总数,n表示所述出发地和所有目标地的全部数量;m表示所述预设阈值。可选的,任意两个目标地之间产生的订单交付代价正比于所述两个目标地之间产生的距离代价;从所述出发地至每一目标地产生的订单交付代价正比于从所述出发地至该目标地产生的距离代价。可选的,所述任意两个目标地之间产生的订单交付代价采用如下公式确定:otd(i,j)=βdij;所述从所述出发地至每一目标地产生的订单交付代价采用如下公式确定:otd(s,j)=βdsj+otdout;其中,β表示所述距离代价与所述订单交付代价的联系因子,otdout表示所述出厂订单交付代价。为解决上述技术问题,本发明实施例还提供一种拼车路线的确定装置,所述拼车路线的确定装置包括:第一确定模块,适于确定拼车路线的出发地与各个目标地之间产生的距离代价,并确定各个目标地彼此之间产生的距离代价;第二确定模块,适于确定所述出发地至每一目标地产生的订单交付代价,并确定各个目标地彼此之间产生的订单交付代价;第三确定模块,适于将每一目标地作为各个拼车路线的终点保存至动态规划表中,基于所述出发地距离各个目标地产生的距离代价、各个目标地彼此之间产生的距离代价,以及所述出发地至每一目标地产生的订单交付代价、各个目标地彼此之间产生的订单交付代价,利用动态规划算法确定各个拼车路线各自的总代价;第四确定模块,适于将各个拼车路线中总代价最小的拼车路线确定为从所述出发地经各个目标地形成的拼车路线。可选的,所述第二确定模块包括:第一确定子模块,适于确定所述出发地产生的出厂订单交付代价;第二确定子模块,适于确定从所述出发地至每一目标地的运输过程中各自产生的路程订单交付代价;第三确定子模块,适于将所述出厂订单交付代价与每一目标地对应的路程订单交付代价之和确定为从所述出发地至该目标地产生的订单交付代价。可选的,所述第三确定模块可以包括:第四确定子模块,适于在第1阶段,对于每一拼车路线,在该拼车路线中分别加入各自剩余的目标地以得到各个子路线的当前起点,将各个子路线的当前起点与所述终点之间产生的订单交付代价以及距离代价之和确定为所述第1阶段各个子路线各自的代价,并将各个子路线存储至所述动态规划表中,所述剩余的目标地是终点以外的目标地,所述子路线是终点和所述剩余的目标地形成的路线;确定更新子模块,适于在第k阶段,对于每一拼车路线,如果未加入所有目标地和所述出发地,那么对于该拼车路线的每一子路线,分别将未加入该子路线的其余目标地和所述出发地确定为该子路线的新起点,基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至每一目标地产生的订单交付代价和距离代价,确定第(k-1)阶段至第k阶段的新增代价,并将该子路线的新增代价与第(k-1)阶段的代价之和的最小值确定为该拼车路线在第k阶段的代价,更新该拼车路线至所述动态规划表中,直至加入所有目标地和所述出发地为止,k≥2且k为正整数。进一步,所述确定更新子模块可以包括:第一确定单元,适于对于每一拼车路线,确定该拼车路线剩余目标地及所述出发地的数量;第二确定单元,如果未加入所述拼车路线的剩余目标地及所述出发地的数量小于预设阈值,则所述第二确定单元适于基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至各个目标地各自产生的订单交付代价和距离代价,确定基本代价,否则确定加急代价;第三确定单元,适于将所述基本代价或加急代价确定为所述第(k-1)阶段至所述第k阶段的新增代价;所述基本代价采用如下公式表示:rsj=dsj+otd(s,j),n-k<m,或者,rij=dij+otd(i,j),n-k<m;所述加急代价采用如下公式表示:r’sj=dsj+2·otd(s,j),n-k≥m,或者,r’ij=dij+2·otd(i,j),n-k≥m;其中,rsj表示出发地s与目标地j之间产生的基本代价、r’sj表示出发地s与目标地j之间产生的加急代价,rij表示目标地i与目标地j之间产生的基本代价,r’ij表示目标地i与目标地j之间产生的加急代价,dsj表示出发地s与目标地j之间产生的距离代价,dij表示目标地i与目标地j之间产生的距离代价;otd(s,j)表示出发地s与目标地j之间产生的订单交付代价,otd(i,j)表示目标地i与目标地j之间产生的订单交付代价;(n-k)表示所述剩余目标地及所述出发地的总数,n表示所述出发地和所有目标地的全部数量;m表示所述预设阈值。可选的,任意两个目标地之间产生的订单交付代价正比于所述两个目标地之间产生的距离代价;从所述出发地至每一目标地产生的订单交付代价正比于从所述出发地至该目标地产生的距离代价。可选的,所述任意两个目标地之间产生的订单交付代价采用如下公式确定:otd(i,j)=βdij;所述从所述出发地至每一目标地产生的订单交付代价采用如下公式确定:otd(s,j)=βdsj+otdout;其中,β表示所述距离代价与所述订单交付代价的联系因子,otdout表示所述出厂订单交付代价。为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述拼车路线的确定方法的步骤。为解决上述技术问题,本发明实施例还提供一种计算设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述拼车路线的确定方法的步骤。与现有技术相比,本发明实施例的技术方案具有以下有益效果:本发明实施例提供一种拼车路线的确定方法,包括:确定拼车路线的出发地与各个目标地之间产生的距离代价,并确定各个目标地彼此之间产生的距离代价;确定所述出发地至每一目标地产生的订单交付代价,并确定各个目标地彼此之间产生的订单交付代价;分别将每一目标地作为各个拼车路线的终点保存至动态规划表中,基于所述动态规划表、所述出发地距离各个目标地产生的距离代价、各个目标地彼此之间产生的距离代价,以及所述出发地至每一目标地产生的订单交付代价、各个目标地彼此之间产生的订单交付代价,利用动态规划算法确定各个拼车路线各自的总代价;将各个拼车路线中总代价最小的拼车路线确定为从所述出发地经各个目标地形成的拼车路线。本发明实施例提供的技术方案同时将距离代价和订单交付代价作为约束条件,通过动态规划算法迭代计算得到各个阶段产生的代价,并将各个阶段形成的每一拼车路线中代价最小的拼车路线保存在动态规划表中。在此基础上,逐个加入剩余的目标地计算下一阶段的最小代价,最终得到从所出发地至各个目标地的总代价最小的拼车路线,可以在节省运输成本的同时缩小订单交付代价,保证物流服务质量,提升用户满意度。进一步,对于每一拼车路线,确定该拼车路线剩余目标地及所述出发地的总数;如果未加入所述拼车路线的剩余目标地及所述出发地的总数小于预设阈值,则基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至每一目标地各自产生的订单交付代价和距离代价,确定基本代价,否则确定加急代价;将所述基本代价或加急代价确定为所述第(k-1)阶段至所述第k阶段的新增代价;所述基本代价采用如下公式表示:rsj=dsj+otd(s,j),n-k<m,或者,rij=dij+otd(i,j),n-k<m,所述加急代价采用如下公式表示:r’sj=dsj+2·otd(s,j),n-k≥m,或者,r’ij=dij+2·otd(i,j),n-k≥m;其中,rsj表示出发地s与目标地j之间产生的基本代价、r’sj表示出发地s与目标地j之间产生的加急代价,rij表示目标地i与目标地j之间产生的基本代价,r’ij表示目标地i与目标地j之间产生的加急代价,dsj表示出发地s与目标地j之间产生的距离代价,dij表示目标地i与目标地j之间产生的距离代价;otd(s,j)表示出发地s与目标地j之间产生的订单交付代价,otd(i,j)表示目标地i与目标地j之间产生的订单交付代价;(n-k)表示所述剩余目标地及所述出发地的总数,n表示所述出发地和所有目标地的全部数量;m表示所述预设阈值。通过本发明实施例提供的技术方案,可以根据订单交付代价对物流服务质量的影响程度确定采用基本代价或采用加急代价,进而确定距离代价与订单交付代价之和,通过微调订单交付代价可以降低拼车路线中排序靠后的目标地的订单交付代价(例如,等待运输的时间代价),以提升物流服务质量。附图说明图1是本发明实施例的一种拼车路线的确定方法的流程示意图;图2是图1中步骤s103的一种具体实施方式的流程示意图;图3是本发明实施例的一种拼车路线的确定方法的典型场景示意图;图4是本发明实施例的一种拼车路线的确定装置的结构示意图。具体实施方式本领域技术人员理解,如
背景技术
所言,现有拼车路线技术方案难以在节省运输成本的同时,保证物流服务质量。本申请发明人经研究发现,在车辆调度中,一些运输车辆无法在出发地至目的地的全部行驶路程中满板运输,当有待运订单时可以利用拼车行为完成多个订单的运输。例如,从出发地装车出发,将多个订单对应的商品依次运往各自的目的地。本领域技术人员理解,拼车问题是在车辆运输形成较大规模后产生的问题。在大规模车辆运输中,解决拼车问题可以降低成本,提高服务质量。目前,在现有的拼车方案中,几乎没有考虑订单交付(ordertodelivery,简称otd)代价对拼车方案造成的不利后果。但是,如果置之不理,otd代价有可能对运输服务质量造成重大影响,难以得到整体行驶路程的最优可行方案。以多个目标经销点拼车为例,如果车辆在运输过程中,从一个出发地出发,经多个目标经销商点完成运输,那么车辆去往所述多个目标经销点进行配送的先后顺序,不但影响总的距离代价,也影响不同订单的otd代价。因此,在运输过程中,降低距离代价(也即路径距离),且使得otd代价处于可接受区间内的拼车顺序就显得尤其重要。本发明实施例提供一种拼车路线的确定方法,包括:确定拼车路线的出发地与各个目标地之间产生的距离代价,并确定各个目标地彼此之间产生的距离代价;确定所述出发地至每一目标地产生的订单交付代价,并确定各个目标地彼此之间产生的订单交付代价;分别将每一目标地作为各个拼车路线的终点保存至动态规划表中,基于所述动态规划表、所述出发地距离各个目标地产生的距离代价、各个目标地彼此之间产生的距离代价,以及所述出发地至每一目标地产生的订单交付代价、各个目标地彼此之间产生的订单交付代价,利用动态规划算法确定各个拼车路线各自的总代价;将各个拼车路线中总代价最小的拼车路线确定为从所述出发地经各个目标地形成的拼车路线。本发明实施例提供的技术方案同时将距离代价和订单交付代价作为约束条件,通过动态规划算法迭代计算得到各个阶段产生的代价,并将各个阶段形成的每一拼车路线中代价最小的拼车路线保存在动态规划表中。在此基础上,逐个加入剩余的目标地计算下一阶段的最小代价,最终得到从所出发地至各个目标地的总代价最小的拼车路线,可以在节省运输成本的同时缩小订单交付代价,保证物流服务质量,提升用户满意度。为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。图1是本发明实施例的一种拼车路线的确定方法的流程示意图。在确定拼车路线之前,可以确定所述拼车路线的出发地以及目的地(例如,车辆运输过程中需要经过的目标经销点)。之后,确定所述拼车路线的拼车顺序。具体地,所述拼车路线的确定方法可以包括以下步骤:步骤s101:确定拼车路线的出发地与各个目标地之间产生的距离代价,并确定各个目标地彼此之间产生的距离代价;步骤s102:确定所述出发地至每一目标地产生的订单交付代价,并确定各个目标地彼此之间产生的订单交付代价;步骤s103:分别将每一目标地作为各个拼车路线的终点保存至动态规划表中,基于所述动态规划表、所述出发地距离各个目标地产生的距离代价、各个目标地彼此之间产生的距离代价,以及所述出发地至每一目标地产生的订单交付代价、各个目标地彼此之间产生的订单交付代价,利用动态规划算法确定各个拼车路线各自的总代价;步骤s104:将各个拼车路线中总代价最小的拼车路线确定为从所述出发地经各个目标地形成的拼车路线。更具体而言,在步骤s101中,通常情况下,运输公司为大型货运车安装全球定位系统(globalpositionsystem,简称gps)定位装置,并通过所述gps定位装置采集gps数据(例如,大型货运车在途的经纬度坐标数据)实现对大型货运车的监控。因而,在途的大型货运车可以产生大量的gps数据。根据车辆产生的历史gps数据,可以确定所述拼车路线的出发地与每个目标地(例如,目标经销点)的路径距离(也即距离代价),以及各个目标地彼此之间的路径距离。作为一个非限制性的例子,假设车辆的出发地为上海,目标地包括多个目标经销点,所述多个目标经销点分别为苏州某经销点、杭州某经销点和南京某经销点。此时,完成从出发地至各个目标经销点的订单配送需确定上海至苏州某经销点的路径距离、上海至杭州某经销点的路径距离、上海至南京某经销点的路径距离以及苏州某经销点至杭州某经销点的路径距离、苏州至南京某经销点的路径距离、杭州某经销点至南京某经销点的路径距离。根据历史gps数据,可以很容易计算出任意两个目标经销点的路径距离。优选地,如果已确定路径距离,则可以保存以备后续直接应用,避免重复计算。在步骤s102中,可以确定完成从出发地至各个目标地的订单产生的订单交付代价(也即otd代价)。所述otd代价可以看成是完成订单交付产生的时间代价。具体而言,可以确定从所述出发地至每一目标地产生的otd代价,以及各个目标地彼此之间产生的otd代价。其中,在运输过程中,订单从所述出发地至每一目标地产生的otd代价可以包括:出厂otd代价和路程otd代价。所述出厂otd代价指的是所述出发地产生的otd代价,例如,生产产品所需的时间代价;所述路程otd代价指的是订单(例如,订单中的产品)在运输过程中产生的otd代价,例如,等待车辆运输产生的时间代价。具体实施中,在确定从所述出发地至各个目标地产生的otd代价时,可以首先确定在所述出发地产生的出厂otd代价,之后确定运输过程中,从所述出发地至每一目标地各自产生的路程otd代价,所述出厂otd代价和每一目标地对应的路程otd代价之和即为从所述出发地至该目标地产生的otd代价。进一步,还可以确定各个目标地彼此之间产生的路程otd代价,也即确定订单在运输过程中,从一个目标地至另一个目标地产生的otd代价。一般而言,车辆在运输过程中,可以认为车辆是匀速行驶的。任意两个目标地彼此之间产生的路程otd代价正比于所述两个目标地彼此之间产生的距离代价。具体实施时,可以通过将路程otd代价乘以系数转换为距离代价。例如,该系数可以为otd代价与距离代价的联系因子,所述联系因子可以为预设常数。仍以目标经销点拼车为例,首先对拼车场景进行定义和建模:令订单出发地为s,目标经销点数量为n,目标经销点的集合为c=[c1,c2,c3….cn],出发地、各个目标经销点之间的距离代价可以形成矩阵d。其中,d[i][j](为简便,下文简写为dij)表示从目标经销点ci至目标经销点cj的距离代价,d[s][i](为简便,下文简写为dsi)表示从出发地s至目标经销点ci的距离代价。作为一个非限制性实施例,定义otd(i,j)表示目标地i与目标地j之间产生的订单交付代价,otd(i,j)=βdij。定义otd(s,j)表示出发地s与目标地j之间产生的订单交付代价,otd(s,j)=βdsj+otdout,其中otdout表示出厂otd代价。进一步地,在确定订单在各个目标地之间产生的路程otd代价之后,可以确定订单从出发地经其他一个或多个目标地至目的地(例如,运输过程中的其他某个目标地)产生的otd代价。作为一个非限制性实施例,假设某次运输次序为q=[ck1,ck2,ck3,…,ckn],则第i个目标经销点的otd代价:oki=otdout+osk1+ok1k2+…ok(i-1)ki=otdout+βdsk1+βdk1k2+…βdk(i-1)ki;其中,otdout表示出厂otd代价,osk1表示出发地至某个目标经销点产生的路程otd代价,ok(i-1)ki表示彼此相邻的两个目标经销点产生的路程otd代价,β表示所述路径距离与所述otd代价的联系因子,β为预设常数。仍以出发地为上海,目标地(例如,目标经销点)分别为苏州某经销点、杭州某经销点和南京某经销点为例。从上海至该苏州某经销点产生的otd代价等于上海产生的出厂otd代价与从上海至苏州某经销点产生的路程otd代价之和;从上海至该杭州某经销点产生的otd代价等于上海产生的出厂otd代价与从上海至杭州某经销点产生的路程otd代价之和;从上海至该南京某经销点产生的otd代价等于上海产生的出厂otd代价与从上海至南京某经销点产生的路程otd代价之和。进一步,如果确定从苏州某经销点至杭州某经销点产生的otd代价、从苏州某经销点至南京某经销点产生的otd代价、从杭州某经销点至南京某经销点产生的otd代价之后可以得到,从上海经苏州某经销点至杭州某经销点产生的otd代价等于上海产生的出厂otd代价、从上海至苏州某经销点产生的路程otd代价以及从苏州某经销点至杭州某经销点产生的otd代价之和。本领域技术人员理解,订单从上海经杭州某经销点至南京某经销点产生的otd代价,或者,其他不同拼车路线产生的otd代价,均可以采用类似方式计算确定,这里不再赘述。在步骤s103中,可以分别将每一目标地作为各个拼车路线的终点保存至动态规划表中,并将距离代价和订单交付代价作为约束条件,利用动态规划算法确定各个拼车路线各自的总代价。具体而言,可以建立动态规划表,该动态规划表可以保存各个阶段计算得到的拼车路线和/或拼车子路线的当前代价。首先,可以将每一目标地作为各个拼车路线的终点保存至动态规划表中。之后,在第1阶段,对于每一拼车路线,可以分别加入剩余的目标地以得到各个子路线。所述剩余的目标地是除所述终点以外的目标地,每一子路线的当前起点即为剩余的目标地。确定第1阶段中各个子路线的当前起点后,可以计算所述当前起点与所述终点之间产生的距离代价和otd代价之和,并可以将所述计算结果确定为该子路线的代价。每一子路线及其代价均可以保存至所述动态规划表中。在第2阶段,对每一拼车路线的各个子路线而言,如果该子路线未加入所有目标地,则可以分别将未加入该子路线的其余目标地确定为该子路线的新起点,并可以基于各个目标地彼此之间产生的otd代价和距离代价,确定第1阶段至当前阶段(也即第2阶段)产生的新增代价。在得到该拼车路线的各个子路线的新增代价之后,可以计算得到所述第1阶段的代价与所述新增代价之和的最小值,并将最小代价作为当前阶段的代价。并且,将代价最小的子路线确定为第2阶段的拼车路线。由上,在第3阶段及后续阶段中,对每一拼车路线而言,将不再有多个子路线。所述动态规划表可以保存代价最小的拼车路线。在第3阶段及后续阶段,对于每一拼车路线而言,如果仍有未加入该拼车路线的目标地,则分别将未加入该拼车路线的其余目标地确定为该拼车路线的新起点,并基于各个目标地彼此之间产生的订单交付代价和距离代价,确定上一阶段至当前阶段的新增代价,并将该拼车路线的新增代价与上一阶段的代价之和的最小值确定为该拼车路线在当前阶段的代价。更新该拼车路线至所述动态规划表中,直至加入所有目标地。在最后阶段,对于每一拼车路线而言,还需将所述出发地加入该拼车路线。基于所述出发地至每一目标地之间产生的订单交付代价和距离代价,可以确定上一阶段至所述最后阶段的新增代价,并将该拼车路线的新增代价与上一阶段的代价之和的最小值确定为该拼车路线在所述最后阶段的总代价,更新该拼车路线至所述动态规划表中。作为一个非限制性实施例,假设当前阶段,拼车路线的起点为目标经销点c,计算经过k个目标经销点所用的动态规划算法的递推公式可以为:q(c,{c[i1],c[i2]…c[ik],ik∈[1,n]})=minj(rk-1[c][ij]+q(ij,{c[i1],c[i2]…c[ik]}-{c[ij]}))其中,q(c,{c[i1],c[i2]…c[ik],ik∈[1,n]})表示起点为目标经销点c,经k个目标经销点确定的拼车顺序。q(ij,{c[i1],c[i2]…c[ik]}-{c[ij]})表示起点为目标经销点ij,经(k-1)个目标经销点确定的拼车顺序。rk-1[c][ij]表示目标经销点c至目标经销点ij从(k-1)阶段至第k阶段的新增代价。rk-1[i][j]表示目标经销点i至目标经销点j从(k-1)阶段至第k阶段的新增代价。(n-k)表示所述剩余目标地及所述出发地的总数,n表示所述出发地和所有目标地的全部数量;m表示所述预设阈值。作为又一个非限制性实施例,假设拼车路线的起点为出发地s,计算经过k个目标经销点所用的动态规划算法的递推公式为:q(s,{c[i1],c[i2]…c[ik],ik∈[1,n]})=minj(rk-1[s][ij]+q(ij,{c[i1],c[i2]…c[ik]}-{c[ij]}))其中,q(s,{c[i1],c[i2]…c[ik],ik∈[1,n]})表示起点为出发地s,经k个目标经销点确定的拼车顺序。q(ij,{c[i1],c[i2]…c[ik]}-{c[ij]})表示起点为目标经销点ij,经(k-1)个目标经销点确定的拼车顺序。rk-1[s][ij]表示出发地s至目标经销点ij从(k-1)阶段至第k阶段的新增代价。rk-1[s][j]表示出发地s至目标经销点j从(k-1)阶段至第k阶段的新增代价。作为一个非限制性实施例,参考图2,所述步骤s103可以包括如下步骤:步骤s1031:对于每一拼车路线,确定该拼车路线剩余目标地及所述出发地的总数;步骤s1032:如果未加入所述拼车路线的剩余目标地及所述出发地的总数小于预设阈值,则基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至每一目标地各自产生的订单交付代价和距离代价,确定基本代价,否则确定加急代价;步骤s1033:将所述基本代价或加急代价确定为所述第(k-1)阶段至所述第k阶段的新增代价。具体而言,在步骤s1031中,对于每一拼车路线,可以计算出当前阶段,未加入该拼车路线的剩余目标地及所述出发地的总数。在步骤s1032中,如果未加入至拼车路线的剩余目标地及所述出发地的总数小于预设阈值(例如,所述预设阈值为4),则可以采用基本代价,否则可以采用加急代价。具体实施中,所述基本代价可以采用如下公式表示:rsj=dsj+otd(s,j),n-k<m,或者,rij=dij+otd(i,j),n-k<m;所述加急代价可以采用如下公式表示:r’sj=dsj+2·otd(s,j),n-k≥m,或者,r’ij=dij+2·otd(i,j),n-k≥m。其中,rsj表示出发地s与目标地j之间产生的基本代价、r’sj表示出发地s与目标地j之间产生的加急代价,rij表示目标地i与目标地j之间产生的基本代价,r’ij表示目标地i与目标地j之间产生的加急代价。本领域技术人员理解,尽管上述公式中,所述加急代价与所述基本代价的不同之处在于otd代价对总代价的贡献不同(例如,所述加急代价中的otd代价的贡献是基本代价中的otd代价的2倍),但是具体实施中,可以根据实际需要变化出更多倍数,这里不再赘述。在步骤s1033中,可以将所述基本代价或所述加急代价确定为所述前一阶段(例如,第(k-1)阶段与当前阶段(第k阶段)产生的新增代价。在步骤s104中,可以将从所述出发地经各个目标地形成的总代价最小的拼车路线确定为最优拼车路线。所述最优拼车路线即为从所述出发地经各个目标地形成的拼车路线。作为一个非限制性实施例,参考图3,车辆出发地s,需经过目标经销点c1、目标经销点c2、目标经销点c3、目标经销点c4和目标经销点c5。如果将每一目标经销点作为拼车路线的终点,其余目标经销点和出发地作为动态规划算法各个阶段的起点,则可以利用动态规划算法确定最优拼车路线。其中,计算所述距离代价与otd代价之和时,如果剩余的目标经销点及出发地的总数超过预设阈值(例如,m=4),则采用加急otd代价,否则采用基本代价。此时,采用动态规划算法确定最优拼车路线的伪代码如下:{初始化动态规划表fori=1至5:for所有i个目标地的拼车路线:对每个阶段,for剩余的目标地:加入每一目标地作为起点,从该阶段中找到相关的拼车路线若剩余目标地总数大于4个,采用加急代价,否则采用基本代价计算加入所述剩余的目标地后,各个拼车路线的代价选择代价最小的拼车路线,保存到动态规划表中加入出发地s,得到完整拼车路线,以及总代价}由上,采用动态规划算法可以将距离代价和otd代价作为约束条件,进行动态迭代,获得最小总代价的最优拼车路线。下面以一辆运输车辆的实际运输过程为例阐述采用动态规划算法确定拼车路线的过程。假设该运输车辆的出发地为s,经过7个目标经销点,分别为目标经销点c1、目标经销点c2、目标经销点c3、目标经销点c4、目标经销点c5、目标经销点c6、目标经销点c7,为简便,表1中分别以s、c1、c2、c3、c4、c5、c6、c7表示。表1给出了各个目标经销点的经纬度信息。其中,运输货物的出厂otd代价为2,路径距离和otd代价的联系因子β为0.025。之后,可以通过动态规划算法对目标经销点的最优路径进行计算。表1地点纬度经度地点纬度经度s31.29298121.1755c431.29888120.5853c132.442813119.62271c531.88919120.3069c231.74265120.0005c633.34406120.1522c331.75169119.9535c732.45046119.4015表2列举了动态规划表中的3个目标地的部分拼车路线,假设cij为直接可达距离,d为所述动态规划表中的储存字段,结合表1和表2,可以得到动态规划算法确定的最优拼车路线:{s、4、5、2、3、1、7、6}(表未示)。亦即,该拼车路线最优解对应的拼车顺序为出发点s、目标经销点c4、目标经销点c5、目标经销点c2、目标经销点c3、目标经销点c1、目标经销点c7、目标经销点c6。并且,通过动态规划算法,可以计算得到考虑otd代价时的最小总代价为414.775,最短距离为391。表2由上,本发明实施例可以同时考虑路径距离和otd代价,并基于动态规划算法确定拼车路线。根据otd代价以及距离代价的双重约束条件,动态规划算法可以快速寻找到可用拼车路线,在节省运输成本的同时,能够保证物流服务质量,提升用户满意度。图4是本发明实施例的一种拼车路线的确定装置的结构示意图,可以实施上述图1至图3所示的拼车路线的确定方法技术方案。具体而言,所述拼车路线的确定装置3可以包括第一确定模块31、第二确定模块32、第三确定模块33和第四确定模块34。更具体而言,所述第一确定模块31适于确定拼车路线的出发地与各个目标地之间产生的距离代价,并确定各个目标地彼此之间产生的距离代价;所述第二确定模块32适于确定所述出发地至每一目标地产生的订单交付代价,并确定各个目标地彼此之间产生的订单交付代价;所述第三确定模块33适于将每一目标地作为各个拼车路线的终点保存至动态规划表中,基于所述出发地距离各个目标地产生的距离代价、各个目标地彼此之间产生的距离代价,以及所述出发地至每一目标地产生的订单交付代价、各个目标地彼此之间产生的订单交付代价,利用动态规划算法确定各个拼车路线各自的总代价;所述第四确定模块34适于将各个拼车路线中总代价最小的拼车路线确定为从所述出发地经各个目标地形成的拼车路线。进一步,所述第二确定模块32可以包括:第一确定子模块321,适于确定所述出发地产生的出厂订单交付代价;第二确定子模块322,适于确定从所述出发地至每一目标地的运输过程中各自产生的路程订单交付代价;第三确定子模块323,适于将所述出厂订单交付代价与每一目标地对应的路程订单交付代价之和确定为从所述出发地至该目标地产生的订单交付代价。进一步,所述第三确定模块33可以包括:第四确定子模块331,适于在第1阶段,对于每一拼车路线,在该拼车路线中分别加入各自剩余的目标地以得到各个子路线的当前起点,将各个子路线的当前起点与所述终点之间产生的订单交付代价以及距离代价之和确定为所述第1阶段各个子路线各自的代价,并将各个子路线存储至所述动态规划表中,所述剩余的目标地是终点以外的目标地,所述子路线是终点和所述剩余的目标地形成的路线;确定更新子模块332,适于在第k阶段,对于每一拼车路线,如果未加入所有目标地和所述出发地,那么对于该拼车路线的每一子路线,分别将未加入该子路线的其余目标地和所述出发地确定为该子路线的新起点,基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至每一目标地产生的订单交付代价和距离代价,确定第(k-1)阶段至第k阶段的新增代价,并将该子路线的新增代价与第(k-1)阶段的代价之和的最小值确定为该拼车路线在第k阶段的代价,更新该拼车路线至所述动态规划表中,直至加入所有目标地和所述出发地为止,k≥2且k为正整数。进一步,所述确定更新子模块332可以包括:第一确定单元3321,适于对于每一拼车路线,确定该拼车路线剩余目标地及所述出发地的数量;第二确定单元3322,如果未加入所述拼车路线的剩余目标地及所述出发地的数量小于预设阈值,则所述第二确定单元3322适于基于各个目标地彼此之间产生的订单交付代价和距离代价,或者基于所述出发地至各个目标地各自产生的订单交付代价和距离代价,确定基本代价,否则确定加急代价;第三确定单元3323,适于将所述基本代价或加急代价确定为所述第(k-1)阶段至所述第k阶段的新增代价;所述基本代价采用如下公式表示:rsj=dsj+otd(s,j),n-k<m,或者,rij=dij+otd(i,j),n-k<m;所述加急代价采用如下公式表示:r’sj=dsj+2·otd(s,j),n-k≥m,或者,r’ij=dij+2·otd(i,j),n-k≥m;其中,rsj表示出发地s与目标地j之间产生的基本代价、r’sj表示出发地s与目标地j之间产生的加急代价,rij表示目标地i与目标地j之间产生的基本代价,r’ij表示目标地i与目标地j之间产生的加急代价,dsj表示出发地s与目标地j之间产生的距离代价,dij表示目标地i与目标地j之间产生的距离代价;otd(s,j)表示出发地s与目标地j之间产生的订单交付代价,otd(i,j)表示目标地i与目标地j之间产生的订单交付代价;(n-k)表示所述剩余目标地及所述出发地的总数,n表示所述出发地和所有目标地的全部数量;m表示所述预设阈值。进一步,任意两个目标地之间产生的订单交付代价正比于所述两个目标地之间产生的距离代价;从所述出发地至每一目标地产生的订单交付代价正比于从所述出发地至该目标地产生的距离代价。进一步,所述任意两个目标地之间产生的订单交付代价采用如下公式确定:otd(i,j)=βdij;所述从所述出发地至每一目标地产生的订单交付代价采用如下公式确定:otd(s,j)=βdsj+otdout;其中,β表示所述距离代价与所述订单交付代价的联系因子,otdout表示所述出厂订单交付代价。关于图4所示的拼车路线的确定装置3的工作原理、工作方式的更多内容,可以一并参照上述图1至图3中的相关描述,这里不再赘述。进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1至图3所示实施例中所述的拼车路线的确定方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述计算机可读存储介质可以包括rom、ram、磁盘或光盘等。进一步地,本发明实施例还公开一种计算设备,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1至图3所示实施例中所述的拼车路线的确定方法技术方案。具体而言,所述计算设备可以为服务器。虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1