一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

配送调度方法、装置、电子设备及存储介质与流程

2022-02-24 17:51:31 来源:中国专利 TAG:


1.本技术实施例涉及互联网技术领域,特别是涉及一种配送调度方法、装置、电子设备及存储介质。


背景技术:

2.外卖配送是近年来发展迅速的o2o(online to offline,线上到线下)商业模式。在这种商业模式中,配送运力与订单的合理指派关系决定着用户的体验及配送运力的配送效率。然而随着外卖配送行业发展的迅速,调度算法的挑战是要在匹配规模巨大的场景下,提供合理的订单与配送运力的匹配关系。
3.目前订单的指派是由路径优化算法得到配送运力配送订单的路径,之后根据路径刻画配送运力与订单的匹配关系,最终形成派单方案,将订单指派给合适的配送运力。因此订单配送调度问题可分为两个子问题独立求解,即合理规划配送运力配送订单的路径规划算法和根据路径规划结果确定指派方案的派单算法。目前指派算法规则为每次把调度指标最优的订单分配给相应的配送运力进行配送,直至当前所有订单全部分配完毕,即采用贪心算法。尽管贪心算法在一定程度上能找到较优的解,但随着求解规模的增加,贪心算法求解质量会下降,离最优解的差距会变大,而且由于贪心指派算法在动态的决策过程中只考虑当前调度的最优配送运力和订单的匹配组合,未考虑对其他订单和配送运力的影响,导致在后续的指派过程中产生相对较不合理的分配方案,全局最优性差,影响配送运力的配送效率。


技术实现要素:

4.本技术实施例提供一种配送调度方法、装置、电子设备及存储介质,有助于提高配送运力的配送效率。
5.为了解决上述问题,第一方面,本技术实施例提供了一种配送调度方法,包括:
6.获取多个待分配订单和对应的多个候选配送运力;
7.分别确定将每个待分配订单分配给每个候选配送运力时,每个候选配送运力的最优路径;
8.根据所述将每个待分配订单分配给每个候选配送运力时该候选配送运力的最优路径,确定将每个待分配订单分配给每个候选配送运力的评价指标值;
9.根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值;
10.将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力。
11.第二方面,本技术实施例提供了一种配送调度装置,包括:
12.调度对象获取模块,被配置成用于获取多个待分配订单和对应的多个候选配送运力;
13.最优路径确定模块,被配置成用于分别确定将每个待分配订单分配给每个候选配
送运力时,每个候选配送运力的最优路径;
14.评价指标确定模块,被配置成用于根据所述将每个待分配订单分配给每个候选配送运力时该候选配送运力的最优路径,确定将每个待分配订单分配给每个候选配送运力的评价指标值;
15.后悔值确定模块,被配置成用于根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值;
16.订单分配模块,被配置成用于将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力。
17.第三方面,本技术实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本技术实施例所述的配送调度方法。
18.第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本技术实施例公开的配送调度方法的步骤。
19.本技术实施例提供的配送调度方法、装置、电子设备及存储介质,通过分别确定将每个待分配订单分配给每个候选配送运力时,每个候选配送运力的最优路径,进而确定将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值,将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力,由于通过后悔值考虑了当前指派对未来调度的影响,可以防止算法陷入局部极小,可以提升派单质量,进而提高配送运力的配送效率,提升用户体验。
附图说明
20.为了更清楚地说明本技术实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例一的配送调度方法的流程图;
22.图2是本技术实施例二的配送调度方法的流程图;
23.图3a-3c是本技术实施例中的变异处理的示意图;
24.图4a-4c是本技术实施例中的交叉处理的示意图;
25.图5是本技术实施例三的配送调度装置的结构示意图;
26.图6是本技术实施例四的电子设备的结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.实施例一
29.本实施例提供一种配送调度方法,该配送调度方法适用于外卖配送等需要实时配送的领域,如图1所示,该方法包括:步骤110至步骤150中的一个或多个。
30.步骤110,获取多个待分配订单和对应的多个候选配送运力。
31.对于一个配送运力而言一般会负责一个对应区域的货物的配送,因此,可以对一个区域的待分配订单进行统一的配送调度,这时可以获取到多个待分配订单和对应的多个候选配送运力。
32.步骤120,分别确定将每个待分配订单分配给每个候选配送运力时,每个候选配送运力的最优路径。
33.将一个待分配订单分配给一个候选配送运力时,该候选配送运力可以有多种路径来对待分配订单和已分配到但未配送的订单进行配送,可以计算每种路径对应的评价指标值,确定评价指标值最优的一个路径,作为将该待分配订单分配给该候选配送运力时该候选配送运力的最优路径。
34.在确定最优路径时,可以采用组合的启发式规则,如排序、插入等,来生成将一个待分配订单分配给一个候选配送运力时该候选配送运力的最优路径,即可以采用贪心算法来确定最优路径。当然,除了采用贪心算法来确定最优路径之外,还可以采用其他方式来确定最优路径,例如可以采用种群初始化、变异和交叉的方式来确定。
35.步骤130,根据所述将每个待分配订单分配给每个候选配送运力时该候选配送运力的最优路径,确定将每个待分配订单分配给每个候选配送运力的评价指标值。
36.其中,评价指标用于评价一个配送路径的优劣,例如可以将超时时间和配送路径的总路程之和作为评价指标,超时时间的单位为分钟,总路程的单位为千米。
37.将每个待分配订单分配给每个候选配送运力时对应一个最优路径,基于评价指标的计算方式确定每个最优路径的评价指标值,得到将每个待分配订单分配给每个候选配送运力的评价指标值,基于多个待分配订单和多个候选配送运力,可以得到评价指标值组成的一个评价指标矩阵,例如,将订单作为行,将候选配送运力作为列,从而可以得到一个评价指标矩阵。例如,有5个待分配订单,3个候选配送运力,可以得到一个5行3列的评价指标矩阵,评价指标矩阵中的元素a
ij
为将第i个待分配订单分配给第j个候选配送运力时的评价指标值,i=1,2,3,4,5,j=1,2,3。
38.步骤140,根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值。
39.其中,在评价指标为超时时间和配送路径的总路程之和时,最优评价指标值为最小的评价指标值,即超时时间和总路程之和越小表示配送路径越好。
40.在得到将每个待分配订单分配给每个候选配送运力的评价指标值后,可以确定一个待分配订单对应每个候选配送运力的评价指标值,这其中包括最优评价指标值,这时,可以根据该待分配订单对应每个候选配送运力的评价指标值,确定将该待分配订单分配给最优评价指标值之外的其他候选配送运力时对应的后悔值,例如可以将次优评价指标值与最优评价指标值之差作为后悔值。
41.在本技术的一个实施例中,所述根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对
应的后悔值,包括:根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单对应的最优评价指标值和次优评价指标值;将每个待分配订单对应的次优评价指标值与最优评价指标值的差值,作为待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值。
42.对于一个待分配订单,如果不将该待分配订单分配给最优评价指标值对应的候选配送运力,很可能在下一轮派单时把该待分配订单分配给次优评价指标值对应的候选配送运力,因此将次优评价指标值和最优评价指标值的差值,作为该待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值,对于每一个待分配订单,分别按照上述方式确定对应的后悔值。基于该方式确定的后悔值较为准确,从而可以进一步提升配送运力的配送效率。
43.步骤150,将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力。
44.当把一个待分配订单分配给一个候选配送运力后,剩余待分配订单分配给该候选配送运力得到的评价指标值会得到更新和改变,从而影响剩余待分配订单的指派,也间接影响了待分配订单的指派结果。为了在派单的过程中考虑对后续指派结果的影响,本技术实施例引入后悔值作为派单依据的指标,通过后悔值来综合考虑分配不同待分配订单之间的影响,每次选择后悔值最大的待分配订单进行分配,可以取得比贪婪指派算法更好的效果。
45.次优评价指标值和最优评价指标值相差越大,说明如果不把该待分配订单分配给最优评价指标值对应的候选配送运力要付出的代价越大,也即后悔程度越高,因此更应当将该后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力。
46.在将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力后,会影响将其他待分配订单分配给该候选配送运力的最优路径和评价指标值,因此,需要重新确定其他待分配订单分配给该候选配送运力的最优路径以及重新计算评价指标值和后悔值,并基于后悔值进行下一轮的订单指派。
47.本技术实施例提供的配送调度方法,通过分别确定将每个待分配订单分配给每个候选配送运力时,每个候选配送运力的最优路径,进而确定将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值,将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力,由于通过后悔值考虑了当前指派对未来调度的影响,可以防止算法陷入局部极小,可以提升派单质量,进而提高配送运力的配送效率,提升用户体验。
48.实施例二
49.本实施例提供一种配送调度方法,该配送调度方法适用于外卖配送等需要实时配送的领域,如图2所示,该方法包括:步骤201至步骤211中的一个或多个。
50.步骤201,获取多个待分配订单和对应的多个候选配送运力。
51.步骤202,从多个待分配订单中确定一个待分配订单,作为当前待分配订单,并从多个候选配送运力中确定一个候选配送运力作为当前候选配送运力。
52.针对每个待分配订单和每个候选配送运力,来分别确定与该待分配订单和候选配送运力对应的最优路径。
53.步骤203,确定将当前待分配订单分配给所述当前候选配送运力时当前候选配送运力对应的预设数量的配送路径,并从预设数量的配送路径中确定一个最优路径,作为初始的迭代最优路径,将所述配送路径作为迭代目标路径。
54.通过种群初始化,来确定将当前待分配订单分配给当前候选配送运力时,当前候选配送运力对应的预设数量的配送路径。在确定当前候选配送运力对应的预设数量的配送路径后,计算每个配送路径的评价指标值,在评价指标为超时时间与配送路径总路程之和时,确定评价指标值最小的配送路径为最优路径,将该最优路径作为初始的迭代最优路径,用于在与后续迭代变异交叉处理得到的新配送路径进行比较,更新迭代最优路径。将配送路径作为迭代目标路径,用于进行后续的迭代变异交叉处理。
55.在本技术的一个实施例中,所述确定将当前待分配订单分配给所述当前候选配送运力时当前候选配送运力对应的预设数量的配送路径,包括:
56.根据所述当前待分配订单和所述当前候选配送运力的待配送订单的预计送达时间,确定将当前待分配订单分配给当前候选配送运力时当前候选配送运力对应的一个配送路径,并随机生成其他配送路径,得到当前候选配送运力对应的预设数量的配送路径。
57.其中,当前候选配送运力的待配送订单是已分配给当前候选配送运力但未完成配送的订单。
58.在进行种群初始化时,通过启发式规则生成一个配送路径,并随机生成其他配送路径,得到预设数量的配送路径,预设数量的配送路径作为一个种群。通过启发式规则生成配送路径时,可以根据当前待分配订单和当前候选配送运力的待配送订单的紧迫程度来确定配送路径,各个订单的紧迫程度可以通过各个订单的预计送达时间来衡量,因此可以根据各个订单的预计送达时间来确定配送路径,即按照预计送达时间从早到晚的顺序对各个订单中的取货地址和收货地址进行排序,以生成配送路径。通过使用启发式规则生成一个配送路径,可以保证种群中的个体(配送路径)质量,同时随机生成其他配送路径,可以提高解的多样性。
59.在本技术的一个实施例中,所述根据所述当前待分配订单和所述当前候选配送运力的待配送订单的预计送达时间,确定将当前待分配订单分配给当前候选配送运力时当前候选配送运力对应的一个配送路径,包括:将所述当前候选配送运力的待配送订单中已完成取货的待配送订单中的送货地址作为第一集合;将所述当前待分配订单的取货地址和送货地址,以及所述当前候选配送运力的待配送订单中未取货的待配送订单中的取货地址和送货地址作为第二集合;根据所述第一集合和第二集合,拼接所述第一集合中的送货地址以及所述第二集合中的取货地址和送货地址,得到拼接序列;根据所述拼接序列中的各个取货地址和送货地址,确定当前候选配送运力对应的配送路径。
60.可以预先对各个地址(包括取货地址和送货地址)进行编码,如可以将各个地址编码为数字标识,即可以通过数字标识来表示各个地址。由于已完成取货的待配送订单的紧迫程度要高于未取货的待配送订单和待分配订单,因此,将订单是否已完成取货来将订单中的地址分为两个集合,即将已完成取货的待配送订单中的送货地址放入第一集合,将未取货的待配送订单中的取货地址和送货地址,以及当前待分配订单的取货地址和送货地址放入第二集合。之后,按照第一集合中每个待配送订单的预计送达时间,对第一集合中的每个待配送订单的送货地址进行排序,得到第一序列,按照第二集合中当前待分配订单和每
个待配送订单的预计送达时间,对第二集合中的当前待分配订单和每个待配送订单的取货地址和送货地址进行排序,得到第二序列,拼接第一序列和第二序列,得到拼接序列。按照总路程最短和超时时间最短的原则,排列拼接序列中的各个取货地址和送货地址,来生成当前候选配送运力对应的一个配送路径。
61.其中,配送路径的编码规则为第几个地址对应在配送路径中的哪个位置,如配送路径包括的取货地址和送货地址的数字标识按照顺序分别为0,1,3,2,则0表示当前候选配送运力的当前位置,1表示当前候选配送运力第一个要到达的地址,3表示当前候选配送运力第二个要到达的地址,2表示当前候选配送运力第三个要到达的地址。
62.在按照第一集合中每个待配送订单的预计送达时间,对第一集合中的每个待配送订单的送货地址进行排序,得到第一序列时,具体可以按照第一集合中每个待配送订单的预计送达时间从早到晚的顺序或者从晚到早的顺序,对第一集合中的每个待配送订单的送货地址进行排序,得到第一序列。在按照第二集合中当前待分配订单和每个待配送订单的预计送达时间,对第二集合中的当前待分配订单和每个待配送订单的取货地址和送货地址进行排序,得到第二序列时,具体可以按照第二集合中当前待分配订单和每个待配送订单的预计送达时间从早到晚的顺序或者从晚到早的顺序,对第二集合中的当前待分配订单和每个待配送订单的取货地址和送货地址进行排序,得到第二序列。但是,得到第一序列和得到第二序列时,按照每个订单的预计送达时间的顺序是相同的,即得到第一序列时按照预计送达时间从早到晚的顺序,则得到第二序列时也按照预计送达时间从早到晚的顺序;得到第一序列时若按照预计送达时间从晚到早的顺序,则得到第二序列时也按照预计送达时间从晚到早的顺序。
63.其中,所述根据所述第一集合和第二集合,拼接所述第一集合中的送货地址以及所述第二集合中的取货地址和送货地址,得到拼接序列,包括:按照所述第一集合中每个待配送订单的预计送达时间从早到晚的顺序,对第一集合中每个待配送订单的送货地址进行排序,得到第一序列;按照第二集合中当前待分配订单和每个待配送订单的预计送达时间从早到晚的顺序,对第二集合中当前待分配订单和每个待配送订单的取货地址和送货地址进行排序,得到第二序列;将所述第二序列拼接在所述第一序列后面,得到拼接序列。
64.按照第一集合中的各个送货地址对应待配送订单的预计送达时间从早到晚的顺序,来对第一集合中的送货地址进行排序,得到第一序列,按照第二集合中各个地址对应的当前待分配订单或每个待配送订单的预计送达时间从早到晚的顺序,对第二集合中的取货地址和送货地址进行排序,得到第二序列。由于第一集合中的订单的紧迫程度要高于第二集合中的订单的紧迫程度,因此,将第二序列拼接在第一序列后面,得到整合后的拼接序列。按照预计送达时间从早到晚的顺序来进行排序,方便后续的计算。
65.在本技术的一个实施例中,所述根据所述拼接序列中的各个取货地址和送货地址,确定当前候选配送运力对应的配送路径,包括:
66.将所述拼接序列中的取货地址或送货地址按顺序插入至当前候选配送运力取送点序列中评价指标值最优的位置中,直至确定拼接序列中的所有取货地址和送货地址在取送点序列中的位置,将取送点序列作为当前候选配送运力对应的配送路径。
67.其中,评价指标可以为上述的超时时间和总路程之和,评价指标值最优即评价指标值最小。
68.按照拼接序列中的各个地址的顺序,将拼接序列中的各个地址依次插入至当前候选配送运力取送点序列中评价指标值最优的位置,即在向取送点序列中每次插入一个地址时需要计算可能的多种结果的评价指标值,选取评价指标值最优的一个结果,作为该地址的插入位置,并将该地址插入至取送点序列中对应的插入位置,直至确定拼接序列中的所有地址在取送点序列中的位置,确定拼接序列中的所有地址在取送点序列中的位置后,该取送点序列就是得到的当前候选配送运力的配送路径。通过这种方式确定的配送路径是评价指标值最优的路径,从而可以保证种群中的个体质量。
69.例如,拼接序列中包括的地址按照顺序分别为1,2,3,当前候选配送运力的当前位置即起始路径点为0,则在未插入拼接序列中的地址时,当前候选配送运力的取送点序列中就包括0这一个位置;接下来将拼接序列中的各个地址依次插入至取送点序列中,首先将拼接序列中的第一个地址1插入取送点序列,将1插入至取送点序列中的0之后,得到取送点序列为0,1;之后,将拼接序列中的第二个地址2插入取送点序列,这时会有两种结果,即2可以插入至0和1之间,也可以插入至1之后,从而得到两种路径,即0,2,1和0,1,2,计算这两种路径的评价指标值,若第一种路径的评价指标值优于第二种路径的评价指标值,则确定将2插入至取送点序列的0和1之间,插入之后,取送点序列更新为0,2,1;之后,将拼接序列中的第三个地址3插入取送点序列,这时会有三种结果,即3可以插入至0和2之间,也可以插入至2和1之间,还可以插入至1之后,从而得到三种路径,即0,3,2,1、0,2,3,1和0,2,1,3,计算这三种路径的评价指标值,若第二种路径的评价指标值由于第一种路径和第二种路径的评价指标值,则确定将3插入至取送点序列的2和1之间,插入之后,取送点序列更新为0,2,3,1,至此,将拼接序列中的所有地址均插入至取送点序列中,从而取送点序列0,2,3,1即为当前候选配送运力的配送路径。
70.步骤204,基于离散差分算子,对所述预设数量的迭代目标路径进行变异处理,并采用局部搜索方式对变异处理后得到的变异路径进行交叉处理,生成预设数量的新配送路径。
71.变异操作主要基于离散差分算子,通过提取不同个体(即迭代目标路径)之间的差分信息对种群进化提供方向。经离散差分算子产生的变异路径可能包含重复的点,并非合法解,因此需通过交叉操作产生合法子代个体,即产生新配送路径。
72.在本技术的一个实施例中,所述基于离散差分算子,对所述预设数量的迭代目标路径进行变异处理,包括:
73.基于离散差分算子,按照如下公式对预设数量的迭代目标路径进行变异处理,得到变异路径:
[0074][0075]
其中,v
x
为变异路径,和为从所述预设数量的迭代目标路径中随机选取的三个路径,f为差分放大系数,n为迭代目标路径中的路径点数,符号和的运算方式分别如下:
[0076]
[0077][0078]
其中,

x
为差分向量,为差分向量

x
中的第h个元素,为路径xb中的第h个路径点,为路径xc中的第h个路径点,为变异路径v
x
中的第h个路径点,rand(h)为[0,1)之间的随机小数。
[0079]
首先从所述预设数量的迭代目标路径中随机选取三个迭代目标路径,分别作为第一路径xa、第二路径xb和第三路径xc;基于离散差分算子,按照上述公式对所述第一路径xa、第二路径xb和第三路径xc进行变异处理,即首先根据第二路径xb和第三路径xc计算差分向量

x
,之后基于第一路径xa和差分向量

x
计算得到变异路径v
x
。其中,差分放大系数f是可以调节的,即可以根据需要确定f。
[0080]
图3a-3c是本技术实施例中的变异处理的示意图,如图3a-3c所示,第一路径xa为0,3,4,5,1,2,第二路径xb为0,3,1,2,4,5,第三路径xc为0,1,4,3,2,5,如图3a所示,首先计算x
b-xc,得到x
b-xc为0,2,-3,-1,2,0;如图3b所示,之后计算差分向量

x
,差分放大系数为0.5,随机数rand(h)分别为0.7,0.3,0.4,0.6,0.1,0.2,计算得到差分向量

x
为0,2,-3,0,2,0;如图3c所示,根据第一路径xa与差分向量

x
计算变异个体v
x
,变异个体即变异路径,得到变异路径v
x
为0,5,1,5,3,2。
[0081]
在产生一个变异路径后,即对该变异路径进行交叉处理,得到一个新配送路径。之后,再从预设数量的迭代目标路径中选取不同的三个迭代目标路径进行变异处理,直至产生预设数量的新配送路径,本次迭代完成。
[0082]
在本技术的一个实施例中,所述采用局部搜索方式对变异处理后得到的变异路径进行交叉处理,生成预设数量的新配送路径,包括:去除所述变异路径中的起始路径点和重复路径点,得到处理后变异路径;从所述预设数量的迭代目标路径中随机选取一个迭代目标路径,作为父代路径,将所述父代路径与所述处理后变异路径中重复的路径点去除,得到处理后父代路径;在取送货优先约束和当前候选配送运力配送容器容量约束条件下,将所述处理后变异路径中的路径点依次插入至所述处理后父代路径中评价指标值最优的位置,得到新配送路径。
[0083]
其中,起始路径点是当前候选配送运力的当前位置,将当前位置作为当前候选配送运力的起始点。取送货优先约束是指在一个配送路径中同时包括一个订单对应的取货地址和送货地址时,取货地址必须排列在送货地址之前。当前候选配送运力配送容器容量约束是指配送运力的配送容器是有容量限制的,在配送容器内的货物不能超过容量限制,如果估计将一个货物放入配送容器会超过容量限制,则需要先插入一个送货地址。例如,在外卖配送领域中,一个配送运力已经取了3个订单,达到了配送容器(即外卖箱)的容量,这时需要先插入一个送货地址,先将一个订单送达,以释放配送容器中该订单所占容量。
[0084]
图4a-4c是本技术实施例中的交叉处理的示意图,如图4a所示,经过变异处理得到的变异路径v
x
为0,5,1,5,3,2,去除变异路径中的重复路径点和起始路径点0,得到处理后变异路径v

x
为1,3,2;从预设数量的迭代目标路径中随机选取一个迭代目标路径,作为父代路径,如图4b所示,父代路径xd为0,1,3,4,2,5,将父代路径xd与处理后变异路径v

x
中重复的路径点从父代路径xd中去除,得到处理后父代路径x
′d为0,4,5;之后将处理后变异路径v

x
中的路径点依次插入至处理后父代路径x
′d中评价指标值最优的位置,如图4c所示,即首
先将处理后变异路径v

x
中的路径点1插入至父代路径x
′d中,可以有三种插入方式,即可以将路径点1插入至父代路径x
′d的0和4之间,或者4和5之间,或者5之后,从而可以形成三种路径,在这三种路径均满足取送货优先约束和当前候选配送运力配送容器容量约束条件下,计算这三种路径的评价指标值,评价指标值最低的路径中的位置为评价指标值最优的位置,插入之后,得到的处理后父代路径x
′d为0,1,4,5,之后再将处理后变异路径v

x
中的路径点3,2分别按照上述方式插入至处理后父代路径x
′d中评价指标值最优的位置,得到新配送路径0,3,1,2,4,5。
[0085]
在上述生成新配送路径的过程中采用遍历插入的方式来进行局部搜索,可以提升解的质量,即可以提升得到的新配送路径的质量。
[0086]
步骤205,根据所述预设数量的迭代目标路径和预设数量的新配送路径,更新所述迭代最优路径,并确定预设数量的进行下次迭代的迭代目标路径。
[0087]
从预设数量的迭代目标路径和预设数量的新配送路径中选取一个最优路径,将迭代最优路径更新为该最优路径,并预设数量的迭代目标路径和预设数量的新配送路径中选取预设数量的最优路径,作为进行下次迭代的迭代目标路径。
[0088]
在本技术的一个实施例中,所述根据所述预设数量的迭代目标路径和预设数量的新配送路径,更新所述迭代最优路径,并确定预设数量的进行下次迭代的迭代目标路径,包括:从所述预设数量的迭代目标路径和所述预设数量的新配送路径中确定评价指标值最优的配送路径,作为当前最优路径;若当前最优路径的评价指标值优于迭代最优路径的评价指标值,则将迭代最优路径替换成当前最优路径;从所述预设数量的迭代目标路径和所述预设数量的新配送路径中确定评价指标值最优的预设数量的配送路径,作为进行下次迭代的迭代目标路径。
[0089]
在迭代处理的过程中,每次对预设数量的迭代目标路径进行变异和交叉处理后,都需要从变异交叉处理前的迭代目标路径和变异交叉处理后产生的新配送路径中确定一个评价指标值最优的配送路径,将该配送路径作为当前最优路径,比较当前最优路径的评价指标值和迭代最优路径的评价指标值,若当前最优路径的评价指标值优于迭代最优路径的评价指标值,则将迭代最优路径替换为当前最优路径。
[0090]
对预设数量的迭代目标路径和预设数量的新配送路径,分别计算评价指标值,选取预设数量的评价指标值最优的配送路径,即可以按照评价指标值从小到大的顺序,对迭代目标路径和新配送路径进行排序,选取排序靠前的预设数量的配送路径,作为进行下次迭代的迭代目标路径。
[0091]
步骤206,判断是否满足迭代终止条件,若否,则执行步骤204,若是则执行步骤207。
[0092]
其中,迭代终止条件可以是迭代时间,迭代时间可以和迭代目标路径中的路径点数有关,例如,迭代时间可以是0.5与路径点数之积。
[0093]
在迭代终止条件是迭代时间时,在开始进行变异处理和交叉处理时开始计时,在完成一次迭代,即生成预设数量的新配送路径时,判断是否满足迭代终止条件,即判断从开始计时到当前的消耗时长是否大于或等于迭代时间,如果不满足,则执行步骤204进行下次的迭代,如果满足,则执行步骤207确定最优路径。
[0094]
步骤207,将迭代最优路径作为将当前待分配订单分配给当前候选配送运力时对
应的最优路径。
[0095]
经过上述的迭代处理,迭代最优路径是从初始的迭代目标路径和迭代过程中产生的新配送路径中评价指标值最优的配送路径,因此该迭代最优路径为将当前待分配订单分配给当前候选配送运力时对应的最优路径。
[0096]
步骤208,判断是否已确定将每个待分配订单分配给每个候选配送运力时每个候选配送运力的最优路径,若否,则执行步骤202,若是,则执行步骤209。
[0097]
通过上述循环处理,确定将每个待分配订单分配给每个候选配送运力时每个候选配送运力的最优路径,之后可以执行后续步骤来对待分配订单进行指派。
[0098]
步骤209,根据所述将每个待分配订单分配给每个候选配送运力时该候选配送运力的最优路径,确定将每个待分配订单分配给每个候选配送运力的评价指标值。
[0099]
步骤210,根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值。
[0100]
步骤211,将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力。
[0101]
通过上述步骤201至步骤211完成了将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力,之后再执行步骤201至步骤211,对其他待分配订单进行分配,直至所有待分配订单分配完毕。
[0102]
本技术实施例提供的配送调度方法,通过进行种群初始化后,基于离散差分算法进行变异处理,并采用局部搜索方式对变异处理后的变异路径进行交叉处理,经过迭代产生最优路径,由于变异处理时利用了种群中的差分信息,相比于现有技术中的贪心算法,增强了路径规划算法的全局性和最优性,可以优化配送运力的配送路径,为后续的派单算法提供更合理的输入,从而可以进一步提高配送运力的配送效率。
[0103]
实施例三
[0104]
本实施例提供的一种配送调度装置,如图5所示,所述配送调度装置500包括:
[0105]
调度对象获取模块510,被配置成用于获取多个待分配订单和对应的多个候选配送运力;
[0106]
最优路径确定模块520,被配置成用于分别确定将每个待分配订单分配给每个候选配送运力时,每个候选配送运力的最优路径;
[0107]
评价指标确定模块530,被配置成用于根据所述将每个待分配订单分配给每个候选配送运力时该候选配送运力的最优路径,确定将每个待分配订单分配给每个候选配送运力的评价指标值;
[0108]
后悔值确定模块540,被配置成用于根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值;
[0109]
订单分配模块550,被配置成用于将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力。
[0110]
可选的,所述最优路径确定模块包括:
[0111]
当前处理对象确定单元,被配置成用于从多个待分配订单中确定一个待分配订单,作为当前待分配订单,并从多个候选配送运力中确定一个候选配送运力作为当前候选
配送运力;
[0112]
种群初始化单元,被配置成用于确定将当前待分配订单分配给所述当前候选配送运力时当前候选配送运力对应的预设数量的配送路径,并从预设数量的配送路径中确定一个最优路径,作为初始的迭代最优路径,将所述配送路径作为迭代目标路径;
[0113]
变异交叉处理单元,被配置成用于基于离散差分算子,对所述预设数量的迭代目标路径进行变异处理,并采用局部搜索方式对变异处理后得到的变异路径进行交叉处理,生成预设数量的新配送路径;
[0114]
迭代控制单元,被配置成用于根据所述预设数量的迭代目标路径和预设数量的新配送路径,更新所述迭代最优路径,并确定预设数量的进行下次迭代的迭代目标路径,迭代执行上述的变异处理、交叉处理以及更新迭代最优路径,直至满足迭代终止条件;
[0115]
最优路径确定单元,被配置成用于将迭代最优路径作为将当前待分配订单分配给当前候选配送运力时对应的最优路径;
[0116]
循环控制单元,被配置成用于循环执行上述确定当前待分配订单和当前候选配送运力,并确定当前待分配订单分配给当前候选配送运力时对应的最优路径,直至确定将每个待分配订单分配给每个候选配送运力时每个候选配送运力的最优路径。
[0117]
可选的,所述种群初始化单元包括:
[0118]
种群初始化子单元,被配置成用于根据所述当前待分配订单和所述当前候选配送运力的待配送订单的预计送达时间,确定将当前待分配订单分配给当前候选配送运力时当前候选配送运力对应的一个配送路径,并随机生成其他配送路径,得到当前候选配送运力对应的预设数量的配送路径。
[0119]
可选的,所述种群初始化子单元包括:
[0120]
地址归类子模块,被配置成用于将所述当前候选配送运力的待配送订单中已完成取货的待配送订单中的送货地址作为第一集合;将所述当前待分配订单的取货地址和送货地址,以及所述当前候选配送运力的待配送订单中未取货的待配送订单中的取货地址和送货地址作为第二集合;
[0121]
地址拼接子模块,被配置成用于根据所述第一集合和第二集合,拼接所述第一集合中的送货地址以及所述第二集合中的取货地址和送货地址,得到拼接序列;
[0122]
配送路径确定子模块,被配置成用于根据所述拼接序列中的各个取货地址和送货地址,确定当前候选配送运力对应的配送路径。
[0123]
可选的,所述地址拼接子模块具体用于:
[0124]
按照所述第一集合中每个待配送订单的预计送达时间从早到晚的顺序,对第一集合中每个待配送订单的送货地址进行排序,得到第一序列;
[0125]
按照第二集合中当前待分配订单和每个待配送订单的预计送达时间从早到晚的顺序,对第二集合中当前待分配订单和每个待配送订单的取货地址和送货地址进行排序,得到第二序列;
[0126]
将所述第二序列拼接在所述第一序列后面,得到拼接序列。
[0127]
可选的,所述配送路径确定子模块具体用于:
[0128]
将所述拼接序列中的取货地址或送货地址按顺序插入至当前候选配送运力取送点序列中评价指标值最优的位置中,直至确定拼接序列中的所有取货地址和送货地址在取
送点序列中的位置,将取送点序列作为当前候选配送运力对应的配送路径。
[0129]
可选的,所述变异交叉处理单元包括:
[0130]
变异处理子单元,被配置成用于基于离散差分算子,按照如下公式对预设数量的迭代目标路径进行变异处理,得到变异路径:
[0131][0132]
其中,v
x
为变异路径,和为从所述预设数量的迭代目标路径中随机选取的三个路径,f为差分放大系数,n为迭代目标路径中的路径点数,符号和的运算方式分别如下:
[0133][0134][0135]
其中,

x
为差分向量,为差分向量

x
中的第h个元素,为路径xb中的第h个路径点,为路径xc中的第h个路径点,为变异路径v
x
中的第h个路径点,rand(h)为[0,1)之间的随机小数。
[0136]
可选的,所述变异交叉处理单元还包括:
[0137]
交叉处理子单元,被配置成用于去除所述变异路径中的起始路径点和重复路径点,得到处理后变异路径;从所述预设数量的迭代目标路径中随机选取一个迭代目标路径,作为父代路径,将所述父代路径与所述处理后变异路径中重复的路径点去除,得到处理后父代路径;在取送货优先约束和当前候选配送运力配送容器容量约束条件下,将所述处理后变异路径中的路径点依次插入至所述处理后父代路径中评价指标值最优的位置,得到新配送路径。
[0138]
可选的,所述迭代控制单元包括:
[0139]
当前最优路径确定子单元,被配置成用于从所述预设数量的迭代目标路径和所述预设数量的新配送路径中确定评价指标值最优的配送路径,作为当前最优路径;
[0140]
迭代最优路径更新子单元,被配置成用于若当前最优路径的评价指标值优于迭代最优路径的评价指标值,则将迭代最优路径替换成当前最优路径;
[0141]
下次迭代路径确定子单元,被配置成用于从所述预设数量的迭代目标路径和所述预设数量的新配送路径中确定评价指标值最优的预设数量的配送路径,作为进行下次迭代的迭代目标路径。
[0142]
可选的,所述后悔值确定模块包括:
[0143]
最优次优指标确定单元,被配置成用于根据将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单对应的最优评价指标值和次优评价指标值;
[0144]
后悔值确定单元,被配置成用于将每个待分配订单对应的次优评价指标值与最优评价指标值的差值,作为待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值。
[0145]
本技术实施例提供的配送调度装置,用于实现本技术实施例中所述的配送调度方
法的各步骤,装置的各模块的具体实施方式参见相应步骤,此处不再赘述。
[0146]
本技术实施例提供的配送调度装置,通过分别确定将每个待分配订单分配给每个候选配送运力时,每个候选配送运力的最优路径,进而确定将每个待分配订单分配给每个候选配送运力的评价指标值,确定每个待分配订单不被分配给最优评价指标值对应的候选配送运力时对应的后悔值,将后悔值最大的待分配订单分配给最优评价指标值对应的候选配送运力,由于通过后悔值考虑了当前指派对未来调度的影响,可以防止算法陷入局部极小,可以提升派单质量,进而提高配送运力的配送效率,提升用户体验。
[0147]
实施例四
[0148]
本技术实施例还提供了一种电子设备,如图6所示,该电子设备600可以包括一个或多个处理器610以及与处理器610连接的一个或多个存储器620。电子设备600还可以包括输入接口630和输出接口640,用于与另一装置或系统进行通信。被处理器610执行的程序代码可存储在存储器620中。
[0149]
电子设备600中的处理器610调用存储在存储器620的程序代码,以执行上述实施例中的配送调度方法。
[0150]
上述电子设备中的上述元件可通过总线彼此连接,总线例如数据总线、地址总线、控制总线、扩展总线和局部总线之一或其任意组合。
[0151]
本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术实施例所述的配送调度方法的步骤。
[0152]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0153]
以上对本技术实施例提供的一种配送调度方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
[0154]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献