订单配送路径的规划方法、装置、计算机介质及电子设备
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种订单配送路径的规划方法、订单配送路径的规划装置,以及实现所述订单配送路径的规划方法的计算机可读存储介质及电子设备。
背景技术
车辆路径问题(Vehicle Routing Problem,简称:VRP)是指一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物,由一个车队负责分送货物,组织适当的行车路径,目标是使得客户的需求得到满足,并能在一定的约束条件下,达到诸如路程最短、成本最小、耗费时间最少等目标。
随着人们环保意识的增强,绿色出行是被倡导的出行方式。例如,油耗型车辆货物配送正逐渐向清洁型车辆(如,电动车辆、清洁能源车辆等)货物配送发展。因此,以下可以以电动车辆为客户配送订单(货物、物品)过程中的VRP为例说明,也可以称作电动车辆路径问题(Electric Vehicle Routing Problem,简称:EVRP)。其中,使用电动车实现订单配送过程中需要借助能源添加来保持电车运力充足,进而确保订单的顺利送达。从而,带有能源添加点(如,充电桩等)的电动车出行是一种新颖的业务场景,规划尽可能最优的满足此业务场景下的车辆出行路径对运力成本、配送时效等均有重大意义。
然而,现有的相关技术中已有的专利和文献中缺乏对大规模新能源电车的配送路径解决方案,尤其是带有能源添加点(如,充电桩等)的电动车路径规划的研究相对较少。同时,现有的相关技术对于实际场景、实际项目应用中出现的大型EVRP问题都未涉及。因此,亟需一种适于实际应用的EVRP问题的解决方案。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种订单配送路径的规划方法、订单配送路径的规划装置,以及实现所述订单配送路径的规划方法的计算机可读存储介质及电子设备,进而至少提供一种适于实际应用的EVRP问题的解决方案。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供了一种订单配送路径的规划方法,包括:
获取关于节点的第一实际状态信息和关于配送车辆的第二实际状态信息,所述节点包括:配送中心站点、能源添加点、订单送达点;
根据所述第一实际状态信息和所述第二实际状态信息确定初选路径集合;
通过摧毁重建算法优化处理所述初选路径集合中至少一条路径中的订单送达点,以规划所述初选路径集合得到优化路径集合。
在本公开的一些实施例中,基于前述方案,所述配送车辆为电动车辆,所述能源添加点为包含至少一个充电桩的充电站。
在本公开的一些实施例中,基于前述方案,所述第一实际状态信息包括:所述节点间的导航信息、距离信息、到达不同节点所需的时间信息、所述节点的时间窗约束信息中的至少一种;
所述第二实际状态信息包括:所述配送车辆的最大载容量、最大载重量、续航里程中的至少一种。
在本公开的一些实施例中,基于前述方案,根据所述第一实际状态信息和所述第二实际状态信息确定初选路径集合,包括:
确定与所述第一实际状态信息相关的第一向量信息,以及与所述第二实际状态信息相关的第二向量信息;
将所述第一向量信息和所述第二向量信息输入贪婪算法,根据贪心算法的输出确定初选路径集合。
在本公开的一些实施例中,基于前述方案,通过摧毁重建算法优化处理所述初选路径集合中至少一条路径中的订单送达点,以规划所述初选路径集合得到优化路径集合,包括:
根据基于密度的聚类算法,在所述初选路径集合中的订单送达点中确定预设数目的摧毁点,并通过移除操作将所述摧毁点从所述初选路径集合中移除,得到中间路径集合;
基于预设策略将所述摧毁点***至所述中间路径集合中,以完成对所述初选路径集合的规划得到优化路径集合。
在本公开的一些实施例中,基于前述方案,基于预设策略将所述摧毁点***至所述中间路径集合中,包括:
基于迭代计算策略,根据对第i次***操作前后的路径集合的配送成本变化情况的比较结果,将所述摧毁点***至所述中间路径集合;其中,i为大于等于1小于等于预设迭代次数的正数。
在本公开的一些实施例中,基于前述方案,根据对第i次***操作前后的路径集合的配送成本变化情况的比较结果,将所述摧毁点***至所述中间路径集合,包括:
对于所述初选路径集合,计算配送成本作为标准值;
将所述摧毁点第i次***所述中间路径集合,得到第i次***操作之后的待评估路径集合;
对于所述第i次***操作之后的待评估路径集合,计算配送成本作为备选值;
响应于所述备选值大于所述标准值,则:
记录所述第i次***操作之后的待评估路径集合;
使用所述备选值更新将所述标准值,并将所述摧毁点第i+1次***所述中间路径集合,直至迭代次数达到所述预设迭代次数,返回被记录的待评估路径集合作为优化路径集合。
在本公开的一些实施例中,基于前述方案,上述订单配送路径的规划方法还包括:
响应于所述备选值小于或等于所述标准值,则将所述摧毁点第i+1次***所述中间路径集合。
在本公开的一些实施例中,基于前述方案,基于预设策略将所述摧毁点***至所述中间路径集合中,包括:
对于任一待***的摧毁点,根据以下公式进行***评分,并根据所述***评分将每一摧毁点***至所述中间路径集合中;
其中,f(x|xp,w0,w1)表示所述中间路径集合评分,
x表示待***的摧毁点,xp表示待***的摧毁点x的优先级,
w0、w1分别表示***所述摧毁点x之前的路径最优配送成本值和次优配送成本值,且满足w0<w1,
s(x,w0)为所述摧毁点x和当前最优配送成本值w0的成本计算子函数,与w0对应的路径起始位置、路径终止站点位置、时间窗窗口距离、时间窗参数相关。
根据本公开实施例的第二方面,提供了一种订单配送路径的规划装置,包括:
状态信息获取模块,用于获取关于节点的第一实际状态信息和关于配送车辆的第二实际状态信息,所述节点包括:配送中心站点、能源添加点、订单送达点;
初选路径集合确定模块,用于根据所述第一实际状态信息和所述第二实际状态信息确定初选路径集合;
路径优化模块,用于通过摧毁重建算法优化处理所述初选路径集合中至少一条路径中的订单送达点,以规划所述初选路径集合得到优化路径集合。
根据本公开实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的订单配送路径的规划方法。
根据本公开实施例的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的订单配送路径的规划方法。
本公开实施例提供的技术方案可以包括以下有益效果:
在本公开的一些实施例所提供的技术方案中,一方面,根据关于节点(包括:配送中心站点、能源添加点、订单送达点)的实际状态信息以及关于配送车辆的实际状态信息确定一初选路径集合,通过实际信息确定的路径集合有利于提高路径规划结果的准确性以及适用性,从而,为实际应用提供优质的路径规划方案。另一方面,在确定初选路径集合之后,通过摧毁重建算法优化处理初选路径集合中的订单送达点,以达到优化路径集合的效果,优化后的路径集合在保证路径可行性的基础上,可以进一步减少配送成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了现有技术中订单配送路径的规划方法的示意图;
图2示意性示出了根据本公开实施例的一种EVRP的使用场景图;
图3示意性示出了根据本公开实施例的初选路径集合的确定方法的流程示意图;
图4示意性示出根据本公开实施例的路径优化方法的流程示意图;
图5示意性示出根据本公开实施例的订单送达点的聚类分布示意图;
图6示意性示出了根据本公开实施例的初选路径集合的确定方法的流程示意图;
图7示意性示出了根据本公开的实施例的订单配送路径的规划装置的结构示意图;
图8示意性示出一种用于实现上述订单配送路径的规划方法的计算机可读存储介质;以及,
图9示意性示出一种用于实现上述订单配送路径的规划方法的电子设备示例框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示意性示出了根据本公开实施例的订单配送路径的规划方法的流程示意图,可以至少提供一种适于实际应用的EVRP问题的解决方案。
其中,本实施例提供的订单配送路径的规划方法的执行主体可以是具有计算处理功能的设备,比如服务器等。
参考图1,该实施例提供的订单配送路径的规划方法,包括:
步骤S101,获取关于节点的第一实际状态信息和关于配送车辆的第二实际状态信息,所述节点包括:配送中心站点、能源添加点、订单送达点;
步骤S102,根据所述第一实际状态信息和所述第二实际状态信息确定初选路径集合;以及,
步骤S103,通过摧毁重建算法优化处理所述初选路径集合中至少一条路径中的订单送达点,以规划所述初选路径集合得到优化路径集合。
在图1所示实施例所提供的技术方案中,一方面,根据关于节点(包括:配送中心站点、能源添加点、订单送达点)的实际状态信息以及关于配送车辆的实际状态信息确定一初选路径集合,通过实际信息确定的路径集合有利于提高路径规划结果的准确性以及适用性,从而,为实际应用提供优质的路径规划方案。另一方面,在确定初选路径集合之后,通过摧毁重建算法优化处理初选路径集合中的订单送达点,以达到优化路径集合的效果,优化后的路径集合在保证路径可行性的基础上,可以进一步减少配送成本。
以下对图1所示实施例中的各个步骤的具体实施方式进行详细阐述。
在示例性的实施例中,上述配送车辆为电动车辆,上述能源添加点为包含至少一个充电桩的充电站。使用电动车实现订单配送过程中,通过充电站桩及时向电动车辆充电,以保持电车运力充足,进而确保订单的准确送达。
示例性的,图2示意性示出了根据本公开实施例的一种EVRP的使用场景图。参考图2,包括至少一个配送中心站点20,配送车辆从配送中心站点20载货(订单),进一步,将订单派送至各个订单送达点(订单送达点21、订单送达点22、…、订单送达点28)。在电动车辆配送订单的路途中,可以通过能量添加点21’、能量添加点22’或能量添加点23’充电,以保证订单被顺利送达对应的订单送达点,以及电动车辆在完成将订单配送至各自对应的订单送达点之后,还有电量返回至配送中心站点20。
需要说明的是,EVRP场景中的配送中心站点不限于一个,当配送车辆从一配送中心站点出发开始配送订单,并能够返回至任一个配送中心站点即可。其中,本公开实施例中以采用一个配送中心站点20为例进行说明,也就是说,配送车辆从配送中心站点20出发开始配送订单,并能够返回至配送中心站点20。
在示例性的实施例中,步骤S101中获取关于节点的第一实际状态信息和关于配送车辆的第二实际状态信息,以用于步骤S102中确定初选路径集合。其中,上述第一实际状态信息包括但不限于:上述节点间的导航信息(如,根据实际路况,由配送中心站点20至订单送到点21的导航路径,或者,由订单送到点21返回至配送中心站点20的导航路径等)、上述节点间的距离信息(如,根据实际路况,由配送中心站点20至订单送到点21的实际路径距离等)、到达不同节点所需的时间信息、不同节点的时间窗约束信息(如,订单送到点22的时间窗为9:30-11:30,若配送车辆9:00到达,则配送车辆提前时间窗的最早时间需等待,从而造成配送成本增加)等。示例性的,上述第一实际状态信息的获取方式可以是:通过爬取的实际物理路网的路况信息来获取上述第一实际状态信息。通过实际路况信息实现EVRP的路径规划,可以使得规划出的路径具有实际使用意义,从而提高了适用性,进而提升用户使用体验。
在示例性的实施例中,上述第二实际状态信息包括但不限于:所述配送车辆的最大载容量、最大载重量、续航里程等。
在示例性的实施例中,步骤S102中根据上述第一实际状态信息和上述第二实际状态信息确定初选路径集合。图3示意性示出了根据本公开实施例的初选路径集合的确定方法的流程示意图,可以用于步骤S102的一种具体实施方式。参考图3,该方法包括:
步骤S301,确定与所述第一实际状态信息相关的第一向量信息,以及与所述第二实际状态信息相关的第二向量信息;以及,
步骤S302,将所述第一向量信息和所述第二向量信息输入贪婪算法,根据贪心算法的输出确定初选路径集合。
在示例性的实施例中,上述第一实际状态信息/第二实际状态信息与规划出的路径需满足的约束有关系。本实施例中,将上述第一实际状态信息转化为相关的第一向量信息,以及将上述第二实际状态信息转化为相关的第二向量信息。从而,将上述向量信息作为贪婪算法的输入数据。以根据贪婪算法的输出确定初始初选路径集合。根据上述第一实际状态信息/第二实际状态信息,上述贪婪算法的输出满足一下约束条件:
履约时间窗约束,如果车辆提前到达时间窗的最早时间则车辆必须等待,从而由于等待增加配送成本;
车辆的最大载容约束;
车辆的最大载重约束;
电动车的行驶里程约束,保证车辆到达充电桩前有大于0的电量,否则认为是不可行解。
例如,参考图2,关于其中一满足预设约束的配送路径:配送中心站点20–路径201–订单送到点24–路径202–能量添加点22’–路径203–订单送到点27–路径203–配送中心站点20。若此过程中,配送车辆在订单送到点24成功配送之后不经过能量添加点22’,而是直接通过路径205去往下一个订单送到点27,则可能会由于续航里程不能满足其达到下一个订单送到点27,进而导致配送失败。因此,订单送到点24–路径205–订单送到点27对应的配送路径则可认为是不可行解。
在示例性的实施例中,将上述第一向量信息和第二向量信息输入贪婪算法之后,根据贪心算法的输出可以确定初选路径集合。其中,初始路径集合中的每一条路径均符合上述约束条件。
在图3所示实施例提供的技术方案中,基于贪婪算法的方式确定初始路径集合。具体点,可以将上述实际状态信息构建约束条件作为贪婪算法的输入,从而将贪婪算法的输出即可确定上述初始路径集合。本实施例提供的技术方案基于实际的物理路况信息爬取点与节点相关的距离数据、导航数据、时间数据等(第一实际状态信息),以及配送车辆本身的性能(第二实际状态信息),在超过1500个节点的大型EVRP场景中,具有良好的适用性。
其中,上述步骤S102得出的初选路径集合可以作为一组初始解,以在初始解的基础上对路径进行优化(即步骤S103),达到在满足约束的基础上进一步节省配送成本的目的。
继续参看图1,在步骤S103中,通过摧毁重建算法优化处理所述初选路径集合中至少一条路径中的订单送达点,以规划所述初选路径集合得到优化路径集合。
其中,摧毁重建(Ruin and Recreate)算法,是指一种在初始解中确定更优解的迭代算法。具体通过迭代操作在初始解中搜索更优解,其中,迭代过程一般包括:通过摧毁(Ruin)策略选取破坏的节点集合,即摧毁点,然后通过重建(Recreate)策略将摧毁点再次***到路径中的过程,以使结果更优(本技术方案中具体指配送成本更低)。
本技术方案中,采用上述Ruin and Recreate算法,具体包括:在初始解(初选路径集合)的基础上通过Ruin策略以及Recreate策略寻找更优解,即迭代搜索配送成本最低的路径集合,即实现对初选路径的优化,得到优化路径集合。配送车辆使用优化路径集合进行订单配送时不仅可以满足预设约束条件,还可以尽量地降低配送成本。
在示例性的实施例中,图4示意性示出根据本公开实施例的路径优化方法的流程示意图,可以用于步骤S103的一种具体实施方式。具体为在初始解(初选路径集合)的基础上通过Ruin and Recreate策略寻找更优解,迭代搜索最优解,寻找到满足最优化条件的更好的规划路径,迭代过程包括:通过Ruin策略选取破坏的节点集合(摧毁点),然后通过Recreate策略将摧毁点再次***到路径中的过程。
具体参考图4,该方法包括:
步骤S401,根据基于密度的聚类算法,在所述初选路径集合中的订单送达点中确定预设数目的摧毁点;
步骤S402,通过移除操作将所述摧毁点从所述初选路径集合中移除,得到中间路径集合;以及,
步骤S403,基于预设策略将所述摧毁点***至所述中间路径集合中,以完成对所述初选路径集合的规划得到优化路径集合。
在示例性的实施例中,上述摧毁点是指初选路径集合中的一部分订单送达点。由于这些订单送达点在当前路径中所处的分布位置导致当前配送成本未达到最优,因此需在初选路径集合中确定摧毁点(一部分订单送达点),然后,在更新这些摧毁点在路径集合中的分布位置。之后,再次将其***至更新后的分布位置处。从而,实现对上述初选路径集合的优化,以达到降低配送成本的目的。
其中,可以采用上述聚类算法在初始路径集合中确定上述摧毁点。
在示例性的实施例中,步骤S401中采用具有噪声的基于密度的聚类方法(Density-Based Spatial Clustering of Applications with Noise,简称:DBSCAN)在所述初选路径集合中的订单送达点中确定预设数目的摧毁点。其中,DBSCAN既可以适用于凸样本集,也可以适用于非凸样本集,从而能够更加适应实际的订单送达点的分布状态,并从中选取出摧毁点。
相对于订单送达点分布密度较低的区域,在订单送达点分布密度较高的区域中配送车辆的需电量高的概率越大。从而,在订单送达点分布密度较高的区域中选取预设数目的订单送达点作为摧毁点,以提高配送过程中电动车辆能够获取到有效的充电桩进行能来补充。
示例性的,图5示意性示出根据本公开实施例的订单送达点的聚类分布示意图。参考图5,根据预设的算法超参数:簇的密度半径,簇内最小样本个数(如,2个)对订单送达点进行DBSCAN聚类,参考图5形成簇51(包含订单送达点25、订单送达点23)、簇52(包含订单送达点22、订单送达点23)、簇53(包含订单送达点26、订单送达点28)。
其中图5的右上角的订单送达点23既属于簇51也属于簇52,则为订单送达点22、订单送达点23、订单送达点25可划分为同一个簇的样本。根据预设的摧毁点数目选取摧毁点时,假定从右上角的簇中选取2个待破坏节点,则可以选择订单送达点25和订单送达点23,还可以选择包含订单送达点22和订单送达点23,等。
在示例性的实施例中,通过DBSCAN聚类选取需要指定破坏的解(摧毁点)时,如果选取到能量添加点,则需要重新选取一个订单送达点。如果第一次迭代选取失败,则需要第二次,直到选取预先设定的摧毁节点的个数,如果达到预设迭代次数后还未满足预设摧毁点数目的要求,则将预设摧毁点数目自动减1。可见,在步骤S401中Ruin策略考虑了能量添加点的特殊性而不将其作为摧毁点,另外还使用密度聚类和动态地调整摧毁点个数来满足实际应用中算法快速计算响应得出质量优秀的解,且算法具备很好的鲁棒性的要求。
在示例性的实施例中,继续参考图4,确定摧毁点之后,在步骤S402中通过移除操作将所述摧毁点从所述初选路径集合中移除,得到中间路径集合。进一步地,在步骤S403中,基于预设策略将所述摧毁点***至所述中间路径集合中,以完成对所述初选路径集合的规划得到优化路径集合。
示例性的,上述预设策略可以是迭代计算策略,根据对第i次***操作前后的路径集合的配送成本变化情况的比较结果,将所述摧毁点***至所述中间路径集合;其中,i为大于等于1小于等于预设迭代次数M的正数。
在示例性的实施例中,图6示意性示出了根据本公开实施例的初选路径集合的确定方法的流程示意图,可以用于步骤S403中上述预设策略可以是迭代计算策略的一种具体实施方式。参考图6,该方法包括步骤S601-步骤606。
在步骤S601中,对于所述初选路径集合,计算配送成本作为标准值。
在示例性的实施例中,对于贪婪算法输出的初始解对应的初选路径集合,计算基于此初始路径集合的配送成本X0,可以将此配送成本X0记作标准值X0。用于将摧毁点***中间路径集合后形成的路径集合(即待评估路径集合)的配送成本进行比较。
在步骤S602中,将所述摧毁点第i次***所述中间路径集合,得到第i次***操作之后的待评估路径集合。
在示例性的实施例中,向中间路径集合中***上面步骤中选取的摧毁点之后是否违反了上述预设约束。例如,如果违反了节点所在线路的车辆最大里程约束、最大载容载重约束,或时间窗约束,则判断***操作视频失败。示例性的,对于同一摧毁点,如果对其***操作连续失败的次数大于预设值N时,仍然找不到满足预设约束的***位置,则认为此次迭代未找到可行解。其中,N值的设定主要考虑难度系数,路径点数,路径数等因素,本实施例采用动态调整寻找次数超参数N值,进而加速搜索更优解。
在示例性的实施例中,若判断向中间路径集合中***上面步骤中选取的摧毁点之后符合上述预设约束,则得到第i次***操作之后的待评估路径集合。
在步骤S603中,对于所述第i次***操作之后的待评估路径集合,计算配送成本作为备选值Xi。
在示例性的实施例中,对于第i次***操作之后的待评估路径集合,计算配送成本X0,并可以将其作为备选值,与步骤S601的标准值X0进行比较大小。
示例性的,响应于所述备选值Xi小于所述标准值X0,则执行步骤S605-步骤S607。
在步骤S605中,记录所述第i次***操作之后的待评估路径集合。
在步骤S606中,使用所述备选值Xi更新将所述标准值X0,直至迭代次数达到所述预设迭代次数M,返回被记录的待评估路径集合作为优化路径集合。
在步骤S607中,将i赋值为i+1,并循环执行步骤S602-步骤S604。也就是说,执行步骤将所述摧毁点第i+1次***所述中间路径集合,进一步判断第i+1次***所述中间路径集合的配送成本与更新后的标准值的大小关系。
示例性的,响应于所述备选值Xi不小于所述标准值X0,则直接执行步骤S607。
在图6所示实施例提供的技术方案中,在初始解(初选路径集合)的基础上通过Ruin and Recreate策略寻找更优解,即迭代搜索配送成本最低的路径集合,即实现对初选路径的优化,得到优化路径集合。配送车辆使用优化路径集合进行订单配送时不仅可以满足上述各个预设约束条件,还可以尽量地降低配送成本。从而有利于提升用户体验。
在示例性的实施例中,基于预设策略将所述摧毁点***至所述中间路径集合中时,使用梯度下降法评价当前***的摧毁点。
示例性的,对于任一待***的摧毁点,根据以下公式进行***评分,
其中,f(x|xp,w0,w1)表示所述中间路径集合评分,
x表示待***的摧毁点,xp表示待***的摧毁点x的优先级,
w0、w1分别表示***所述摧毁点x之前的路径最优配送成本值和次优配送成本值,且满足w0<w1,
s(x,w0)为所述摧毁点x和当前最优配送成本值w0的成本计算子函数,与w0对应的路径起始位置、路径终止站点位置、时间窗窗口距离、时间窗参数相关。
进一步地,根据当前***的摧毁点在不同位置处得到的***评分确定最终***位置,即根据上述***评分确定每一摧毁点的最佳***位置,最终实现将每一摧毁点***至中间路径集合中,以得到上述待评估路径集合。
在图6所示实施例提供的技术方案中,本专利设计的算法解决了一个有实际应用场景的大规模EVRP问题,场景涉及到的客户点数达到至少1200个以上,有揽收、有配送,距离和时间不满足三角性质。进一步,问题可以抽象为带有充电桩,带有时间窗约束,载容约束、载重约束、最大行驶距离约束,揽、派一体约束,车辆数约束,节点个数超过1200个的大规模VRP问题,本方案基于贪心构建初始解,然后基于Ruin-Recreate思想,根据DBSCAN聚类选取破坏点,然后采用Radiate策略***摧毁点。本技术方案能够满足实际应用中对算法快速计算响应得出质量优秀的解的要求,同时能够满足算法具备很好的鲁棒性的要求。
以下介绍本公开的装置实施例,可以用于执行本公开上述的订单配送路径的规划方法。
图7示意性示出了根据本公开的实施例的订单配送路径的规划装置的结构示意图。参考图7,上述订单配送路径的规划装置700,包括:状态信息获取模块701、初选路径集合确定模块702,以及路径优化模块703。
状态信息获取模块701,用于获取关于节点的第一实际状态信息和关于配送车辆的第二实际状态信息,所述节点包括:配送中心站点、能源添加点、订单送达点;
初选路径集合确定模块702,用于根据所述第一实际状态信息和所述第二实际状态信息确定初选路径集合;
路径优化模块703,用于通过摧毁重建算法优化处理所述初选路径集合中至少一条路径中的订单送达点,以规划所述初选路径集合得到优化路径集合。
在示例性的实施例中,基于前述方案,所述配送车辆为电动车辆,所述能源添加点为包含至少一个充电桩的充电站。
在示例性的实施例中,基于前述方案,所述第一实际状态信息包括但不限于:所述节点间的导航信息、距离信息、到达不同节点所需的时间信息、所述节点的时间窗约束信息;
所述第二实际状态信息包括但不限于:所述配送车辆的最大载容量、最大载重量、续航里程。
在示例性的实施例中,基于前述方案,初选路径集合确定模块702,具体用于:
确定与所述第一实际状态信息相关的第一向量信息,以及与所述第二实际状态信息相关的第二向量信息;以及,
将所述第一向量信息和所述第二向量信息输入贪婪算法,根据贪心算法的输出确定初选路径集合。
在示例性的实施例中,基于前述方案,路径优化模块703,包括:摧毁点确定单元、移除单元和***单元。
其中,摧毁点确定单元,用于根据基于密度的聚类算法,在所述初选路径集合中的订单送达点中确定预设数目的摧毁点;
移除单元,用于通过移除操作将所述摧毁点从所述初选路径集合中移除,得到中间路径集合;
***单元,用于基于预设策略将所述摧毁点***至所述中间路径集合中,以完成对所述初选路径集合的规划得到优化路径集合。
在示例性的实施例中,基于前述方案,***单元,具体用于:
基于迭代计算策略,根据对第i次***操作前后的路径集合的配送成本变化情况的比较结果,将所述摧毁点***至所述中间路径集合;其中,i为大于等于1小于等于预设迭代次数的正数。
在示例性的实施例中,基于前述方案,***单元,包括:第一计算子单元、***子单元、第二计算子单元、第一响应子单元。
其中,第一计算子单元,用于对于所述初选路径集合,计算配送成本作为标准值;
***子单元,用于将所述摧毁点第i次***所述中间路径集合,得到第i次***操作之后的待评估路径集合;
第一计算子单元,用于对于所述第i次***操作之后的待评估路径集合,计算配送成本作为备选值;
第一响应子单元,用于响应于所述备选值大于所述标准值,则进行:
记录所述第i次***操作之后的待评估路径集合;以及,
使用所述备选值更新将所述标准值,并将所述摧毁点第i+1次***所述中间路径集合,直至迭代次数达到所述预设迭代次数,返回被记录的待评估路径集合作为优化路径集合。
在示例性的实施例中,基于前述方案,上述订单配送路径的规划装置700,包括:第二响应子单元,用于响应于所述备选值小于或等于所述标准值,则将所述摧毁点第i+1次***所述中间路径集合。
在示例性的实施例中,基于前述方案,***子单元具体还用于:
对于任一待***的摧毁点,根据以下公式进行***评分,并根据所述***评分将每一摧毁点***至所述中间路径集合中;
其中,f(x|xp,w0,w1)表示所述中间路径集合评分,
x表示待***的摧毁点,xp表示待***的摧毁点x的优先级,
w0、w1分别表示***所述摧毁点x之前的路径最优配送成本值和次优配送成本值,且满足w0<w1,
s(x,w0)为所述摧毁点x和当前最优配送成本值w0的成本计算子函数,与w0对应的路径起始位置、路径终止站点位置、时间窗窗口距离、时间窗参数相关。
由于本公开的示例实施例的订单配送路径的规划装置的各个功能模块与上述订单配送路径的规划方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的索引的实施例。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的订单配送路径的规划方法。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图8所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于:电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
下面参照图9来描述根据本公开的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同***组件(包括存储单元920和处理单元910)的总线930。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图1中所示的:步骤S101,获取关于节点的第一实际状态信息和关于配送车辆的第二实际状态信息,所述节点包括:配送中心站点、能源添加点、订单送达点;步骤S102,根据所述第一实际状态信息和所述第二实际状态信息确定初选路径集合;步骤S103,通过摧毁重建算法优化处理所述初选路径集合中至少一条路径中的订单送达点,以规划所述初选路径集合得到优化路径集合。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(ROM)9203。
存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。