改进型人工鱼群算法的物流配送应用研究
作者: 汪其
摘要:研究物流配送问题,可以提高物流服务质量。在一般的传统物流配送中,路径选择较多采用人工搜索的方法,效率低、成本较高。人工鱼群算法是一种智能启发式算法,具有搜索速度快,精度高等特点,被广泛应用于解决路径搜索问题。文章在传统的人工鱼群算法基础上,通过采用鱼群视野自适应、移动步长自适应、参数设置等改进策略,提出了一种改进人工鱼群算法的物流配送方法,该方法能加快算法收敛速度,提高算法的精度和效率。仿真结果表明,改进后的人工鱼群算法优于传统配送方法和蚁群算法,有效地解决了物流配送问题,提高了物流配送效率。
关键词:鱼群算法;改进的人工鱼群算法;自适应;物流配送
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2022)33-0013-04
1 概述
物流配送是指物流企业依据客户要求,对货物进行备货、储存、分拣及配货、配装、配送运输、送达服务、配送加工等一系列的物流活动过程。
目前,在平时物流配送过程中,由于用户多、路线复杂,有时可能会因为绕路、走重复的路、交通堵塞或者上一环节的延误而耽误时效性,还会出现比如:身体出现情况,纪律性比较低等物流运输过程中出现迟到的人为因素等,但这也是可以避免的,只要提前做好物流运输路线的确定工作,就可以避免在后续物流运输过程中出现绕路及重复搬运的情况,这也是确保物流运输效率的一种方式。
因此,如何选择物流配送运输的最佳路径,使配装和配送路径有效搭配是物流配送的关键环节。合理确定配送路径就是用最少的动力、走最短的里程、花最少的费用,以最快的速度把货物送达客户。因此,如何合理优化配送路径,制定高效的运输路线,直接影响着物流运输的速度和效益。
配送路径问题是NP-hard问题。目前,智能算法解决组合优化问题得到了广泛的应用。国内外很多专家学者运用遗传算法[1-7]、蚁群算法[8-17]、人工鱼群算法[9-33]等智能启发式算法求解物流配送问题,取得了不错的研究效果。
人工鱼群算法 (AFSA) [25-28]最早由李晓磊博士于2003年提出,该算法通过模拟自然界中鱼群的觅食行为,提出一种基于动物自治体的优化方法,很好地解决非线性函数优化等问题。人工鱼群算法主要是通过模拟鱼的觅食、聚群以及追尾行为,并通过鱼的个体行为实现局部寻优,从而最终得到全局最优解。具有初始值要求不高、算法实时性高等特点,通常应用到一些精度要求不高、快速找到可行解的优化问题。但是,人工鱼群算法也存在后期收敛速度慢等缺点,因此,本文基于传统鱼群算法原理,通过采用自适应鱼群移动步长和感知距离等改进方法,并将其运用到物流配送路径中。仿真实验表明,采用的改进人工鱼群算法与传统算法相比,具有精度更高、更节省运输成本等特点。
2 物流配送问题
物流配送问题是系统中的配送中心向多个客户运送货物,要求合理安排配送路径,使整个配送运行费用最小, 条件约定如下:
(1)整个系统中有且仅有一个配送中心,编号为:0;
(2)每个客户均匀分布于配送平面区域中,位置坐标和需求量一定,且是可到达的;
(3)每个客户只能由一辆汽车送货,且只能送货一次;
(4)每条配送路径上各客户的需求总和不超过配送车辆的最大载重量,且汽车的载量一定;
(5)运费以路径费用总和计算。
当然,本文为了简化研究便于数据比较,一些因素暂时未考虑,诸如:每个客户所需货物在承诺时间内送达,不同汽车的不同载量等。
3 鱼群算法
鱼群算法的基本思想是依据鱼群中鱼生存的数目最多的地方是营养最丰富地方的特点,通过模拟鱼群寻找食物的过程,寻找算法最优解。
首先,假设人工鱼状态为[Xi=x1,x2,⋅⋅⋅,xn],其中,[Yi=f(xi)]为当前人工鱼[Xi]对应的食物浓度;[dij=Xi-Xj]表示人工鱼[i]和[j]距离;人工鱼的感知距离用[Visual]表示;[Step]为人工鱼移动步长;[δ]为拥挤度因子,[try_number]为尝试次数,[Rand()]为[(0,1)]之间的随机数。
3.1 觅食行为
将当前人工鱼[Xi]的食物浓度[Yi]与其感知内的任意人工鱼[Xj]的食物浓度[Yj]进行比较,当[Yi<Yj],则向[Xj]移动一步;反之,重新选择[Xj];直至[try_number]次后,仍不满足[Yi<Yj],则随机移动一步。状态转移公式如式(1)、(2)。
[Xj=Xi+Rand()⋅Visual] (1)
[Xi/next=Xi+Rand()⋅Step⋅Xj-XiXj-Xi,Yi<YjXi+Rand()⋅Step,else] (2)
3.2 聚群行为
当[dij<Visual]时,目前人工鱼[Xi]所在邻域内人工鱼的总数量为[nf],中心位置状态用[Xc]表示,当[Ycnf>δYi],说明当前中心位置食物浓度较高,且无明显拥挤,人工鱼就向其移动一步,即向中心逐步聚集,形成聚群行为;反之,向其他区域进行搜索,形成觅食行为。
[Xi/next=Xi+Rand()⋅Step⋅Xc-XiXc-Xi,Ycnf>δYiAF_prey(),else] (3)
3.3 追尾行为
当[dij<Visual]时,当前人工鱼[Xi]邻域内的最大伙伴鱼[Xj]对应的食物浓度为[Yj],如果[Yjnf>δYi],说明伙伴鱼[Xj]位置食物浓度较高,拥挤度较低,则人工鱼向伙伴鱼[Xj]的方向移动一步,这就是追尾行为;反之,向其他区域进行搜索,形成觅食行为。
[Xi/next=Xi+Rand()⋅Step⋅Xmax-XiXmax-Xi,Yjnf>δYiAF_prey(),else] (4)
4 改进人工鱼群算法
针对基本鱼群算法存在精度不高、后期收敛慢等不足,本文提出采用自适应鱼群视野和移动步长等新方法,更好地解决了物流配送路径问题,节省了运输成本。
4.1 感知距离自适应变化
在基本鱼群算法中,人工鱼的感知距离[Visual]通常是设定的一个固定值,其值的大小直接决定了算法的好坏,若[Visual]值过大,则人工鱼收敛速度快,全局搜索能力强,但是搜索解不够精确;若[Visual]值过小,局部搜索能力强,算法的速度慢。因此,笔者采用公式(5)进行视野自适应变化。
[Visual=Visual0⋅L-SL] (5)
其中:[L]为算法总迭代次数,[Visual0]人工鱼感知距离初始值,[S]为算法目前已迭代次数。由公式(5)可以看出,人工鱼的感知距离会随着算法迭代次数的增加而逐渐变小。在算法的初期,鱼群的感知距离比较大,可以保证算法的全局搜索性,随着算法运行,此时的搜索也更靠近最优解,感知距离逐渐变小,更能保证算法求解的精度。
4.2 移动步长自适应变化
基本的鱼群算法中,移动步长是随机设定的,步长越大,算法后期容易出现震荡现象,导致算法结果精度不高;小步长搜索提高了算法精度,但速度较慢,易陷入局部最优解。因此,本文提出一种自适应移动步长方法,即在算法初期采用固定大步长进行算法求解,保证算法求解速度,减少搜索时间,在算法的中后期,则采用公式(6)进行自适应移动步长计算。
[Step=Rand()⋅dij] (6)
该计算公式主要依据当前鱼群中人工鱼状态[Xi]对应的浓度[Yi],以及其感知范围内一个状态[Xj]对应的浓度[Yj],当[Yi<Yj]时,则进行算法计算。该自适应方法将人工鱼个体之间的距离因子[dij]、随机函数[Rand()]作为计算依据,能在算法中后期提高搜索精度、增强局部搜索能力、求解到全局最优解。
4.3鱼群规模[N]、尝试次数[try_number]等参数的讨论分析
人工鱼群算法也是一种群体智能算法,经研究表明,同其他群智能算法一样,人工鱼数目越多,全局搜索能力越强,但是算法迭代的计算工作量也越大。因此,在实际应用中,在保证收敛精度和速度的前提下,人工鱼数目不宜过大,应选择适中。
尝试次数[try_number]是在鱼群觅食行为中的一个特定参数,表示人工鱼需要移动到下一个合适状态时需要尝试的次数。当小于尝试次数[try_number]时,人工鱼进行觅食行为,当大于尝试次数[try_number]时,表示在范围内没有符合条件的状态,则结束觅食行为,执行随机行为。实验研究表明:尝试次数[try_number]的次数较少时,人工鱼能较容易跳出局部值,从而提高搜索效率。
5 实验仿真及分析
5.1 实验环境及计算过程
在本仿真实验中,笔者以参考文献[31]的数据为例,同时在实验中对比了文献[31]中的两种算法,结果表明本文改进的人工鱼群算法的优越性。
结合参考文献[31]的数据,本实验的数据如下:某公司有一个物流中心,有1台载重12吨的货车,该车的油耗为20L/百公里,车速为60km/h,平面中有7个客户点(编号为1~7),1个物流中心(编号为0),物流中心和客户点的坐标及需求量如表1所示。
(1)基本物流配送
依据参考文献[31],基本物流配送如图1:
从分析结果可以看到,路线1:0→5→7→6→0,总长度为108.121km,路线2:0→4→2→3→1→0,总长度为110.547km,合计218.668km。
车速为60km/h,总时间为:
[t1=218.668km/(60km/h)≈3.644h]
货车的油耗为20L/百公里,总耗油量为:
[Q1=20L/百公里×(218.668公里/100)≈43.734L]
(2)蚁群算法的物流配送路径
在实验中,蚁群算法的各个参数参见参考文献[31],蚁群算法的物流配送如图2:
路线1:0→4→2→3→0,总长度为64.491km,路线2:0→1→5→7→6→0,总长度为144.177km,合计208.668km。
车速为60km/h,总时间为:
[t2=208.668km/(60km/h)≈3.478h]
总耗油量为:
[Q2=20L/百公里×(208.668公里/100)≈41.734L]
(3)本文改进的人工鱼群算法
在实验中,本文改进的人工鱼群算法的各个参数设置如下:其中人工鱼群中的参数[Trynumber=50],[Visual0=2.5],[δ=2],[L=30],鱼群种群数量[N=30],改进的人工鱼群算法的物流配送路径如图3所示。
路线:0→4→2→3→1→5→7→6→0,总长度为187.65km。
车速为60km/h,总时间为:
[t3=187.65km/(60km/h)≈3.128h]