APP下载

动态自适应人工鱼群算法研究

2018-12-27陈桂霞

无线互联科技 2018年20期
关键词:鱼群步长次数

陈桂霞

(江苏联合职业技术学院扬州分院 信息工程系,江苏 扬州 225000)

标准人工鱼群算法(Standard Artificial Fish Swarm Algorithm,AFSA)具有快速性收敛性,在运行过程中,鱼群在初期会呈现出较快的聚集现象,迅速向最优个体靠拢。但是,当人工鱼群运行到后期的时候,由于采用的步长、视野等参数缺少变化,其收敛速度会明显变慢,而且容易使算法跳过最优,导致算法的解精度降低。本文研究一个能有效提高人工鱼群算法解精度的方法—参数自适应变化机制,该方法令人工鱼群算法的两个主要参数visual和step,在一定范围内自适应动态变化[1]。

1 参数自适应机制

根据相关研究可知,参数visual决定了个体鱼的搜索范围,如果visual较大,则鱼个体的搜索范围比较广,能够发现更多的最佳个体,可保证较强的全局搜索;如果参数visual较小,则鱼个体的搜索范围较小,会局限于该个体的周围,以保证精细的局部搜索。

根据群体智能算法的空间搜索机制可知,群体智能算法在运算早期应该着重于全局搜索,以保证较快的收敛速度和广阔的搜索范围[2]。在运算后期则应该着重于精细的局部搜索,针对最佳个体周围邻域进行搜索,以提高算法的求解精度。故visual的变化采用动态机制处理要优于固定机制,考虑到logistic模型的动态变化性,故采用logistic模型对visual进行调整。设visual的变化范围是[visualmin,visualmax],则参数visual的变化设定为公式1。

根据该模型,可得到visual的缩放变化公式2。

公式中,t为算法的迭代次数,a为初始衰减率,用于调整visual的下降速度。a的初始值越大,visual的下降速度越快;反之,visual的下降速度越慢。从公式1可以知道,当t=0时,visual(t)=visualmax,随着t不断迭代增加,visual逐渐收敛于visualmin。

由人工鱼群算法的计算原理可知,步长step亦会影响算法中个体的搜索范围。step越大,个体鱼向最优位置靠近的速度越快,如果算法处于早期,采用较大的step,将会使算法的收敛速度较快,且跳出局部极值的能力也更强;反之,如果在算法运行早期采用较小的step,则会使算法的收敛速度变慢,且跳出局部极值约束的能力变差。

在算法的后期,因为已经基本确定了最优解的搜索范围,则应选择较小的step,以提高算法的最终求解精度,避免由于过大的步长使算法跳过了优质解,所以这种动态措施要优于固定step的机制[3]。经过上述分析,可以知道,在鱼群算法的早期应采用较大的step值,而在后期应逐渐收敛到较小的step值。设step的取值范围为[stepmin,stepmax],设定其变化规律为公式3。根据该模型,可得步长step的调整公式4。

根据经验可设置visual和step两个值的取值范围。通常visual的取值在1~10;step的取值在0.5~8;a设为100。

2 算法实现

动态自适应人工鱼群算法(Dynamic Adaptive Artificial Fish Swarm Algorithm,DLAFSA)

输入:规模为N的种群。

输出:最佳个体Xgbest(t)。

步骤1:初始化算法参数,包括种群规模、视野最大值及最小值、步长最大及最小初始值、尝试次数。迭代次数设置t=0。

步骤2:在解空间内对鱼群采用随机机制进行初始化。

步骤3:扫描种群,取出当前最优解Xgbest(t),写入公告板。

步骤4:鱼群中全部个体执行随机自由游动,并更新各自的自身状态Xi(t)。

步骤5:鱼群内个体在各自的视野visual内执行觅食行为。

步骤6:鱼群内的个体执行聚群操作。

步骤7:鱼群内的个体执行追尾操作。

步骤8:对visual和step分别按照公式2和4进行修正调整。

步骤9:更新公告板,迭代计数器t=t+1。

步骤10:若算法满足终止条件,则输出公告板上的最优解Xgbest(t),算法结束。否则,如果算法进入后期,则随机淘汰种群内的10%的个体,然后在解空间上,再以Xgbest(t)为中心,以2×visual为半径的范围内,随机生成10%的个体,并跳转到步骤4。

3 仿真实验和结论

将DLAFSA算法与标准人工鱼群算法应用C语言进行编码实现,并对两个算法进行实验对比。采用8个经典Benchmark函数进行测试,8个函数分别是:Sphere函数f1(x)、Griewank函数f2(x)、Rastrigin函数f3(x)、Ackley函数f4(x)、Rosenbrock函数f5(x)、Schwefel函数1f6(x)、Quartic函数f7(x)、Schwefel函数2f8(x)。

从测试数据可以看出,对于所有测试函数来讲,在f1和f6两个函数上,两种算法均能获得最佳解,在其他6个函数上,两个函数均没有获得最佳解,但是对比两个算法所获得的解平均值和解方差来看,改进之后的算法明显优于标准人工鱼群算法。表1列出了两个算法在8个测试函数上的收敛成功次数和收敛成功时所需的平均迭代次数,从表1数据可以看出,改进后的自适应人工鱼群算法在8个函数上的收敛成功次数要明显大于标准人工鱼群算法,其所需迭代次数也明显小于标准人工鱼群算法。基于以上数据的对比可以得出结论,改进之后的DLAFSA较AFSA能更好地保证全局搜索和局部搜索的平衡。

表1 DLAFSA与AFSA在Benchmark函数上的成功次数迭代次数比较

本文通过引入Logistic模型,使人工鱼群算法的两个重要参数—步长和视野实现动态自适应调整,使鱼群中的个体在早期具有较大的步长和较宽阔的视野,以保证算法具有较快的收敛速度和较广阔的搜索范围,而在后期逐渐转入精细的局部搜索,使算法的解精度得以提高。最终实验结果表示:动态自适应人工鱼群算法的解精度明显优于标准人工鱼群算法。

猜你喜欢

鱼群步长次数
机场航站楼年雷击次数计算
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
2020年,我国汽车召回次数同比减少10.8%,召回数量同比增长3.9%
一类无界算子的二次数值域和谱
基于改进鱼群优化支持向量机的短期风电功率预测
基于人工鱼群算法的光伏阵列多峰MPPT控制策略
基于逐维改进的自适应步长布谷鸟搜索算法
多子群并行人工鱼群算法的改进研究
一种新型光伏系统MPPT变步长滞环比较P&O法
一种新颖的光伏自适应变步长最大功率点跟踪算法