考虑路线形状的车辆路径优化方法与流程

文档序号:32523815发布日期:2022-12-13 20:26阅读:34来源:国知局
考虑路线形状的车辆路径优化方法与流程

1.本发明涉及路径规划技术领域,具体涉及一种考虑路线形状的车辆路径优化方法。


背景技术:

2.仓储物流企业一个典型的业务场景是将货物从仓库发往周边的多个客户。如何利用多种不同类型的车辆,并合理安排各个车辆的路线,使得在满足客户对时效等服务需求的前提下,降低整体的运输成本是仓储物流企业面临的一个挑战。除了需要考虑运输成本,调度员在安排路线时通常还需要考虑路线的形状,要求同一辆车服务的客户尽量集中在一个较小的区域,且不同路线覆盖的区域尽量不要重叠。如何定量描述路线的形状要求,以及如何使用合理的算法在兼顾路线形状和运输成本的前提下,安排车辆路线是物流企业亟待解决的技术问题。


技术实现要素:

3.本发明以定量描述路线形状,并使用算法在兼顾路线形状和运输成本的前提下合理安排车辆运输路线为目的,提供了一种考虑路线形状的车辆路径优化方法。
4.为达此目的,本发明采用以下技术方案:
5.提供一种考虑路线形状的车辆路径优化方法,步骤包括:
6.s1,收集客户需求及车辆资源信息;
7.s2,以仓库和每个客户所在位置为节点,计算任意节点间的距离;
8.s3,定义路线形状指标及构建优化目标函数;
9.s4,使用插入算法构造初始解,并将所述初始解和所述初始解对应的所述优化目标函数的目标值作为车辆路径的优化结果。
10.作为优选,客户需求信息包括客户编号、客户地址、客户地址经度、客户地址纬度、货物需求量;车辆资源信息包括车辆类型、最大装载量、起步费和每公里费用。
11.作为优选,步骤s3中,构建的所述优化目标函数通过以下公式(1)表达:
12.f=f+α∑ci+β∑o
i 公式(1)
13.公式(1)中,f表示所述优化目标函数;
14.f表示车辆执行各路线产生的总费用;
15.∑ci表示各路线的紧凑度之和,所述紧凑度用于表征客户在路线i围合的区域内的集中程度;
16.α表示∑ci在路线优化时所占的权重;
17.∑oi表示各路线的重叠度之和,所述重叠度用于表征不同路线覆盖的区域的重叠程度;
18.β表示∑oi在路线优化时所占的权重。
19.作为优选,步骤s3中,定义的所述路线形状指标包括所述紧凑度,所述路线i的所
述紧凑度通过以下公式(2)计算而得:
20.ci=∑idist(i,mi) 公式(2)
21.公式(2)中,ci表示所述路线i的所述紧凑度;
22.i表示所述路线i中的第i个客户节点;
23.mi表示当所述路线i中的客户节点数量n为奇数时,派送顺序为的客户节点,当n为偶数时,派送顺序为的客户节点;
24.dist(i,mi)表示第i个客户节点到中心客户节点mi的距离。
25.作为优选,步骤s3中,定义的所述路线形状指标包括所述重叠度,所述路线i的所述重叠度为所述路线i中的客户节点落入到其他路线覆盖的区域内的次数。
26.作为优选,步骤s4中,使用所述插入算法构造所述优化目标函数的所述初始解的方法步骤具体包括:
27.s41,记仓库节点为w,所有客户节点集合为c;
28.s42,从c中选择距离w最远的客户节点作为种子客户节点cs,并将其从c中移除;
29.s43,构建当前路线的途经顺序为w-c
s-w的初始路线,并从可用车辆资源中选择执行当前路线运输任务的车辆;
30.s44,对集合c中的客户节点按照距cs的距离由近及远排序;
31.s45,按照步骤s44的排序顺序依次检查c中的每个客户,并判断将该客户的需求货量加上所述当前路线中的所有客户的需求货量后,所述当前路线的总需求货量是否大于步骤s43选定的车辆的最大装载量,
32.若是,则判定该客户对应的客户节点cn无法插入到所述当前路线,并继续检查集合c中位于该客户的下一个客户;
33.若否,则计算将该客户对应的客户节点cn插入到所述当前路线中的最优位置,并将其插入到所述最优位置以更新所述当前路线,然后将其从c中移除;
34.s46,从可执行所述当前路线的运输任务的各车辆中,筛选出最大装载量大于所述当前路线中各客户节点的总需求货量的车辆,并从中选择运输费用最少的车辆作为执行所述当前路线的运输任务的最终车辆;
35.s47,判断集合c是否为空,
36.若是,则将步骤s46确定的所述最终车辆执行的所述当前路线加入到所述初始解中;
37.若否,则返回步骤s42,构造下一条路线。
38.作为优选,步骤s45中,计算所述客户节点cn插入到所述当前路线中的所述最优位置的方法包括步骤:
39.s451,对于所述当前路线中的每对相邻的节点ci和cj,计算将cn插入到ci和cj间的里程增加值d,计算方式通过以下公式(3)表达;
40.d=dist(ci,cn)+dist(cn,cj)-dist(ci,cj) 公式(3)
41.公式(3)中,dist(ci,cn)表示ci与cn之间的距离;
42.dist(cn,cj)表示cn与cj之间的距离;
43.dist(ci,cj)表示ci和cj之间的距离;
44.s452,将cn插入到d最小的ci和cj之间。
45.本发明具有以下有益效果:
46.1、在车辆路径规划中考虑了路线形状,使得形成的路径规划方案更容易被调度员和司机接受。
47.2、针对现实中的路线形状要求,定义了紧凑度和重叠度两种指标,通过加权平均的方式与车辆费用结合起来,从而将多目标问题转换为单目标问题,简化了路径规划算法,使得路径规划更加高效。
48.3、采用插入算法构造初始解,可以在较短时间内得到质量很高的解。
附图说明
49.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1是车辆运输路径示意图;
51.图2是本发明一实施例提供的考虑路线形状的车辆路径优化方法的流程框图;
52.图3是各路线覆盖区域重叠示意图;
53.图4是使用插入算法构造初始解的流程图;
54.图5是使用alns算法改进初始解的流程图;
55.图6是经本技术自定义的proximity removal破坏算子破坏后的当前解的示意图;
56.图7是经本技术自定义的hull overlap removal破坏算子破坏后的当前解的示意图。
具体实施方式
57.下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
58.其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
59.本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
60.在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而
言,可以具体情况理解上述术语在本发明中的具体含义。
61.本实施例中,假设只考虑一个仓库,所有客户需求的货物均可从这个仓库获得。在每天开始的时候,调度员收集所有客户当前的货物需求量,以及当天可以利用的运输资源,调度员需要安排使用的车辆,以及每辆车的行驶路线(即服务客户的顺序)。每辆车在仓库装载所服务客户的所有货物后,从仓库出发,依次到达各个客户,卸下该客户所需的货物,并在服务完最后一个客户后,返回仓库,该车辆在当天不再使用。如图1所示,假设有a、b、c三辆车从同个仓库出发,依次到达各自负责的客户,最后再返回仓库,这是一个经典的车辆路径规划问题(vehicle routing problem,vrp),在学术界和工业界都有广泛的研究。
62.运输资源包含多种类型的车辆,每种车辆有不同的费用、最大装载,可以使用的数量没有上限。车辆的费用包括两部分:起步费和里程费,其中起步费为固定值,只要使用该车辆就需要支付;里程费与行驶里程成正比。例如,某辆车的起步费为100元,里程费为每公里3元,则行驶100公里的费用为100+3
×
100=400元。
63.图1中以节点表示的所有客户均需要被服务,并且每个客户只能由同一辆车服务,即不能将一个客户的货物需求进行拆分,并交由多辆车服务。每辆车服务的所有客户的货物需求总量不能超过其最大装载量。这里假设每个客户的货物需求均不超过车辆的最大装载,从而保证所有的客户均可以被服务。
64.调度员在安排车辆路线时除了需要考虑车辆总费用(起步费+里程费),还需要考虑每条路线的形状,要求同一辆车服务的客户尽量集中在一个较小的区域,且不同路线覆盖的区域尽量不要重叠,这些要求主要是为了让司机负责一个相对较小的区域,从而对行驶路线更熟悉,以提升派送效率。此外,当某个客户在当前时刻无法收获的时候,司机需要在服务完其他客户后再给该客户送货,限制在一个较小的区域,可以更方便随后服务该客户。
65.目前,没有系统化的方法帮助调度员选择使用的车辆类型,以及安排每个车辆的路线,更多地是基于个人的经验来进行车辆的选择和路线的安排,或者忽略掉对车辆路线形状的要求,直接使用现有的车辆路径问题求解算法进行求解,得到路线规划方案,但面临如下问题:
66.1、人工安排车辆路线依赖于个人经验,虽然可以较好地控制路线的形状,但是安排的路线在费用方面通常不是最优的。此外,当客户数量和车辆类型较多时,人工安排非常耗时。
67.2、现有的车辆路径问题求解算法虽然能够得到费用较低的方案,但没有考虑路线的形状,生成的结果通常不能被调度员和司机接受。
68.为了解决上述两个问题,本发明实施例提供了如图2所示的考虑路线形状的车辆路径优化方法,具体步骤为:
69.s1,收集客户需求及车辆资源信息
70.从运输管理系统中收集当天所有客户的需求以及可以利用的车辆资源,得到的数据格式分别如下表1和表2所示:
[0071][0072]
表1
[0073][0074][0075]
表2
[0076]
s2,以仓库和每个客户所在位置为节点,计算任意节点间的距离
[0077]
此处节点包括仓库及每个客户的所在位置,需要获取任意两个节点之间的距离来计算每辆车的行驶里程。由于所有节点的经纬度信息均已知,则可以使用国内地图厂商(如高德地图或百度地图)提供的距离测量服务获取任意两个地点之间的距离。
[0078]
s3,定义路线形状指标及构建优化目标函数
[0079]
针对路线形状的第一个要求,即同一辆车服务的客户尽量集中在一个较小的区域,本实施例中通过定义紧凑度这个指标,对于路线i,其紧凑度为该路线中所有客户到处于最中间位置的客户的距离之和,计算方法通过以下公式(1)表达:
[0080]ci
=∑idist(i,mi) 公式(1)
[0081]
公式(1)中,ci表示路线i的紧凑度;
[0082]
i表示路线i中的第i个客户节点;
[0083]
mi表示当路线i中的客户节点数量n为奇数时,派送顺序为的客户节点,当n为偶数时,派送顺序为的客户节点;
[0084]
dist(i,mi)表示第i个客户节点到该路线的中心客户节点mi的距离。
[0085]
例如,假设路线i中有5个或6个客户节点,则取派送顺序为第3的客户节点为中心客户节点mi。ci越小,说明同一条路线i中的客户越集中。
[0086]
针对路线形状的第二个要求,即不同路线覆盖的区域尽量不要重叠,本实施例中定义了重叠度这个指标,对于路线i,其重叠度oi为该路线中的客户包含在其他路线的凸包中的次数(即路线i中的客户节点落入到其他路线覆盖的区域内的次数)。路线的凸包为该路线中所有客户节点组成的凸包,如图3所示,由客户节点1、2、3、4、5围合形成的区域即为路线1的凸包;由客户节点6、7、8、9、10围合形成的区域即为路线2的凸包;由客户节点11、12、13、14、15、11围合形成的区域即为路线3的凸包。而路线1中的客户1同时位于路线2和路线3的凸包中,客户5只位于路线3的凸包中,因此路线1的重叠度为3;路线2中的客户6、9、10位于路线3的凸包中,因此路线2的重叠度为3;路线3的所有客户均不位于其他路线的凸包
中,因此其重叠度为0。所以看出,重叠度越小,说明不同路线覆盖的区域越不重叠。
[0087]
为了同时考虑车辆总费用与路线形状的要求,本实施例构建了如以下公式(2)表达的优化目标函数:
[0088]
f=f+α∑ci+β∑o
i 公式(2)
[0089]
公式(2)中,f表示优化目标函数;
[0090]
f表示车辆执行各路线产生的总费用;
[0091]
∑ci表示各路线的紧凑度之和,紧凑度用于表征客户在路线i围合的区域内的集中程度;
[0092]
α表示∑ci在路线优化时所占的权重;
[0093]
∑oi表示各路线的重叠度之和,重叠度用于表征不同路线覆盖的区域的重叠程度;
[0094]
β表示∑oi在路线优化时所占的权重。
[0095]
优化目标f的值越小,说明优化方案越合理。
[0096]
s4,使用插入算法构造初始解,并将该初始解和初始解对应的优化目标函数的目标值作为车辆路径的优化结果。
[0097]
本实施例使用插入算法来构造初始解,算法的流程如图4所示,具体步骤包括:
[0098]
s41,记仓库节点为w,所有客户节点集合为c;
[0099]
s42,从c中选择距离w最远的客户节点作为种子客户节点cs,并将其从c中移除;
[0100]
s43,构建当前路线的途经顺序为w-c
s-w的初始路线,并从可用车辆资源中选择执行当前路线运输任务的车辆(优选选择装载量最大的车辆);
[0101]
s44,对集合c中的客户节点按照距cs的距离由近及远排序;
[0102]
s45,依次检查c中的每个客户cn,若该客户的需求货量加上当前路线中所有客户的需求货量已经超过步骤s43选定的车辆的最大装载量,说明该客户对应的客户节点已经无法插入到当前路线,继续检查下一个客户,否则,则进一步计算将该客户节点插入在当前路线中的位置以更新当前路线,然后将其从c中移除,
[0103]
计算客户节点cn插入到当前路线中的最优位置的方法包括步骤:
[0104]
s451,对于当前路线中的每对相邻的节点ci和cj(ci、cj包括仓库节点和客户节点),计算将cn插入到ci和cj间的里程增加值d,计算方式通过以下公式(3)表达;
[0105]
d=dist(ci,cn)+dist(cn,cj)-dist(ci,cj) 公式(3)
[0106]
公式(3)中,dist(ci,cn)表示ci与cn之间的距离;
[0107]
dist(cn,cj)表示cn与cj之间的距离;
[0108]
dist(ci,cj)表示ci和cj之间的距离;
[0109]
s452,将cn插入到d最小的ci和cj之间;
[0110]
s46,从可执行当前路线的运输任务的各车辆中,筛选出最大装载量大于当前路线中各客户节点的总需求货量的车辆,并从中选择运输费用最少的车辆作为执行当前路线的运输任务的最终车辆;
[0111]
s47,判断集合c是否为空,
[0112]
若是,则将步骤s46确定的最终车辆执行的当前线路加入到初始解中
[0113]
若否,则返回步骤s42,构造下一条路线。
[0114]
对于步骤s4得到的初始解,本实施例使用自适应大邻域搜索(adaptive largeneighborhood search,alns)算法进行改进,alns是一个成熟的算法框架,其基本步骤如图5所示,从步骤s4得到的初始解出发,根据破坏算子和修复算子的权重采用轮盘赌的方式选择一个破坏算子和修复算子,设算子x的权重为w
x
,则算子x被选择的概率以初始解为当前解,并对当前解进行破坏和修复,从而得到一个新解,如果新解被接受则将其作为当前解,如果新解的目标值(即定义的优化目标函数的目标值)小于已知最优解的目标值,则将已知最优解更新为新解,最后根据选择的算子的表现来更新它们的权重,重复以上步骤,直至满足终止条件(终止条件为达到预设的时间或者达到预设的迭代次数)。更为具体地,如图5所示,对初始解进行改进的方法步骤包括:
[0115]
s51,将初始解作为当前解s和已知最优解sb;
[0116]
s52,根据破坏算子和修复算子的权重采用轮盘赌的方式选择一个破坏算子和修复算子;
[0117]
s53,对当前解s运用破坏算子和修复算子得到一个新解s
t

[0118]
s54,判断是否接受新解s
t
作为当前解s,
[0119]
若是,则令s=s
t
,然后转入步骤s55;
[0120]
若否,则直接转入步骤s55;
[0121]
s55,判断s
t
对应的目标值是否小于已知最优解sb对应的目标值,
[0122]
若是,则令sb=s
t
,然后转入步骤s56;
[0123]
若否,则直接转入步骤s56;
[0124]
s56,更新破坏算子和修复算子的权重;
[0125]
s57,判断是否满足对初始解进行改进的迭代终止条件,
[0126]
若是,则输出已知最优解sb;
[0127]
若否,则返回步骤s52。
[0128]
搭配不同的破坏算子与修复算子,alns可以用来求解不同的问题。车辆路径问题作为一个广泛研究的问题,目前已有多种经典的破坏算子和修复算子,本实施例中,可采用经典的如random removal(随机从当前解中移除一定数量的客户)、worst removal(从当前解中移除一定数量的造成目标值增加最多的客户)、shaw removal(从当前解中移除一定数量的较为相似的客户(这里的相似客户比如为当天货量和所在位置接近))。
[0129]
为了使得路线形状更优,本实施例还提供了两种新设计的破坏算子,分别定义为:proximity removal和hull overlap removal。
[0130]
proximity removal依次检查每条路线中的每个客户节点,如果该客户节点到其所在的路线中的中心客户节点的距离比到其他路线的中心客户节点的距离远时,则将该客户节点从该路线中移除。在进行修复的时候,该客户节点就有可能被插入到距某个中心客户节点更近的该中心客户节点所述的路线,从而使路线更为紧凑。例如,如图3所示,路线1中的中心客户节点是客户3,路线2的中心客户节点是客户8,路线3的中心客户节点是客户13。对于路线1,由于客户1到客户3的距离比到客户8的距离更远,所以需要将客户1从路线1中移除;对于路线2,由于客户6到客户8的距离比到客户3的距离更远,所以需要将客户6从路线2中移除;对于路线3,由于客户11和15到客户13的距离比到客户3的距离更远,客户12
到客户13的距离比到客户8的距离更远,所以需要将客户11、12、15从路线3中移除。破坏后的解如图6所示,客户1、6、11、12、15将没有路线服务。
[0131]
hull overlap removal依次检查每一条路线中的每个客户,如果该客户位于其他路线的凸包中,则将该客户从当前解中移除,从而在修复时进一步降低路线的重叠度。如图3所示,路线1的客户1、5位于路线3的凸包中,所以需要将客户1、5从路线1中移除;路线2的客户6、9、10也位于路线3的凸包中,所以也需要将它们从路线2中移除。破坏后的解如图7所示,客户1、5、6、9、10当前没有路线服务,并且剩余的客户均不位于其他路线的凸包中。
[0132]
而对于破坏后的解,本实施例采用经典的regret-k insertion修复算子将所有移除的客户重新插入到已有的路线或者新构造的路线中,最终可以得到一个新解。
[0133]
综上,本发明在车辆路径规划中考虑了路线形状,使得形成的路径规划方案更容易被调度员和司机接受。针对现实中的路线形状要求,定义了紧凑度和重叠度两种指标,通过加权平均的方式与车辆费用结合起来,从而将多目标问题转换为单目标问题,简化了路径规划算法,使得路径规划更加高效。采用插入算法构造初始解,并使用alns自适应大邻域搜索算法对初始解进行改进,结合独创设计的两种破坏算子,可以在较短时间内得到质量很高的解。
[0134]
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本技术说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1