计算机科学与应用  >> Vol. 10 No. 9 (September 2020)

一种基于自适应搜索策略的改进萤火虫算法
An Improved Firefly Algorithm Based on Adaptive Search Strategies

DOI: 10.12677/CSA.2020.109173, PDF, HTML, XML, 下载: 156  浏览: 267  国家科技经费支持

作者: 于 干:阜阳师范大学信息工程学院,安徽 阜阳;金丹丹:阜阳师范大学计算机与信息工程学院,安徽 阜阳

关键词: 萤火虫算法自适应搜索策略反向学习优化Firefly Algorithm Adaptive Search Strategies Opposition-Based Learning Optimisation

摘要: 萤火虫算法(FA)是一种基于群智能的优化技术,它在很多优化问题上表现出较好的性能。然而,它求解复杂优化问题时存在一些问题,如收敛速度慢,精度低。针对这些问题,本文提出了一种新的萤火虫算法(取名AFA),该方法使用了三种混合策略,以获得好的优化性能。它首先使用一种自适应的参数方法来动态改变步长参数,然后应用一种改进的搜索策略来消除吸引力,于是,AFA不再包含光吸收系数和初始吸引力这2个参数;再使用反向学习来提高解的精度。仿真结果表明,本文提出的AFA算法优化结果优于MFA及PAFA算法。
Abstract: Firefly algorithm (FA) is a recently proposed optimisation technique, based on swarm intelligence, which has shown good optimisation performance. However, FA suffers from slow convergence and low accuracy of solutions. To improve this case, this paper presents a new firefly algorithm (AFA) by using three hybrid strategies to obtain a good optimisation performance. First, an adaptive parameter method is used to dynamically changing the step factor. Second, AFA uses a modified search strategy and eliminates the concept of attractiveness. So, HFA does not include two parameters, ab-sorption coefficient and initial attractiveness. Third, a concept of opposition-based learning is used for improving the accuracy of the global best solution. Experiments on some benchmark problems show that AFA is superior to mimetic FA (MFA) and probabilistic attraction-based FA (PAFA).

文章引用: 于干, 金丹丹. 一种基于自适应搜索策略的改进萤火虫算法[J]. 计算机科学与应用, 2020, 10(9): 1639-1645. https://doi.org/10.12677/CSA.2020.109173

1. 标准萤火虫算法

萤火虫算法是由剑桥大学的Yang教授提出的一种群智能算法,它模拟了萤火虫的闪烁求偶行为。类似于粒子群算法,萤火虫算法也是一种基于群体的随机搜索算法。群体中的每个个体(萤火虫)是对应问题的一个候选解。萤火虫算法的搜索依靠个体之间的吸引而产生移动来完成,适应值较好(较亮)的萤火虫具有较大的吸引力,使得适应值较差(较暗)的萤火虫向其移动。

个体(萤火虫)之间的吸引力定义为:

β ( r i j ) = β β 0 e γ r i j 2 (1)

其中rij表示萤火虫之间的距离,它定义为:

r i j = X i X j = d = 1 D ( x i d x j d ) 2 (2)

对于两个不同的萤火虫Xi和Xj,适应值较差(较暗)的萤火虫将向较好的萤火虫移动。假设Xj优于Xi,则Xi向Xj移动,移动方式表示为:

x i d ( t + 1 ) = x i d ( t ) + β 0 e γ r i j 2 ( x j d ( t ) x i d ( t ) ) + α ε i d ( t ) (3)

标准FA中的参数都事先设定的,FA的搜索能力受到其控制参数(如步长因子)的影响,会导致算法收敛早熟;标准FA因参数设置不当而导致算法无法收敛或收敛速度过慢。为了解决这两类问题,使算法具有较好的优化性能,需要对标准FA进行改进。

2. 改进算法的实现

萤火虫算法 [1] [2] 是基于以下三个理想化的特征提出的:(1) 萤火虫不分性别,即萤火虫之间的相互吸引只考虑个体发光的亮度;(2) 吸引力与发光亮度成正比,与个体之间的距离成反比;(3) 萤火虫的亮度由待优化的目标函数值决定,即 I i = f ( x i ) 。FA的关键思想是亮度小的萤火虫被亮度大的萤火虫吸引而向其移动,并更新自身的位置。萤火虫的发光亮度取决于自身所处位置的目标值,亮度越高所表示的目标值越好,吸引其他萤火虫的能力也越强。若相邻的个体亮度相同,萤火虫则随机移动。

在标准的FA中,每个萤火虫都能被人群中其他明亮的萤火虫所吸引,这种吸引力机制称为完全吸引模式 [3] [4],在该模型下,标准FA具有双环操作,因此,计算时间复杂度很高,同时FA的搜索能力受到其控制参数(如步长因子)的影响 [5]。为了解决这个问题,本文提出了一种自适应的参数策略来动态调整步长因子,来消除吸引力。

1) 自适应搜索策略

一些文献指出,FA的搜索能力受到其控制参数(如步长因子)的影响。为了克服这个问题,本文使用了一种自适应的参数策略来动态调整步长因子α的值。

α ( t + 1 ) = ( 1 9000 ) 1 / t α ( t ) (4)

其中,t指进化的代数。

基于Rao等人提出的Jaya算法,本文针对萤火虫的移动方式进行了下面改进:

x i d ( t + 1 ) = x i d ( t ) + r 1 d ( x j d ( t ) | x i d ( t ) | ) r 2 d ( x w d ( t ) | x i d ( t ) | ) (5)

其中,r1d和r2d是2个[0,1]之间的随机数,Xw是当前种群中的最差解。与原有的萤火虫移动公式相比,上述改进公式消除了吸引力的概念。因此,我们新提出的算法不再包含初始吸引力和光吸收系数两个参数。

2) 反向学习过程

为了加快算法的收敛,本文使用了反向学习策略(Opposition-Based Learning OBL)。对于当前种群中的最好解Xbest,本文利用OBL产生一个反向解 X b e s t *

X b e s t * ( t ) = a ¯ + b ¯ X b e s t ( t ) (6)

其中, [ a ¯ , b ¯ ] 表示当前种群的搜索区间。如果新产生的反向解 X b e s t * 优于Xbest,则使用 X b e s t * 替换Xbest。一些研究表明 [6] [7],反向学习策略OBL有较高的概率找到的反向解比当前解更好。

3) 算法实现过程

Begin

Initialise the population;

while the stopping condition is satisfied do

Update the step factor according to equation (4);

for i = 1 to N do

for j = 1 to N do

if f(Xj) < f(Xi) then

Conduct the movement according to equation (5);

Compute the fitness value of Xi;

end if

end for

Conduct the Xbest* according to equation (6);

ifXbest* be better than Xbest

Xbest = Xbest*

end if

end for

end while

End

3. 使用基准函数来测试AFA算法的性能

3.1. 测试函数

为了验证AFA算法性能,本文使用了7个基准函数进行测试 [8] [9] [10] [11],所有测试函数均为最小值优化函数且全局最优解均为零。

测试函数1:

F 1 ( X ) = i = 1 D x i 2 , x i [ 100 , 100 ] (7)

测试函数2:

F 2 ( X ) = i = 1 D | x i | + i = 1 D x i , x i [ 10 , 10 ] (8)

测试函数3:

F 3 ( X ) = i = 1 D ( j = 1 i x j ) 2 , x i [ 100 , 100 ] (9)

测试函数4:

F 4 ( X ) = max i ( | x i | , 1 i D ) , x i [ 100 , 100 ] (10)

测试函数5:

F 5 ( X ) = i = 1 D 1 ( 100 ( x i x i 2 ) 2 + ( x i 1 ) 2 ) , x i [ 30 , 30 ] (11)

测试函数6:

F 6 ( X ) = i = 1 D i x i 4 + r a n d ( 0 , 1 ) , x i [ 1.28 , 1.28 ] (12)

测试函数7:

F 7 ( X ) = 418.9829 D i = 1 D 1 ( x i sin ( | x i | ) ) , x i [ 500 , 500 ] (13)

3.2. 测试结果分析

测试实验中上述7个函数维度D分别设置为为10和30,并将AFA的计算结果与MFA和PAFA进行比较,结果显示,本文提出的HFA优于其它两种改进的FA算法。所有算法的终止条件均设置为适应值函数最大个数(MaxFEs)。维度D = 10时,MaxFEs设置为1.0e+04;维度D = 30时,MaxFEs设置为5.0e+04。对于两种不同的维度值,算法的其他参数α,β0,γ分别设置为0.2,1.0,及1/Γ2。

表1展现了当维度D = 10时,经过30代的演化计算三种算法所得到的最优函数值。从结果来看AFA函数结果除函数F7外均优于MFA。求解函数F7问题时,算法MFA和PAFA的优化结果优于AFA算法的结果。与MFA算法类似的是,AFA算法求解F1至F6函数所表现出的其他性能(收敛速度、不易陷入局部寻优等)亦优于PAFA算法,如对于所有的测试函数求解过程中,当AFA算法已找到最优函数值时,算法MFA和PAFA仍陷入局部寻优过程。正如文章开始提到的“标准FA的搜索能力受到其控制参数(如步长因子)的影响,会导致算法收敛早熟”,通过自适应策略,本文提出的AFA算法不易陷入局部寻优的过程。

表2展现了当维度D = 30时,经过30代的演化计算三种算法所得到的最优函数值。如表所示,AFA求解F1,F2,F3,F5,F6,F7函数展现了较好的算法性能。MFA在求解F4函数时优于AFA。相对于PAFA,求解F1,F2,F5,F6函数时MFA能够找到更加精确地解。求解F3,F4,F7函数时PAFA性能优于AFA。

Table 1. Computational results of each algorithm for D = 10

表1. 维度D = 10各算法寻优结果

Table 2. Computational results of each algorithm for D = 30

表2. 维度D = 30各算法寻优结果

图1展示的是当维度D = 10,算法AFA、MFA和PAFA求解函数F1,F2时的算法收敛过程。

(a) (b)

Figure 1. The search processes of AFA, MFA, and PAFA for D = 10, (a) function F1; (b) function F2

图1. D = 10,AFA、MFA及PAFA的收敛过程,(a) 功能F1,(b) 功能F2

图2展示的是当维度D = 30,算法AFA、MFA和PAFA求解函数F1,F2时的算法收敛过程。

(a) (b)

Figure 2. The search processes of AFA, MFA, and PAFA for D = 30, (a) function F1; (b) function F2

图2. D = 30,AFA、MFA及PAFA的收敛过程,(a) 功能F1,(b) 功能F2

从收敛曲线来看,本文提出AFA的收敛速度也比MFA和PAFA快。通过标准反向学习过程,AFA解决了“FA因参数设置不当而导致算法无法收敛或收敛速度过慢”问题。

测试实验中,MaxFEs的值设置的较小。当维度从10增加到30时,MaxFEs的值从1.0e+04增加到5.0e+04,算法MFA和PAFA的实验结果值得到了改进,但如果将MaxFEs设置为一个更大的值时,AFA可能会有更好的表现。通过实验可以得出,MaxFEs的值对AFA的算法性能影响很大。

4. 结束语

本文提出了一种新的数值优化算法AFA,该算法基于标准的萤火虫算法FA,采用三种改进的措施,包括自适应的参数方法来动态改变步长参数,应用一种改进的搜索策略来消除吸引力;再使用反向学习来提高解的精度。为了验证AFA的算法性能,文章测试了7个标准的数值优化函数,并分别测试了所测7个函数不同维度值。实验结果表明,AFA算法在求解大部分函数时所表现出来的性能都优于算法MFA和PAFA。

然而,通过函数收敛图可以发现,AFA在整个优化过程中,该算法的收敛速度并没有明显优于MFA和PAFA算法,如何解决这一问题,使AFA算法性能更好,这将是作者今后的研究工作之一。

基金项目

本文受到安徽省省级示范实验实训中心项目(2018sxzx38);2018教育部智融兴教课题(2018A01010);教育部2019年协同育人项目(201901258002);安徽省教育厅高校优秀拔尖人才资助项目(gxyqZD2020054)等项目资助。

参考文献

[1] Wang, H., Wang, W.J., Sun, H. and Rahnamayan, S. (2016) Firefly Algorithm with Random Attraction. International Journal of Bio-Inspired Computation, 8, 33-41.
https://doi.org/10.1504/IJBIC.2016.074630
[2] Rao, R. (2016) Jaya: A Simple and New Optimization Algorithm for solving Constrained and Unconstrained Optimization Problems. International Journal of Industrial Engineering Computations, 7, 19-34.
https://doi.org/10.5267/j.ijiec.2015.8.004
[3] Cai, X.J., Gao, X.Z. and Xue, Y. (2016) Improved Bat Algorithm with Optimal Forage Strategy and Random Disturbance Strategy. International Journal of Bio-Inspired Computation, 8, 205-214.
https://doi.org/10.1504/IJBIC.2016.078666
[4] Wang, H., Sun, H., Li, C.H., Rahnamayan, S. and Pan, J.S. (2013) Diversity Enhanced Particle Swarm Optimization with Neighborhood Search. Information Sciences, 223, 119-135.
https://doi.org/10.1016/j.ins.2012.10.012
[5] Fister Jr., I., Yang, X.S., Fister, I. and Brest, J. (2012) Memetic Firefly Algorithm for Combinatorial Optimization. Bioinspired Optimization Methods and Their Applications, 103, 1-14.
[6] Yu, G. (2016) An improved Firefly Algorithm Based on Probabilistic Attraction. International Journal of Computing Science and Mathematics, 7, 530-536.
https://doi.org/10.1504/IJCSM.2016.081701
[7] Yu, G. and Feng, Y.Y. (2018) Improving Firefly Algorithm Using Hybrid Strategies. International Journal of Computing Science and Mathematics, 9, 163-170.
https://doi.org/10.1504/IJCSM.2018.091749
[8] Zhang, M.Q., Wang, H., Cui, Z.H. and Chen, J.J. (2018) Hybrid Multi-Objective Cuckoo Search with Dynamical Local Search. Memetic Computing, 10, 199-208.
https://doi.org/10.1007/s12293-017-0237-2
[9] Wang, F., Zhang, H., Li, K., Lin, Z., Yang, J. and Shen, X.-L. (2018) A Hybrid Particle Swarm Optimization Algorithm Using Adaptive Learning Strategy. Information Sciences, 436-437, 162-177.
https://doi.org/10.1016/j.ins.2018.01.027
[10] Wang, F., Zhang, H., Li, Y., Zhao, Y. and Rao, Q. (2018) External Archive Matching Strategy for MOEA/D. Soft Computing, 22, 7833-7846.
https://doi.org/10.1007/s00500-018-3499-9
[11] Cui, Z., Zhangm J., Wang, Y., et al. (2019) A Pigeon-Inspired Optimization Algorithm for Many-Objective Optimization Problems. Science China Information Sciences, 62, Article No. 70212.
https://doi.org/10.1007/s11432-018-9729-5