一种配送路线的确定方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种配送路线的确定方法和装置。
背景技术
随着电商行业的发展,越来越多的人选择在网上购物,快递订单的数量也越来越多。对于快递订单来说,一个重要的服务指标就是在最短的时间内把所有订单物品送到对应的顾客手中。现有技术中,由于快递订单分布在不同的配送区域,配送人员在配送订单物品时,会根据自身对所负责的配送区域的熟悉程度,凭经验选择自己认为是最合适的路线进行配送。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
配送人员凭经验确定各配送区域的快递订单的配送顺序,主观性强,配送人员按照该配送顺序配送快递订单时,无法保证所有顾客的总等待时间,顾客体验差。
发明内容
有鉴于此,本发明实施例提供一种配送路线的确定方法和装置,通过计算多个区域节点在不同访问顺序下的配送时效,得到配送时效小的若干条配送路线,配送人员按照该配送路线将所有订单物品配送至对应顾客,能够缩短所有顾客的总等待时间,提升顾客体验。
为实现上述目的,根据本发明实施例的一个方面,提供了一种配送路线的确定方法。
本发明实施例的一种配送路线的确定方法,包括:从中心节点出发遍历多个区域节点,按照所述多个区域节点的访问顺序,计算从所述中心节点至最后一个区域节点的初始配送时效;更新所述区域节点的访问顺序,按照当前更新的访问顺序访问所述区域节点,计算从所述中心节点至所述区域节点的中间配送时效;在按照更新后的访问顺序遍历所述多个区域节点的情况下,若所述中间配送时效小于等于所述初始配送时效,则将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。
可选地,所述方法还包括:在所述中间配送时效大于所述初始配送时效的情况下,再次更新所述区域节点的访问顺序,并按照当前更新的访问顺序计算所述中间配送时效。
可选地,所述计算从中心节点至最后一个区域节点的初始配送时效,包括:计算当前配送时效:将第一个区域节点的订单数量、节点权重与所述中心节点到所述第一个区域节点的路程权值相乘,得到所述中心节点到所述第一个区域节点的当前配送时效;其中,所述节点权重由配送所述区域节点的订单的平均时间计算得出;计算下一配送时效:将当前区域节点到下一区域节点的路程权值与所述当前配送时效求和,将所述下一区域节点的订单数量、节点权重与求和结果相乘,得到所述当前区域节点到所述下一区域节点的下一配送时效;其中,所述当前区域节点的初始值为所述第一个区域节点;若所述下一区域节点不是最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行所述计算下一配送时效的步骤;若所述下一区域节点是所述最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到初始配送时效。
可选地,所述方法还包括:确定配送所述当前区域节点的订单的平均用时,以及配送所述多个区域节点的订单的平均用时,以计算所述当前区域节点的节点权重;确定从所述中心节点到所述多个区域节点的时间或者路程,以及从一个区域节点到另一个区域节点的时间或者路程,以将所述时间或者路程作为对应节点之间的路程权值。
可选地,所述计算从所述中心节点至所述区域节点的中间配送时效,包括:计算当前配送时效:将更新后的第一个区域节点的订单数量、节点权重与所述中心节点到所述第一个区域节点的路程权值相乘,得到所述中心节点到所述第一个区域节点的当前配送时效;其中,所述节点权重由配送所述区域节点的订单的平均时间计算得出;计算下一配送时效:将当前区域节点到下一区域节点的路程权值与所述当前配送时效求和,将所述下一区域节点的订单数量、节点权重与求和结果相乘,得到所述当前区域节点到所述下一区域节点的下一配送时效;其中,所述当前区域节点的初始值为所述第一个区域节点;若所述下一区域节点不是当前更新的最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行所述计算下一配送时效的步骤;若所述下一区域节点是所述最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到中间配送时效。
可选地,所述将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线,包括:将满足预设条件的中间配送时效对应的所述多个区域节点的访问顺序作为配送路线;其中,所述预设条件为下列任意一项:所述中间配送时效为最小配送时效,或者所述中间配送时效的数量小于等于预设数量。
可选地,所述从中心节点出发遍历多个区域节点,包括:按照多个区域节点的订单数量由多到少的顺序,从中心节点出发遍历所述多个区域节点;所述更新所述区域节点的访问顺序,包括:根据所述区域节点的订单数量的多少,更新所述区域节点的访问顺序。
为实现上述目的,根据本发明实施例的另一方面,提供了一种配送路线的确定装置。
本发明实施例的一种配送路线的确定装置,包括:第一计算模块:用于从中心节点出发遍历多个区域节点,按照所述多个区域节点的访问顺序,计算从所述中心节点至最后一个区域节点的初始配送时效;第二计算模块:用于更新所述区域节点的访问顺序,按照当前更新的访问顺序访问所述区域节点,计算从所述中心节点至所述区域节点的中间配送时效;配送路线确定模块:用于在按照更新后的访问顺序遍历所述多个区域节点的情况下,若所述中间配送时效小于等于所述初始配送时效,则将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。
可选地,所述装置还包括:循环执行模块,用于在所述中间配送时效大于所述初始配送时效的情况下,再次执行所述第二计算模块的处理过程。
可选地,所述第一计算模块,还用于:计算当前配送时效:将第一个区域节点的订单数量、节点权重与所述中心节点到所述第一个区域节点的路程权值相乘,得到所述中心节点到所述第一个区域节点的当前配送时效;其中,所述节点权重由配送所述区域节点的订单的平均时间计算得出;计算下一配送时效:将当前区域节点到下一区域节点的路程权值与所述当前配送时效求和,将所述下一区域节点的订单数量、节点权重与求和结果相乘,得到所述当前区域节点到所述下一区域节点的下一配送时效;其中,所述当前区域节点的初始值为所述第一个区域节点;以及若所述下一区域节点不是最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行所述计算下一配送时效的步骤;若所述下一区域节点是所述最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到初始配送时效。
可选地,所述装置还包括:确定模块,还用于:确定配送所述当前区域节点的订单的平均用时,以及配送所述多个区域节点的订单的平均用时,以计算所述当前区域节点的节点权重;以及确定从所述中心节点到所述多个区域节点的时间或者路程,以及从一个区域节点到另一个区域节点的时间或者路程,以将所述时间或者路程作为对应节点之间的路程权值。
可选地,所述第二计算模块,还用于:计算当前配送时效:将更新后的第一个区域节点的订单数量、节点权重与所述中心节点到所述第一个区域节点的路程权值相乘,得到所述中心节点到所述第一个区域节点的当前配送时效;其中,所述节点权重由配送所述区域节点的订单的平均时间计算得出;计算下一配送时效:将当前区域节点到下一区域节点的路程权值与所述当前配送时效求和,将所述下一区域节点的订单数量、节点权重与求和结果相乘,得到所述当前区域节点到所述下一区域节点的下一配送时效;其中,所述当前区域节点的初始值为所述第一个区域节点;以及若所述下一区域节点不是当前更新的最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行所述计算下一配送时效的步骤;若所述下一区域节点是所述最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到中间配送时效。
可选地,所述配送路线确定模块,还用于:将满足预设条件的中间配送时效对应的所述多个区域节点的访问顺序作为配送路线;其中,所述预设条件为下列任意一项:所述中间配送时效为最小配送时效,或者所述中间配送时效的数量小于等于预设数量。
可选地,所述第一计算模块,还用于:按照多个区域节点的订单数量由多到少的顺序,从中心节点出发遍历所述多个区域节点;所述第二计算模块,还用于:根据所述区域节点的订单数量的多少,更新所述区域节点的访问顺序。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种配送路线的确定方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种配送路线的确定方法。
上述发明中的一个实施例具有如下优点或有益效果:通过计算多个区域节点在不同访问顺序下的配送时效,得到配送时效小的若干条配送路线,配送人员按照该配送路线将所有订单物品配送至对应顾客,能够缩短所有顾客的总等待时间,提升顾客体验;每次更新区域节点的访问顺序后,计算中心节点至区域节点的中间配送时效,在中间配送时效大于初始配送时效的情况下,直接进行下一次区域节点的访问顺序的更新,提高计算效率;相同的两个区域节点之间的配送时效不固定,其会根据不同的访问顺序发生变化,使得计算出的初始配送时效、中间配送时效更加合理,最终得到的配送路线也更加合理;根据区域节点配送订单的平均用时计算节点权重,平均用时少的节点权重就会小,相应的该区域节点对应的配送时效就会降低,经配送时效计算会更容易优先配送该区域节点的订单物品;优先选择订单数量大的区域节点进行访问,能够更快的获知是否需要继续向下访问,提高计算效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的配送路线的确定方法的主要步骤的示意图;
图2是根据本发明实施例的配送路线的确定方法的主要流程示意图;
图3是根据本发明实施例的计算初始配送时效的主要流程示意图;
图4是根据本发明实施例一的计算中间配送时效的主要流程示意图;
图5是根据本发明实施例二的计算中间配送时效的主要流程示意图;
图6是本发明实施例的配送节点的连通关系示意图;
图7是根据本发明实施例的配送路线的确定装置的主要模块的示意图;
图8是本发明实施例可以应用于其中的示例性***架构图;
图9是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面对本发明涉及到的技术术语进行解释说明。
配送时效:所有顾客收到订单物品的总等待时间。其中,所有顾客是指配送人员配送目标区域的订单物品对应的顾客,所述目标区域包括多个区域节点。
路程权值:从一个配送节点到另一个配送节点所需的时间,或者两个配送节点之间的路程。其中,所述配送节点包括一个中心节点和多个区域节点。
区域节点:由配送人员自定义,可以将地理位置相近的小区、写字楼等定义在一个区域节点下。
中心节点:即配送中心,配送人员由中心节点出发,为各区域节点的顾客配送订单物品。
图1是根据本发明实施例的配送路线的确定方法的主要步骤的示意图。如图1所示,本发明实施例的配送路线的确定方法,主要包括如下步骤:
步骤S101:从中心节点出发遍历多个区域节点,按照所述多个区域节点的访问顺序,计算从所述中心节点至最后一个区域节点的初始配送时效。从所述中心节点出发,可以到达目标区域的任意一个区域节点,任意两个区域节点之间存在通路。按照预设访问顺序,从所述中心节点出发遍历访问目标区域的全部区域节点,计算从所述中心节点至访问的最后一个区域节点的初始配送时效。所述访问顺序比如可以是区域节点的订单数量多少的顺序、配送节点之间距离远近的顺序等。
初始配送时效的计算过程包括:计算所述中心节点到访问的第一个区域节点的当前配送时效的步骤、计算当前区域节点到下一区域节点的下一配送时效的步骤、以及若所述下一区域节点不是最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行计算下一配送时效的步骤;若所述下一区域节点是所述最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到初始配送时效。该步骤中,可以每访问一个区域节点后,计算对应节点之间的配送时效;也可以在遍历全部区域节点后,再计算节点之间的配送时效。
步骤S102:更新所述区域节点的访问顺序,按照当前更新的访问顺序访问所述区域节点,计算从所述中心节点至所述区域节点的中间配送时效。每次更新区域节点的访问顺序后,计算中心节点至当前更新的最后一个区域节点的中间配送时效。中间配送时效的计算过程包括:计算所述中心节点到更新访问的第一个区域节点的当前配送时效的步骤、计算更新后的当前区域节点到更新后的下一区域节点的下一配送时效的步骤、以及若所述下一区域节点不是更新后的最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行计算下一配送时效的步骤;若所述下一区域节点是更新后的最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到中间配送时效。
步骤S103:在按照更新后的访问顺序遍历所述多个区域节点的情况下,若所述中间配送时效小于等于所述初始配送时效,则将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。比较中间配送时效与初始配送时效的大小,如果所述中间配送时效大于所述初始配送时效,则再次执行所述步骤S102;如果遍历所述多个区域节点后所述中间配送时效小于等于所述初始配送时效,则将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。
最终配送时效(包括初始配送时效和中间配送时效)越小,按照其对应的区域节点的访问顺序进行订单配送时,所有顾客的总等待时间越小。因此,可以将最小配送时效(即初始配送时效和遍历区域节点后得到的所有中间配送时效中的最小值)对应的区域节点的访问顺序作为配送路线,推荐给配送人员;也可以按照初始配送时效和遍历区域节点后得到的中间配送时效由小到大的顺序,选取预设数量的最终配送时效,将选取的最终配送时效对应的区域节点的访问顺序作为配送路线,推荐给配送人员,由配送人员自行选择。
图2是根据本发明实施例的配送路线的确定方法的主要流程示意图。如图2所示,本发明实施例的配送路线的确定方法,主要包括如下步骤:
实施例一:
步骤S201:统计中心节点与多个区域节点的路程权值,所述区域节点之间的路程权值,以及配送人员在所述区域节点进行订单配送的订单数量和配送用时。实施例中,根据历史配送数据,统计中心节点到目标区域的每个区域节点的时间(单位是分钟),统计从一个区域节点到另一个区域节点的时间(单位是分钟),统计配送人员在每个区域节点进行订单配送的订单数量和配送用时。其中,所述目标区域是指所有区域节点构成的区域,所述配送用时是从配送人员到达该区域节点到离开该区域节点的时间。
步骤S202:根据所述订单数量和所述配送用时,计算配送人员在所述区域节点的平均用时,以及在目标区域的平均用时。配送人员在每个区域节点的平均用时的计算公式为:
式中,
为配送人员在第i个区域节点的平均用时,M
i为第i个区域节点的订单数量,T
di为配送人员在第i个区域节点的配送用时。
配送人员在目标区域的平均用时的计算公式为:
式中,
为配送人员在目标区域的平均用时,N为区域节点的数量。
步骤S203:将所述区域节点的平均用时与所述目标区域的平均用时相除,得到每个区域节点的节点权重。每个区域节点的节点权重的计算公式为:
式中,Wi为第i个区域节点的节点权重。
步骤S204:从所述中心节点出发遍历所述多个区域节点,按照所述多个区域节点的访问顺序,计算从所述中心节点至最后一个区域节点的初始配送时效。实施例中,按照区域节点的订单数量的由大到小的顺序进行遍历访问。假设中心节点为A,区域节点分别为B、C、D,访问顺序也是B、C、D,则从中心节点A至区域节点D的初始配送时效的计算过程为:
依次计算A→B的配送时效,B→C的配送时效和C→D的配送时效:
A→B的配送时效TAB:MB×WB×SAB
B→C的配送时效TBC:MC×WC×(SBC+TAB)
C→D的配送时效TCD:MD×WD×(SCD+TBC)
式中,SAB为中心节点A与区域节点B的路程权值,SBC为区域节点B与区域节点C的路程权值,SCD为区域节点C与区域节点D的路程权值。
将上述三次计算出的配送时效求和,即可得从中心节点A至区域节点D的初始配送时效。以配送区域节点C的订单为例,顾客的总等待时间包括由中心节点A到区域节点B配送订单时顾客的总等待时间以及由区域节点B到区域节点C配送订单时顾客的总等待时间。因此,区域节点之间的配送时效会根据访问顺序的不同发生变化,具体取值取决于上一个区域节点到本区域节点的配送时效。
假设目标区域有m个区域节点,将中心节点记为N
0,将m个区域节点分别记为{N
1,N
2,…,N
m},且m个区域节点的访问顺序也为{N
1,N
2,…,N
m},则中心节点N
0至区域节点N
m的初始配送时效为
其中,i=j-1,j=1,2,…,m;当i=0时,T
i,j为中心节点N
0到区域节点N
1的配送时效;当i≠0时,T
i,j为访问的两个区域节点之间的配送时效。比如,i=1,j=2时,T
1,2为区域节点N
1与区域节点N
2之间的配送时效。
步骤S205:更新所述区域节点的访问顺序,按照当前更新的访问顺序访问所述区域节点,计算从所述中心节点至所述区域节点的中间配送时效。中间配送时效的计算方式与步骤S204中初始配送时效的计算方式相同。仍旧假设中心节点为A,区域节点分别为B、C、D,假设当前更新的访问顺序为A→B→D,则计算中间节点A至区域节点D的中间配送时效;假设当前更新的访问顺序为A→B→D→C,则计算中间节点A至区域节点C的中间配送时效。该步骤的具体实现见后续描述。
假设当前更新后的区域节点的访问顺序为{N'
1,N'
2,…,N'
t},则中心节点N
0至区域节点N'
t的中间配送时效为
其中,t≤m,i=j-1,j=1,2,…,m;当i=0时,T'
i,j为中心节点N
0到区域节点N'
1的配送时效;当i≠0时,T'
i,j为访问的两个区域节点之间的配送时效。比如,i=1,j=2时,T'
1,2为区域节点N'
1与区域节点N'
2之间的配送时效。
步骤S206:判断所述中间配送时效是否大于所述初始配送时效,如果是,则执行步骤S209;如果不是,则执行步骤S207。如果当前更新的访问顺序对应的中间配送时效大于初始配送时效,则再次更新区域节点的访问顺序,直至所有可能的区域节点的访问顺序被搜索到。如果当前更新的访问顺序对应的中间配送时效小于等于初始配送时效,则需要判断所有区域节点是否已经被访问完毕,以继续进行本次配送路线寻找或者进行下一次配送路线寻找。
步骤S207:判断是否已按照更新后的访问顺序遍历所述多个区域节点,如果是,则执行步骤S208;如果不是,则执行步骤S205。如果已经按照更新后的访问顺序遍历目标区域的多个区域节点,此时中间配送时效小于等于初始配送时效,则说明该中间配送时效对应多个区域节点的访问顺序可以构成一条配送路线。如果未遍历全部的区域节点,则需要继续进行本次配送路线寻找。
步骤S208:将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。如果已按照更新后的访问顺序遍历目标区域的多个区域节点,且中间配送时效小于等于初始配送时效,说明按照该中间配送时效对应的配送路线进行配送时,所有顾客的总等待时间小于按照初始配送时效对应的配送路线进行配送,因此可以将该中间配送时效对应的多个区域节点的访问顺序作为配送路线。
步骤S209:判断所述多个区域节点的所有访问顺序是否已经全部搜索到,如果是,则结束本流程;如果不是,则执行步骤S205。如果还有访问顺序未被搜索到,则再次执行步骤S205至步骤S209。如果目标区域的区域节点的所有访问顺序已经全部被搜索到,则配送路线的确定过程结束。实施例中,也可以设定本配送路线的确定方法的执行时间阈值,如果当前执行时间达到执行时间阈值,也可以结束本配送路线的确定过程。
在一优选的实施例中,将初始配送时效更新为当前得到的最小中间配送时效,重复执行步骤S205至步骤S209,以得到配送时效小的若干条配送路线。配送人员按照最小配送时效对应的访问顺序进行订单配送时,所有顾客的总等待时间最短。需要注意的是,也可以选取若干条配送时效较小的配送路线推荐给配送人员,以由配送人员自行选择一种配送路线。由于一位配送人员每次配送的订单数量不会太大,因此本实施例的方法的计算量也不会太大,且计算高效、准确。
实施例二:实际业务应用中,在快递订单物品时,顾客可能会有一些特殊要求,比如加急快递等。该情况下,在设置节点权重时,可以将步骤S203得到的节点权重乘以一个大于0小于1的固定系数,比如0.4。假设包括加急快速的区域节点为区域节点B,则此时,A→B的配送时效TAB:MB×0.4×WB×SAB,这样就能降低加急快递所在的区域节点的节点权重,后续经时效计算后该区域节点会更容易优先配送。该实施例中,除节点权重的计算过程有上述变化外,其他处理过程与实施例一完全相同,故不再赘述。
图3是根据本发明实施例的计算初始配送时效的主要流程示意图。如图3所示,本发明实施例的步骤S204,主要包括如下步骤:
步骤S301:根据配送节点集合中多个配送节点之间的连通关系,获取与中心节点相邻的区域节点,作为当前区域节点集合。相邻即两个配送节点之间相互连通。从中心节点开始寻找配送路线,中心节点排除在遍历范围内。
步骤S302:从所述当前区域节点集合中,选取最大订单数量对应的区域节点作为当前区域节点,为所述当前区域节点添加访问标记,并计算所述中心节点到所述当前区域节点的配送时效。实施例中,通过为当前区域节点添加*号标记,表明该区域节点已访问。
步骤S303:根据所述连通关系,获取与所述当前区域节点相邻且未被访问的区域节点作为下一区域节点集合。未被访问是指当前次遍历中,未选取到的区域节点。
步骤S304:从所述下一区域节点集合中,选取最大订单数量对应的区域节点作为下一区域节点,计算所述当前区域节点到所述下一区域节点的配送时效。
步骤S305:判断所述多个区域节点是否全部被访问,如果不是,则执行步骤S306;如果是,则执行步骤S307。
步骤S306:将所述下一区域节点集合更新为所述当前区域节点集合,将所述下一区域节点更新为所述当前区域节点,执行步骤S303。
步骤S307:按照选取出最大订单数量对应的区域节点的顺序生成初始配送路线,并计算所述配送时效的和得到所述初始配送路线的初始配送时效。计算步骤S302得到的配送时效以及每次循环步骤S304得到的配送时效的和,将该和值作为初始配送时效,各区域节点的选取顺序即初始配送路线。上述过程中每次都先选取最大订单数量的区域节点,这样会优先配送订单数量大的配送区域,在提升计算效率的同时,降低了配送区域中所有顾客的总等待时间。
图4是根据本发明实施例一的计算中间配送时效的主要流程示意图。如图4所示,本发明实施例的步骤S205,主要包括如下步骤:
步骤S401:从遍历的最后一个区域节点开始,依次回溯至有相邻区域节点未被访问的区域节点,将回溯的区域节点作为当前配送节点。比如,与区域节点B相邻的区域节点是C和D,遍历过程中访问了区域节点C,则此时需访问区域节点D。如果全部区域节点均没有相邻的未被访问的区域节点,则回溯至中心节点。每次回溯过程中,执行下述步骤S402和步骤S403的操作。
步骤S402:从与所述当前配送节点的相邻且未被访问的区域节点中,选取订单数量最大的区域节点作为下一配送节点,计算所述当前配送节点至所述下一配送节点的配送时效。
步骤S403:计算从所述中心节点至所述下一配送节点的中间配送时效。计算出中间配送时效后,执行步骤S206,判断中间配送时效与初始配送时效的大小,如果中间配送时效小于等于初始配送时效,则继续进行本次配送路线寻找,直至所有区域节点遍历完毕。如果中间配送时效大于初始配送时效,则进行下一次配送路线寻找,即执行步骤S402,直至与当前配送节点相邻的区域节点全部被访问。
相应的,在一优选的实施例中,步骤S209中如果已经访问完从所述当前配送节点出发的所有区域节点,则继续向前回溯,直至回溯到中心节点时,按照后续实施例二的计算中间配送时效的过程进行处理。步骤S209中如果未访问完从所述当前配送节点出发的所有区域节点,则执行步骤S402,以从与当前配送节点的相邻且未被访问的区域节点中,重新选取订单数量最大的区域节点后,进行访问。
图5是根据本发明实施例二的计算中间配送时效的主要流程示意图。如图5所示,本发明实施例的步骤S205,主要包括如下步骤:
步骤S501:根据配送节点集合中多个配送节点之间的连通关系,获取与中心节点相邻且未被标记的区域节点,作为当前新区域节点集合。即找出与中心节点相邻,且未添加*号标记的区域节点。
步骤S502:在所述当前新区域节点集合中,选取最大订单数量对应的区域节点作为当前新区域节点,为所述当前新区域节点添加访问标记,并计算所述中心节点到所述当前新区域节点的新配送时效。
步骤S503:根据所述连通关系,获取与所述当前新区域节点相邻且未被访问的区域节点作为下一新区域节点集合。
步骤S504:在所述下一新区域节点集合中,选取最大订单数量对应的区域节点作为下一新区域节点,计算所述当前新区域节点到所述下一新区域节点的新配送时效。
步骤S505:计算所述新配送时效之和,将所述新配送时效之和作为中间配送时效。所述新配送时效之和即为步骤S502得到的新配送时效与每次循环步骤S504得到的新配送时效的和。如果该新配送时效之和大于初始配送时效,说明此配送路线下顾客的总等待时间比初始配送时效之和对应配送路线的总等待时间长,故不在进行后续处理,直接跳转至步骤S209,进行下一次配送路线寻找。
相应的,在一优选的实施例中,步骤S207中如果未遍历全部的区域节点,则需将所述下一新区域节点集合更新为所述当前新区域节点集合,将所述下一新区域节点更新为所述当前新区域节点,执行步骤S503至步骤S505,以继续进行本次配送路线寻找。
相应的,在一优选的实施例中,可以将步骤S505每次得到的中间配送时效代替初始配送时效,将步骤S208中中间配送时效对应的所述多个区域节点的访问顺序作为中间配送路线,并将每次得到的中间配送路线代替上一次得到的中间配送路线或者初始配送路线,进行保存。后续可以将最终保存的配送路线推荐给配送人员。
在另一优选的实施例中,还可以将得到的初始配送时效、每次循环步骤S505得到的中间配送时效保存到配送时效列表中,将对应的初始配送路线和每次循环得到的中间配送路线保存到配送路线列表中。此时可以获取配送时效较好的若干条配送路线。比如,将配送时效列表中前N个小配送时效对应的配送路线作为最终推荐给配送人员的配送路线,其中,N为整数。
图6是本发明实施例的配送节点的连通关系示意图。如图6所示,共有四个配送节点,且任意两个配送节点之间可以相互连通(即可以从其中一个配送节点到达另外一个配送节点),配送节点A为配送中心,本文中将配送节点A称为中心节点A;配送节点B、C、D均为配送区域,本文中对应称为区域节点B、C、D。假设中心节点A与区域节点B之间的路程权值为10,中心节点A与区域节点C之间的路程权值为19,中心节点A与区域节点D之间的路程权值为12,区域节点B与区域节点C之间的路程权值为13,区域节点B与区域节点D之间的路程权值为20,区域节点C与区域节点D之间的路程权值为11;需要向区域节点B、C、D配送的订单数量分别为5、9、4;区域节点B、C、D的权重分别为1、0.68、0.87。下面对本发明实施例二的配送路线的确定方法进行说明。实施例中,各区域节点集合也可以表示为节点列表的形式,比如下述第一轮配送路线寻找中,区域节点集合{B,C,D}可以表示为节点列表[B,C,D]。
实施例三:
首先从中心节点A开始寻找,由于配送人员需要从中心节点A出发到区域节点,故中心节点A不在遍历范围内。
第一轮配送路线寻找:
(11)在与中心节点A相邻的区域节点集合{B,C,D}中,订单数量最大的是区域节点C,为区域节点C添加访问标记,计算中心节点A→区域节点C的配送时效TAC。配送时效TAC=9×0.68×19=116.28。此时,与区域节点C相邻的区域节点B、D未被访问。
(12)在与区域节点C相邻且未被访问的区域节点集合{B,D}中,订单数量最大的是区域节点B,计算区域节点C→区域节点B的配送时效TCB。配送时效TCB=5×1×(13+TAC)=646.4。此时,与区域节点B相邻的区域节点D未被访问。
(13)在与区域节点B相邻且未被访问的区域节点集合{D}中,订单数量最大的是区域节点D,计算区域节点B→区域节点D的配送时效TBD。配送时效TBD=4×0.87×(20+TCB)=2319.072。此时,所有区域节点已经全部访问完成。
(14)计算并保存初始配送时效Ttotal1=TAC+TCB+TBD,记录初始配送路线P1=A→C→B→D。Ttotal1=116.28+646.4+2319.072=3081.752。此时,与最近访问过的区域节点C相邻的区域节点未被全部访问,故回溯至区域节点C继续进行配送路线寻找。
(15)回溯至最近访问过的区域节点C,在与区域节点C相邻且未被访问的区域节点集合{D}中,订单数量最大的是区域节点D,计算计算区域节点C→区域节点D的配送时效TCD。配送时效TCD=4×0.87×(11+TAC)=442.9344,比较TAC+TCD与Ttotal1的大小。TAC+TCD=559.2144<Ttotal1,继续本次配送路线寻找。此时,与区域节点D相邻的区域节点B未被访问。
(16)在与区域节点D相邻且未被访问的区域节点集合{B}中,订单数量最大的是区域节点B,计算区域节点D→区域节点B的配送时效TDB,比较TAC+TCD+TDB与Ttotal1的大小。配送时效TDB=5×1×(20+TCD)=2314.672,TAC+TCD+TDB=2837.8864<Ttotal1。此时,所有区域节点已经全部访问完成。
(17)将中间配送时效Ttotal2=TAC+TCD+TDB代替初始配送时效Ttotal1并保存,将中间配送路线P2=A→C→D→B代替初始配送路线P1并保存。此时,与区域节点C相邻的区域节点已经全部访问完成,但与中心节点A相邻的区域节点中仍有未被标记的区域节点,进行下一轮配送路线寻找。
第二轮配送路线寻找:
(21)在与中心节点A相邻且未被标记的区域节点集合{B,D}中,订单数量最大的是区域节点B,为区域节点B添加访问标记,计算中心节点A→区域节点B的配送时效TAB。配送时效TAB=5×1×10=50。此时,与区域节点B相邻的区域节点C、D未被访问。
(22)在与区域节点B相邻且未被访问的区域节点集合{C,D}中,订单数量最大的是区域节点C,计算区域节点B→区域节点C的配送时效TBC,比较TAB+TBC与Ttotal2的大小。配送时效TBC=9×0.68×(13+TAB)=385.56,TAB+TBC=50+385.56=435.56<Ttotal2,继续本次配送路线寻找。此时,与区域节点C相邻的区域节点D未被访问。
(23)在与区域节点C相邻且未被访问的区域节点集合{D}中,订单数量最大的是区域节点D,计算区域节点C→区域节点D的配送时效TCD,比较TAB+TBC+TCD与Ttotal2的大小。配送时效TCD=4×0.87×(11+TBC)=1380.0288,TAB+TBC+TCD=50+385.56+1380.0288=1815.5888<Ttotal2。此时,所有区域节点已经全部访问完成。
(24)将中间配送时效Ttotal3=TAB+TBC+TCD代替Ttotal2并保存,将中间配送路线P3=A→B→C→D代替P2并保存。此时,与最近访问过的区域节点B相邻的区域节点未被全部访问,故回溯至区域节点B继续进行配送路线寻找。
(25)回溯至最近访问过的区域节点B,在与区域节点B相邻且未被访问的区域节点集合{D}中,订单数据量大的是区域节点D,计算计算区域节点B→区域节点D的配送时效TBD。配送时效TBD=4×0.87×(20+TAB)=243.6,比较TAB+TBD与Ttotal3的大小。TAB+TBD=293.6<Ttotal3,继续本次配送路线寻找。此时,与区域节点D相邻的区域节点C未被访问。
(26)在与区域节点D相邻且未被访问的区域节点集合{C}中,订单数量最大的是区域节点C,计算区域节点D→区域节点C的配送时效TDC,比较TAB+TBD+TDC与Ttotal3的大小。配送时效TDC=9×0.68×(11+TBD)=1558.152,TAB+TBD+TDC=1851.752>Ttotal3,结束本次配送路线寻找。此时,与中心节点A相邻的区域节点中仍有未被标记的区域节点,进行下一轮配送路线寻找。
第三轮配送路线寻找:
(31)在与中心节点A相邻且未被标记的区域节点集合{D}中,订单数量最大的是区域节点D,为区域节点D添加访问标记,计算中心节点A→区域节点D的配送时效TAD。配送时效TAD=4×0.87×12=41.76。此时,与区域节点D相邻的区域节点B、C未被访问。
(32)在与区域节点D相邻且未被访问的区域节点集合{B,C}中,订单数量最大的是区域节点C,计算区域节点D→区域节点C的配送时效TDC,比较TAD+TDC与Ttotal3的大小。配送时效TDC=9×0.68×(11+TAD)=322.8912,TAD+TDC=41.76+322.8912=364.6512<Ttotal3,继续本次配送路线寻找。此时,与区域节点C相邻的区域节点B未被访问。
(33)在与区域节点C相邻且未被访问的区域节点集合{B}中,订单数量最大的是区域节点B,计算区域节点C→区域节点B的配送时效TCB,比较TAD+TDC+TCB与Ttotal3的大小。配送时效TCB=5×1×(13+TDC)=1679.456,TAD+TDC+TCB=41.76+322.8912+1679.456=2044.1072>Ttotal3,结束本次配送路线寻找。此时,与最近访问过的区域节点D相邻的区域节点未被全部访问,故回溯至区域节点D进行下一次配送路线寻找。
(34)回溯至最近访问过的区域节点D,在与区域节点D相邻且未被访问的区域节点集合{B}中,订单数据量大的是区域节点B,计算计算区域节点D→区域节点B的配送时效TDB。配送时效TDB=5×1×(20+TAD)=308.8,比较TAD+TDB与Ttotal3的大小。TAD+TDB=350.56<Ttotal3,继续本次配送路线寻找。此时,与区域节点B相邻的区域节点C未被访问。
(35)在与区域节点B相邻且未被访问的区域节点集合{C}中,订单数量最大的是区域节点C,计算区域节点B→区域节点C的配送时效TBC,比较TAD+TDB+TBC与Ttotal3的大小。配送时效TBC=9×0.68×(13+TDB)=1969.416,TAD+TDB+TBC=2319.976>Ttotal3,结束本次配送路线寻找。经过上述配送路线寻找过程,中心节点到区域节点之间所有可能的配送路线已经全部被找到,故配送路线寻找过程结束。当然,如果此时与中心节点A相邻的区域节点中仍有未被标记的区域节点,则需按照上述第二轮或者第三轮规则进行下一轮配送路线寻找,直至中心节点到区域节点之间所有可能的配送路线已经全部被找到或者计算处理时长达到预设时间阈值。
由实施例三可知,第一轮的配送路线寻找中,首先对区域节点C进行访问并添加访问标记;然后从区域节点C开始搜索,直到搜索完从区域节点C出发的所有路径,即访问完所有从区域节点C出发可达的区域节点之后,才回溯到中心节点A。后续每一轮的搜索均是重新选择一个从中心节点A出发的未添加访问标记的区域节点。每一次搜索中,都选择最大订单数量的区域节点优先搜索。
上述配送路线寻找过程中,得到的最小配送时效为Ttotal3,对应的配送路线即P3=A→B→C→D,将该配送路线P3作为配送路线推荐给配送人员即可。配送人员按照该配送路线派送订单物品,就可使配送区域B、配送区域C和配送区域D的所有顾客的总等待时间最短,提升顾客体验。
在一优选的实施例中,如果需要获得配送时效Ttotal较小的若干条配送路线,则可将每次寻找得到的配送时效Ttotal保存到配送时效列表T[]中,配送路线寻找结束时,即可得到对应的配送路线列表P[]。将该配送路线列表P[]中配送时效Ttotal小的若干条配送路线作为配送路线推荐至配送人员以供其选择。如果配送人员按照上述配送路线进行配送时,就可以定位配送人员所处的配送节点以及预计配送时间,以用于监管。经过上述处理,一些宜配送的区域就会显现出来,比如写字楼、单位、企业等,这些配送区域的订单数量比较集中,耗时少,宜配送,通过实施例的推荐方法就会逐步地计算出总等待时间最短的配送路线。
通过本发明实施例的配送路线的确定方法可以看出,通过计算多个区域节点在不同访问顺序下的配送时效,得到配送时效小的若干条配送路线,配送人员按照该配送路线将所有订单物品配送至对应顾客,能够缩短所有顾客的总等待时间,提升顾客体验;每次更新区域节点的访问顺序后,计算中心节点至区域节点的中间配送时效,在中间配送时效大于初始配送时效的情况下,直接进行下一次区域节点的访问顺序的更新,提高计算效率;相同的两个区域节点之间的配送时效不固定,其会根据不同的访问顺序发生变化,使得计算出的初始配送时效、中间配送时效更加合理,最终得到的配送路线也更加合理;根据区域节点配送订单的平均用时计算节点权重,平均用时少的节点权重就会小,相应的该区域节点对应的配送时效就会降低,经配送时效计算会更容易优先配送该区域节点的订单物品;优先选择订单数量大的区域节点进行访问,能够更快的获知是否需要继续向下访问,提高计算效率。
图7是根据本发明实施例的配送路线的确定装置的主要模块的示意图。如图7所示,本发明实施例的配送路线的确定装置700,主要包括:
第一计算模块701:用于从中心节点出发遍历多个区域节点,按照所述多个区域节点的访问顺序,计算从所述中心节点至最后一个区域节点的初始配送时效。从所述中心节点出发,可以到达目标区域的任意一个区域节点,任意两个区域节点之间存在通路。按照预设访问顺序,从所述中心节点出发遍历访问目标区域的全部区域节点,计算从所述中心节点至访问的最后一个区域节点的初始配送时效。所述访问顺序比如可以是区域节点的订单数量多少的顺序、配送节点之间距离远近的顺序等。
初始配送时效的计算过程包括:计算所述中心节点到访问的第一个区域节点的当前配送时效的步骤、计算当前区域节点到下一区域节点的下一配送时效的步骤、以及若所述下一区域节点不是最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行计算下一配送时效的步骤;若所述下一区域节点是所述最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到初始配送时效。该步骤中,可以每访问一个区域节点后,计算对应节点之间的配送时效;也可以在遍历全部区域节点后,再计算节点之间的配送时效。
第二计算模块702:用于更新所述区域节点的访问顺序,按照当前更新的访问顺序访问所述区域节点,计算从所述中心节点至所述区域节点的中间配送时效。每次更新区域节点的访问顺序后,计算中心节点至当前更新的最后一个区域节点的中间配送时效。中间配送时效的计算过程包括:计算所述中心节点到更新访问的第一个区域节点的当前配送时效的步骤、计算更新后的当前区域节点到更新后的下一区域节点的下一配送时效的步骤、以及若所述下一区域节点不是更新后的最后一个区域节点,则将所述下一区域节点作为当前区域节点,将所述下一配送时效作为所述当前配送时效,再次执行计算下一配送时效的步骤;若所述下一区域节点是更新后的最后一个区域节点,则将所述当前配送时效和所述下一配送时效求和得到中间配送时效。
配送路线确定模块703:用于在按照更新后的访问顺序遍历所述多个区域节点的情况下,若所述中间配送时效小于等于所述初始配送时效,则将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。比较中间配送时效与初始配送时效的大小,如果所述中间配送时效大于所述初始配送时效,则再次执行所述第二计算模块702的处理过程;如果遍历所述多个区域节点后所述中间配送时效小于等于所述初始配送时效,则将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。
最终配送时效(包括初始配送时效和中间配送时效)越小,按照其对应的区域节点的访问顺序进行订单配送时,所有顾客的总等待时间越小。因此,可以将最小配送时效(即初始配送时效和遍历区域节点后得到的所有中间配送时效中的最小值)对应的区域节点的访问顺序作为配送路线,推荐给配送人员;也可以按照初始配送时效和遍历区域节点后得到的中间配送时效由小到大的顺序,选取预设数量的最终配送时效,将选取的最终配送时效对应的区域节点的访问顺序作为配送路线,推荐给配送人员,由配送人员自行选择。
另外,本发明实施例的配送路线的确定装置700还可以包括:循环执行模块和确定模块(图7中未示出)。其中,所述循环执行模块,用于在所述中间配送时效大于所述初始配送时效的情况下,再次执行所述第二计算模块的处理过程。所述确定模块,还用于:确定配送所述当前区域节点的订单的平均用时,以及配送所述多个区域节点的订单的平均用时,以计算所述当前区域节点的节点权重;以及确定从所述中心节点到所述多个区域节点的时间或者路程,以及从一个区域节点到另一个区域节点的时间或者路程,以将所述时间或者路程作为对应节点之间的路程权值。
从以上描述可以看出,通过计算多个区域节点在不同访问顺序下的配送时效,得到配送时效小的若干条配送路线,配送人员按照该配送路线将所有订单物品配送至对应顾客,能够缩短所有顾客的总等待时间,提升顾客体验;每次更新区域节点的访问顺序后,计算中心节点至区域节点的中间配送时效,在中间配送时效大于初始配送时效的情况下,直接进行下一次区域节点的访问顺序的更新,提高计算效率;相同的两个区域节点之间的配送时效不固定,其会根据不同的访问顺序发生变化,使得计算出的初始配送时效、中间配送时效更加合理,最终得到的配送路线也更加合理;根据区域节点配送订单的平均用时计算节点权重,平均用时少的节点权重就会小,相应的该区域节点对应的配送时效就会降低,经配送时效计算会更容易优先配送该区域节点的订单物品;优先选择订单数量大的区域节点进行访问,能够更快的获知是否需要继续向下访问,提高计算效率。
图8示出了可以应用本发明实施例的配送路线的确定方法或配送路线的确定装置的示例性***架构800。
如图8所示,***架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对管理员利用终端设备801、802、803提供的中心节点、区域节点进行接收处理的后台管理服务器。后台管理服务器可以进行历史配送数据分析、配送时效计算、配送路线确定等处理,并将处理结果(例如配送路线)反馈给终端设备。
需要说明的是,本申请实施例所提供的配送路线的确定方法一般由服务器805执行,相应地,配送路线的确定装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种配送路线的确定方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种配送路线的确定方法。
下面参考图9,其示出了适用于来实现本发明实施例的电子设备的计算机***900的结构示意图。图9示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机***900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有计算机***900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一计算模块、第二计算模块和配送路线确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一计算模块还可以被描述为“从中心节点出发遍历多个区域节点,按照所述多个区域节点的访问顺序,计算从所述中心节点至最后一个区域节点的初始配送时效的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:从中心节点出发遍历多个区域节点,按照所述多个区域节点的访问顺序,计算从所述中心节点至最后一个区域节点的初始配送时效;更新所述区域节点的访问顺序,按照当前更新的访问顺序访问所述区域节点,计算从所述中心节点至所述区域节点的中间配送时效;在按照更新后的访问顺序遍历所述多个区域节点的情况下,若所述中间配送时效小于等于所述初始配送时效,则将所述中间配送时效对应的所述多个区域节点的访问顺序作为配送路线。
从以上描述可以看出,通过计算多个区域节点在不同访问顺序下的配送时效,得到配送时效小的若干条配送路线,配送人员按照该配送路线将所有订单物品配送至对应顾客,能够缩短所有顾客的总等待时间,提升顾客体验。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。