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

一种基于改进蚁群算法的并行时间窗车辆路径规划方法与流程

2022-03-09 01:07:09 来源:中国专利 TAG:


1.本发明涉及车辆路径规划技术领域,具体是指一种基于改进蚁群算法的并行时间窗车辆路径规划方法。


背景技术:

2.带有时间窗的车辆路径问题(vehicle routing problem with time windows,vrptw)作为传统车辆路径问题(vehicle routing problem,vrp)的一个扩展,除了考虑车辆容量约束,还要考虑车辆发车时间以及客户服务顺序,并要在客户指定的时间窗内将货物送达。并行时间窗下的车辆路径问题(vehicle routing problem under parallel time windows,vrpptw)是vrptw问题的一种情况,该问题要求在相同时间窗内,同时满足多个客户的需求,这类vrptw问题在实际物流配送中是广泛存在的。例如,对于生鲜品类的配送,就存在着多个客户要求将货物在同一时间送达的情况。
3.蚁群算法是一种用来寻找优化路径的概率型算法,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。该算法利用蚂蚁行走的路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路程较短的蚂蚁释放的信息素量较多,随着时间的推移,较短路径上的信息素浓度会逐渐增加,选择该路径的蚂蚁个数也越来越多。最终,整个蚁群都会在正反馈的作用下选择到最佳路径,此时便得到待优化问题的最优解。这种算法具有分布计算、信息正反馈和启发式搜索的特征,本质上是进化算法中的一种启发式全局优化算法。近年来,蚁群算法凭借着其极强的鲁棒性、协同性及隐含的并行性,已然成为众多启发式算法中的佼佼者。
4.传统的蚁群算法是由一只蚂蚁遍历完所有节点再对方案进行分割,若订单数据中最早的时间窗出现并行时,传统蚁群算法便显现出局限性。如某公司三个客户订单的预约提货时间相同,当蚂蚁选择第一站时,只会从这三个客户中选择一个客户进行服务,从而导致另外两个客户服务超时,算法失效。为此,当多个初始时间窗相同时,就产生了并行需求,需要利用多只蚂蚁同时并行从起始点出发进行遍历。目前应用蚁群算法求解该问题的研究大多是通过改变信息素更新方式或改变节点选择方式,提高优化效果,较少考虑利用多个蚂蚁并行访问节点的方式;加之该问题是强np难题,导致目前该问题的有效的解决方案极少。


技术实现要素:

5.针对上述情况,为克服现有技术的缺陷,本方案提供一种基于改进蚁群算法的并行时间窗车辆路径规划方法,本方案旨在解决并行时间窗下的车辆行驶路径规划问题,提供了一种改进蚁群算法,克服传统蚁群算法在求解并行时间窗约束下的配送路径问题的局限性。
6.本发明采取的技术方案如下:本方案基于改进蚁群算法的并行时间窗车辆路径规划方法,包括以下步骤:
7.步骤1:针对物流数据,基于python编写数据处理程序,借助百度地图api批量获取订单两地的实地距离,得到距离矩阵;
8.步骤2:根据订单要求确定硬时间窗,接着按时间窗顺序对物流数据进行排序,然后筛选出初始时间窗相同的个数,以此来确定改进蚁群算法中的起始蚂蚁数m;导入由步骤1所得到的距离矩阵以及订单信息、时间窗矩阵和蚁群算法所需初始化变量,对计算模型参数进行初始化;
9.步骤3:迭代搜索并反馈;
10.本步骤反复执行,直至算法满足设定的终止条件为止;在每一轮迭代过程中都将进行如下操作:首先生成m只蚂蚁第一次所访问的订单并记录,并将对应蚂蚁的已访问订单从列表中删除,更新对应蚂蚁的容量,迭代次数 1,然后判断是否达到终止条件,若达到则输出最优方案并结束,否则执行步骤4;
11.步骤4:根据时间窗约束筛选可执行下个订单的蚂蚁,若筛选完后为空集,则初始化一只新的蚂蚁执行此订单,并更新对应蚂蚁的质量、时间;若筛选完后不为空集,继续筛选出根据质量约束可执行下个订单的蚂蚁;若存在依据质量筛选可执行下个订单的蚂蚁,则执行步骤5,否则,选择距离最近的蚂蚁返回后能执行此订单或者次于距离最近的蚂蚁返回后能执行此订单,若不存在可执行此订单的蚂蚁,执行步骤3;
12.步骤5:计算可执行下个订单的蚂蚁概率,根据轮盘赌法选择下个订单并记录。
13.进一步地,所述蚁群算法所需初始化变量包括最大迭代次数、蚁群数量、信息素浓度与权重、能见度及权重、等待区间权重。
14.进一步地,所述终止条件为完成所有订单,迭代次数达到设置最大迭代数iter_max,且总距离在规定的最后f次迭代中不再下降,其中iter_max和k根据数据规模和计算复杂度,依据优化目标人为确定。
15.进一步地,所述总距离为同一起点(物流中心或接驳点)发出的所有车辆完成全部订单并返回起点所历经的路径之和。
16.本方案依照订单的时间顺序,计算每只蚂蚁前往下一站的概率,依据轮盘赌法选择下一站,当蚂蚁的容量超过规定容量时,则必须返回出发点,若所有蚂蚁在执行当前最紧迫的订单时都发生超时,则初始化一只蚂蚁,由该蚂蚁执行此订单。改进后的蚁群模型通过增加每次迭代的蚁群数量解决了当订单数据的初始时间出现并行时的情况。每次只对迭代蚁群中的最优蚁群所经过路径进行信息素更新,有利于缩短收敛时间,增加结果的准确性。并且在选择下一站的过程中,采取轮盘赌法依概率选择下一站,避免陷入局部最优解。
17.采用上述结构本发明取得的有益效果如下:本方案改进蚁群算法能够适配实际配送场景所抽象的并行时间窗约束下的vrp问题,解决该特定问题提供有效的解决方案,具有良好的灵活性和拓展性,并且良好的继承了蚁群算法快速高效的特点,能够快速地给出可行解,具有极大的实用价值。
附图说明
18.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
19.图1为本方案改进后蚁群算法程序框图;
20.图2为传统蚁群算法与本方案改进后蚁群算法对比图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
23.在此,并行时间窗约束下vrp问题具体实例场景为物流车辆作业配送场景,即k辆型号相同的作业车辆从一个物流配送中心出发,且每辆车容量限制应满足其载重量约束,n个客户都有相应的时间窗约束,且有若干个客户初始时间窗相同,需要以最小车辆行驶的总距离满足所有的客户需求。
24.如图1所示,本实施例所提供的解决行时间窗约束下vrp问题的基于改进蚁群算法的并行时间窗车辆路径规划方法,包括以下步骤:
25.步骤1:针对物流数据,基于python编写数据处理程序,借助百度地图api批量获取两地的实地距离;
26.步骤2:根据订单要求确定硬时间窗,接着按时间窗顺序对物流数据中所有订单的硬时间窗进行排序,然后筛选出初始时间窗相同的个数,以此来确定改进蚁群算法中的起始蚂蚁数m;导入由步骤1所得到的距离矩阵以及其他结构化数据,并对计算模型参数进行初始化参数;
27.步骤3:迭代搜索并反馈;
28.本步骤反复执行,直至算法满足设定的终止条件为止;在每一轮迭代过程中都将进行如下操作:首先生成m只蚂蚁第一次所访问的订单并记录,并将对应蚂蚁的已访问订单从列表中删除,更新对应蚂蚁的容量,迭代次数 1,然后判断是否达到终止条件,若达到则输出最优方案并结束,否则执行步骤4;
29.步骤4:根据时间窗约束筛选可执行下个订单的蚂蚁,若筛选完后为空集,则初始化一只新的蚂蚁执行此订单,并更新对应蚂蚁的质量、时间;若筛选完后不为空集,继续筛选出根据质量约束可执行下个订单的蚂蚁;若存在依据质量筛选可执行下个订单的蚂蚁,则执行步骤5,否则,选择距离最近的蚂蚁返回后能执行此订单或者次于距离最近的蚂蚁返回后能执行此订单,若不存在可执行此订单的蚂蚁,执行步骤3;
30.步骤5:计算可执行下个订单的蚂蚁概率,根据轮盘赌法选择下一站并记录。
31.首先将并行时间窗约束下的车辆路径问题抽象为数学模型,建立混合整数规划模型:
32.g=(v,a)表示无向连通图,v表示图中所有节点集合,包括接驳点(配送中心)和客户点,a表示图中所有弧的集合,由于此问题中起点和终点相同,因此接驳点用0表示。n=v\0,表示客户点集合,k表示所有车辆的集合,c
ij
表示车辆从i点到j点的路程,运输时间为
t
ij
。x
ijk
为0-1变量,当运输车辆k经过弧(i,j)的时候x
ijk
取值为1,反之为0。w
ij
表示车辆k到达顾客点i的时间,δ 表示车辆离开,δ-表示车辆到来。m是一个足够大的数。
[0033][0034][0035][0036][0037][0038][0039][0040][0041][0042][0043]
上述模型中,(1)表示目标函数,表示总运输车辆在规定的约束下服务完全部客户所用的距离和最小;(2)表示每个顾客只能被一辆车服务一次;(3)表示全部车辆必须从起始点出发;(4)表示第k辆车服务点j后必须离开;(5)表示每辆车最终都必须要回到起点;(6)每辆车的载重量要小于最大载重量;(7)表示到达顾客点的时间表达式;(8)服务车辆到达每个顾客的时间窗约束,ei,li分别表示最早和最迟开始服务时间,本文中最早和最迟开始服务时间一致,车辆必须按时到达,且有不少于2个客户的初始时间窗相等;(9)表示x
ij
为0-1变量。其具体的流程步骤文字说明如下:
[0044][0045][0046]
本方案依照订单的时间顺序,计算每只蚂蚁前往下一站的概率,依据轮盘赌法选择下一站,当蚂蚁的容量超过规定容量时,则必须返回出发点,若所有蚂蚁在执行当前最紧迫的订单时都发生超时,则初始化一只蚂蚁,由该蚂蚁执行此订单。改进后的蚁群模型通过增加每次迭代的蚁群数量解决了当订单数据的初始时间出现并行时的情况,如图2所示。每次只对迭代蚁群中的最优蚁群所经过路径进行信息素更新,有利于缩短收敛时间,增加结
果的准确性。并且在选择下一站的过程中,采取轮盘赌法依概率选择下一站,避免陷入局部最优解。
[0047]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0048]
以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0049]
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
再多了解一些

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

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

相关文献