文章快速检索  
  高级检索
一种动态分组多策略果蝇优化算法
张强1, 刘丽杰2     
1. 东北石油大学计算机与信息技术学院, 黑龙江 大庆 163318;
2. 黑龙江八一农垦大学信息技术学院, 黑龙江 大庆 163319
摘要: 针对基本果蝇优化算法求解精度低和不能处理最优位置在负区间优化问题的缺点,提出了一种动态分组多策略果蝇优化算法.利用自适应分组策略对种群进行分子群寻优,通过精英池的个体来利用差分变异算子改进最优个体的寻优行为,在迭代后期利用粒子群算法进化优势子群增强求解精度,利用反向混沌算子进化拓展子群避免陷入局部最优解.选取2类具有代表性的测试函数验证算法性能,并与GSA(gravitational search algorithm)、FOA及两种改进FOA的优化结果进行对比,结果表明该算法具有很好的收敛精度和计算速度.
关键词: 果蝇优化算法     差分变异     反向学习     混沌     连续空间优化    
Dynamic Grouping and Multi-strategy Fruit Fly Optimization Algorithm
ZHANG Qiang1, LIU Lijie2     
1. School of Computer and Information Technology, Northeast Petroleum University, Daqing 163318, China;
2. School of Information Technology, HLJ August First Land Reclamation University, Daqing 163319, China
Abstract: The fruit fly optimization algorithm (FOA) suffers from low solution precision and failure with respect to position optimization in the negative interval. We propose a dynamic grouping and multi-strategy fruit fly optimization algorithm that divides the population into the subgroups to find the optimal solution by the use of adaptive grouping strategies. It also improves the optimization behavior of the optimal individual using a differential mutation operator and the elite pool individual. In later iterations, we evolve dominant subgroups by the particle swarm optimization algorithm to enhance the accuracy of the solution, and evolve the extended subgroups by an inverse chaos operator to avoid a local optimal solution. We select two representative test functions to verify the performance of the algorithm and compare the optimization results of the discrete gradient method-FOA (DGM-FOA) with the gravitational search algorithm (GSA), the FOA and two improved FOAs. The results show that the proposed algorithm has good convergence accuracy and computation speed.
Keywords: fruit fly optimization algorithm     difference variation     reverse learning     chaos     continuous space optimization    

0 引言

果蝇优化算法(Fruit fly Optimization Algorithm,FOA)[1]是台湾学者潘文超模拟自然界中果蝇的觅食行为提出的一种群体搜索随机优化算法.目前已应用到智能优化、神经网络参数优化、支持向量机优化和工业设计等领域[2-6].与其它的群智能优化算法相比较,FOA具有简单容易理解和操作,调整参数较少等特点[7],但也存在易陷于局部最优和不能处理最优位置在负区间优化等问题.究其原因是由于每个果蝇在其搜索范围内不断向种群中最优的果蝇个体飞行,通过位置的迭代找寻到全局或局部最优解,若搜索范围内没有更优个体,果蝇则做随机运动,这样就降低了发现率和收敛速度.已有学者在个体进化方式改进、种群多样性、启发式算法融合和混沌变异等方面提出一些改进方法.文[8-9]通过双子群寻优,并引入混沌映射和Lévy飞行改进个体进化策略,验证了种群分组寻优的有效性;文[10-13]利用控制个体搜寻范围、混沌变异帮助种群跳出局部最优;文[14]将FOA与元胞自动机理论相结合,利用元胞自动机构造最优个体的领域,借助邻域个体更新进化个体.可见,FOA作为新兴的一种进化算法,其算法的优缺点、适应性及收敛速度和理论分析都需学者做积极的探索研究.本文提出一种动态分组多策略果蝇优化算法(dynamic grouping and multi-strategy fruit fly optimization algorithm,DGM-FOA).首先采用佳点集理论对果蝇种群的位置进行初始化,利用自适应分组策略对种群进行分子群寻优,在迭代过程中建立指定个数的果蝇精英池;通过果蝇精英池的个体采用差分变异算子改进最优个体的寻优行为;在迭代后期通过评价函数计算果蝇精英池中个体的多样性来指导是否将整个种群分为优势群体和拓展群体,进而利用改进粒子群算法进化优势群体增强寻优精度,利用反向混沌算法进化拓展群体避免陷入局部最优解.

1 基本果蝇优化算法原理

1) 设定种群规模,最大迭代次数及误差精度,根据寻优范围随机生成位置矢量[XaxisYaxis].

2) 赋予果蝇个体利用嗅觉搜寻食物之随机方向与距离:

(1)

其中,rand()为搜索距离.

3) 利用式(2)预测它和原点的距离Di,再利用式(3)计算味道浓度判定值:

(2)
(3)

4) 将式(3)计算的值代入味道浓度函数(适应度函数ffitness),得到果蝇所处位置的味道浓度:

(4)

5)计算所有果蝇的Qi构成种群的适应度向量Q,在Q中求出味道浓度最大值的果蝇(当代最优个体):

(5)

6) 保留最佳味道浓度值bsmell和位置信息XY,此时果绳群体依赖视觉器官向其飞去:

(6)

7) 进入迭代寻优,重复步骤2)~步骤5),找到比上一次迭代更优的个体则执行步骤6),满足最大迭代次数或预设精度则退出.

从FOA的原理可以看出,算法开始迭代是先随机生成一个位置,种群个体的进化是在这个位置的基础上通过随机扰动来完成个体位置的更新,进而完成寻优工作.以2维空间y=x12+x22x∈[xminxmax]寻优为例(xmaxxmin分别为x的取值的上、下限,很容易扩展到N维空间),根据式(1),假定每一次迭代过程都会找到更优解,则[XaxisYaxi]就会在此基础上不断增加rand(< xmax),经过L次迭代后果蝇个体位置为

(7)

从式(7)可知,Si相当于其它智能算法的优化个体,适应度的取值依靠于Si.由此可以得出2个结论:

1) 基本果蝇算法不能处理最优位置在负区间的优化问题[15]

2) 要使Si=0,则需[XaxisYaxis]的区间很大或是L很大,才会使Si逼近0.

假设x∈[0, 100],L取值为1 000,则对于y=x12+x22问题,果蝇算法最大能求解的精度为e-11次方,而实际寻优精度为e-8次方;如果rand()每次扰动较小,则求解精度还会降低,这对于一些最优解在0点的优化函数尤其明显.无论是在全局或局部最优解附近,算法本身都不会再获得更好的求解精度,所以这就需要借助其它算法来增强寻优精度.基于上述讨论,本文提出了一种动态分组多策略果蝇优化算法.

2 动态分组多策略果蝇优化算法原理 2.1 基于佳点集理论的种群初始化

果蝇优化算法从随机初始一个位置矢量[XaxisYaxis]开始迭代,所有个体都是基于这个位置周围进行寻优.若这个位置在最优解附近,则能够加速算法收敛和提高寻优性能;否则会延缓收敛或陷入局部最优.所以,初期采用佳点集理论初始化所有个体的位置矢量,从中以最优个体的位置为寻优起始位置,有利于加速算法效率.佳点集理论已证明,当近似计算函数在s维欧氏空间单位立方体上积分时,用n个佳点构成的加权和比采用任何其它n个点所得到的误差都要小.已有学者[16-17]将其应用到种群初始化,取得了很好的寻优效果,具体定义为:

GsS维欧氏空间中的单位立方体,如果rGs,形为pn(k)={({r1(n)k},{r2(n)k},…,{rs(n)k}),1≤kn},其偏差φ(n)满足φ(n)=C(rε)n-1+ε,其中C(rε)是只与rε(ε>0)有关的常数,则称pn(k)为佳点集,r为佳点.一般情况下,取:

其中,p是满足的最小素数.

2.2 自适应分组策略

由FOA的进化原理可知,所有个体都向最优个体靠近,虽然加速了算法的效率,同时也降低了算法后期种群多样性和增加了陷入局部最优的概率.自然界中大多数生物的活动范围都具有一定领域性,子种群规模在某一时刻也相对固定.随着不断的觅食或是进化,其活动范围、规模和子群个数会随之发生变化.在进化过程中采用局部邻域则可有效地避免这种可能性.基于自然界中生物的领域特性,提出一种自适应分组策略来模拟这种特性,进而避免算法快速陷入局部最优,并且在进化过程中设置一个果蝇精英池(包含目前获得的Cnum个最优个体),具体分组方式为:

1) 将整个果蝇种群分成m个子群,每个子群包含n个果蝇.

2) 把果蝇种群内的个体按适应值降序排列,将前m个果蝇依次分配给m个子群,则第m+1个果蝇进入第1个子群,并采用贪心策略用当代最优个体更新果蝇精英池的个体.

3) 每迭代一次计算子群内果蝇个体的方差.用方差来衡量子群内个体的离散程度,方差越小说明离散程度越小,表明或是找到最优解,或是陷入局部最优.

4)递减子群个数m.令Dmt(x)=[D1t(x),D2t(x),…,Dmt(x)]为第t次迭代后的方差;,1≤im.若存在一个远远小于其它αkt(x)(k∈{1,2,…,i-1,i+1,…,m})的αit(x),则说明该子群内的个体或是找到最优解,或是陷入局部最优,此时可以将该子群的个体分散到其它子群中,即m1=m-1.针对寻优过程中可能存在各个子群内的αit(x)相差不大的情况,若果蝇精英池里个体的方差也与αit(x)相差不大,则说明整个种群或是已在最优解附近或是陷入局部最优,此时合并所有子群为1个群组;否则为了加速迭代需计算,其中,[]为取整函数,为初始的分组个数,迭代后期分组数设置为1.最后取m=min{m1m2}.

这种分组方式使得在进化初期果蝇种群以子群方式在各自的领域活动;随着不断进化其子群个数逐渐减少,已找到全局最优解的子群个体分散到其它子群有利于加速迭代速度,对于陷入局部最优的子群则有利于其中的个体跳出局部最优解;依据上面的分组方式可知,在迭代后期所有个体会合并为一个种群进行寻优.

2.3 分组内个体进化方式

对于分组内非最优果蝇个体保持原有的进化方式,而对最优果蝇个体的更新方式进行改进.在基本果蝇算法中,最优个体通过随机移动位置来更新,若找到比当前位置更优的位置则代替,否则保持原个体,虽然可以保持个体的多样性,但同时也导致个体移动的盲目性.差分进化算法[18]已被证明是进化算法中简单而最高效的算法[19],具有原理简单受控参数少的优势.其主要的变异操作在很大程度上影响着了该算法的性能[20].采用式(8)更新组内个体:

(8)

其中,xbr1r2分别为果蝇精英池内任意3个果蝇中适应度最优、较优和最差的果蝇;F为比例缩放因子,XaxisbYaxisb为适应度最优个体xb的位置.如果适应度相差很小,说明两个果蝇个体在空间中相隔很近,则Fi应取较大值,以防止扰动量过小;如果适应度相差很大,说明两个果蝇个体在空间相隔很远,则Fi应取较小值,以限制扰动量过大,式(9)给出了一种确定方式:

(9)

其中,FuFlFi的上限和下限,fr1fr2fb分别为个体r1r2xb的适应度.

2.4 迭代后期果蝇群体双子群进化原理

由果蝇算法的原理和文中分析可知,算法求解的精度在一定程度上受到随机扰动rand()和迭代次数L的制约;而且当到达某一迭代次数,其寻优精度在之后的迭代变化较小.出现这种情况的可能是由于:

1) 算法已经在全局最优解附近,只是FOA算法本身的原理造成很难再找到精度更高的解,这时需要通过另一种快速寻优算法来进行快速求精.

2) 算法已经陷入局部最优解,需要采用扰动技术来跳出局部最优.故本文在迭代后期通过将种群分为双子群来提高寻优效能,即分为优势子群和拓展子群.

2.4.1 双子群自适应分组方式

确定何时分组是分组的关键,根据上述果蝇算法的原理无论是找到全局最优解或是陷入局部最优解,其个体解的精度都是变化缓慢,而果蝇精英池里的个体是整个过程出现的最优个体集,如果这里的个体在一定迭代次数内精度不改变则可以将整个种群分为优势子群和拓展子群.具体分组方式如下:

step 1  统计果蝇精英池里的个体适应度精度不改变的次数,如果大于5次则执行step 2,否则不重新分组.

step 2  求解所有果蝇个体适应度值的平均值favg.

step 3  将适应度大于favg的果蝇个体分到优势子群;将适应度小于favg的果蝇个体分到拓展子群.

由于果蝇个体每次迭代都会对适应度排序,所以该分组方法对运行时间不会造成很大的影响.

2.4.2 优势子群进化方式

粒子群算法[21]具有易实现、参数少和收敛速度快的优势. 表 1表 2给出了PSO与FOA在求解(30维,最优值0)的对比结果,每个实验设置均独立运行20次,取20次的平均值作为最终的结果,种群个数为30.

表 1 固定迭代次数的仿真结果对比 Table 1 Comparison of the simulation result withthe fixed iteration number
算法 最优值 寻优时间/s 固定次数
FOA 4.085e-07 0.417 2 000
PSO 5.190e-14 1.443 2 000
表 2 固定精度的仿真结果对比 Table 2 Comparison of the simulation result with the fixed precision
算法 迭代次数 寻优时间/s 固定精度
FOA 758 0.352 1e-07
PSO 1 625 1.073 1e-07

表 1表 2可以看出,FOA在给定精度下求解速度较快,但是随着迭代次数的增加,FOA的求解精度变化不大;而PSO在达到给定精度后,则可以通过很少的迭代次数便可获得更高的精度.文中采用PSO进化优势群体中个体来提高求解精度.

将果蝇个体适应度计算过程中的Si作为粒子群优化的个体,采用文[22]线性递减权值策略按照式(10)进行进化,同时也要把找到的最优值来更新果蝇精英池里的个体.

(10)

其中,r1r2是(0,1)之间的随机数,c1c2是加速常数,ωmaxωmin分别是ω的最大值和最小值,ttmax分别是当前迭代次数和最大迭代次数,Pg(t)为精英池里的最优个体,Pp(t)为个体最优值.

2.4.3 拓展子群进化方式

拓展子群用于跳出局部最优解,在拓展子群迭代期间获得的最优解仍采用贪心策略来更新精英果蝇群中的个体,进而可以影响优势子群的进化. Rahnamaya证明反向学习算法具有较快的学习速度和更强的优化能力[23].

定义1  对于1维空间中任意一点x∈[ab],如果x′=a+b-x,则称x′x的反向点.类似地,反向点也可以定义到高维空间中.

针对拓展子群内连续迭代3次没有改善的果蝇个体,按式(11)和式(12)计算新个体的位置(为了处理最优个体在负区间的优化问题,将式(3)中的Si乘上一个sgn(·)函数):

(11)
(12)
(13)

混沌映射产生的个体具有遍历性、随机性和多样性[24],可有效地在收敛区域以外空间搜索全局最优位置.文[25]的研究表明,偶数阶的Chebyshev映射可以生成随机性较好的个体.

2.5 算法流程

step 1  参数初始化,设置种群个数、最大迭代次数和精度.

step 2  利用佳点集理论初始化果蝇种群的初始位置.

step 3  按照自适应分组策略进行多子群寻优.

step 4  分组内个体采用2.3节算法完成个体进化,并利用2.2节策略完成子群的合并.

step 5  判断是否满足求解精度或是达到最大迭代次数.若满足,则退出.否则,判断是否需要将种群分成2个子群:如果需要,则按照2.4节算法来完成迭代后期果蝇群体双子群进化,跳转到step 6;否则跳转到step 3;

step 6  对于优势种群个体采用式(10)进化,变异种群个体采用式(11)~式(13)进化,跳转到step 5.

3 实验仿真

运行的实验环境为:Windows 7操作系统,Intel酷睿i5处理器,主频2.5 Hz,4 G内存,开发工具为Matlab.测试函数的选取具有一定的代表性,f1~f4的极值在0点,用于测试DGM-FOA寻优精度;f5~f6在定义域的正区间,f7~f8在定义域的负区间,用于测试DGM-FOA在负区间的寻优性能.通过10个求解函数极值优化的例子来验证算法的优化性能,将所提算法与万有引力算法[26](GSA)、经典果蝇算法(FOA)、文[8]的DDSCFOA(dynamic double subgroups cooperative fruit fly optimization algorithm)和文[9]的LFOA(double subgroups FOA with the characteristics of lévy flight)进行性能比较.

3.1 固定迭代次数和精度的性能测试

种群大小都设置为50,最大迭代次数设置为2 000,精度满足10e-12,优化函数维数30,对优化函数独立运行20次. GSA参数设置:G0=100,α=20;DGM-FOA的参数设置:c1=1.496 18,c2=1.496 18,ωmax=0.9,ωmin=0.3.对比5种优化算法获得的最优结果、最差结果、平均结果、平均运行时间和方差.其中,最优结果、最差结果反映解的质量,平均结果显示算法所能达到的精度,平均时间反映算法的收敛速度,方差反映算法的稳定性和鲁棒性.测试函数分别为

其全局最优值为x*=[0,…,0],f(x*)=0.

其全局最优值为x*=[0,…,0],f(x*)=0.

其全局最优值为x*=[0,…,0],f(x*)=0.

其全局最优值x*=[0,…,0],f(x*)=0.

其全局最优值为x*=[1, 1, 1, 1]f(x*)=0.

其全局最优值为x*=[1,…,1],f(x*)=0.

其全局最优值为x*=[-2.903 534,…,-2.903 534],f(x*)=-39.165 99n.

其全局最优值为x*=[0.089 83,-0.712 6],[-0.089 83,0.712 6],f(x*)=-1.031 628 423.

表 3 f1运行仿真结果对比 Table 3 Comparison of f1 running simulation results
算法 f1
最优结果 最差结果 平均结果 方差 时间/s
GSA 7.228e-18 2.475e-17 1.537e-17 2.062e-35 9.236
FOA 4.085e-07 4.342e-07 4.184e-07 3.560e-17 1.167
DDSCFOA 1.132e-16 1.023e-13 9.781e-15 4.682e-28 0.895
LFOA 1.083e-16 3.391e-14 7.456e-15 1.015e-28 0.936
DGM-FOA 8.237e-22 2.097e-18 1.939e-19 2.020e-37 0.362
表 4 f2运行仿真结果对比 Table 4 Comparison of f2 running simulation results
算法 f2
最优结果 最差结果 平均结果 方差 时间/s
GSA 7.960e+00 2.288e+01 1.398e+01 1.529e+01 9.264
FOA 7.954e-05 8.571e-05 8.289e-05 2.430e-12 1.361
DDSCFOA 2.500e-15 8.729e-13 1.339e-14 4.457e-28 0.927
LFOA 4.882e-15 8.804e-13 1.686e-14 5.308e-28 1.069
DGM-FOA 0 5.684e-14 8.527e-15 4.126e-28 0.563
表 5 f3运行仿真结果对比 Table 5 Comparison of f3 running simulation results
算法 f3
最优结果 最差结果 平均结果 方差 时间/s
GSA 1.378e-08 2.489e-08 1.859e-08 1.039e-17 9.015
FOA 1.776e-03 1.843e-03 1.815e-03 2.255e-10 1.491
DDSCFOA 5.043e-10 2.512e-08 6.045e-09 3.548e-17 0.819
LFOA 5.567e-10 3.201e-08 8.758e-09 9.760e-17 1.058
DGM-FOA 1.543e-14 8.935e-12 7.906e-13 3.845e-24 0.427
表 6 f4运行仿真结果对比 Table 6 Comparison of f4 running simulation results
算法 f4
最优结果 最差结果 平均结果 方差 时间/s
GSA 2.631e-09 3.806e-09 3.115e-09 1.245e-19 9.288
FOA 7.463e-05 7.692e-05 7.584e-05 2.763e-13 1.294
DDSCFOA 2.427e-08 1.146e-06 2.613e-07 1.028e-13 1.041
LFOA 7.477e-08 6.576e-05 1.194e-06 4.714e-10 1.106
DGM-FOA 8.882e-16 4.441e-15 3.553e-15 2.367e-30 0.477
3.2 高维函数上的优化性能测试

对优化函数f1f2f3f4在维度为N=100、N=200的条件下对比DGM-FOA与经典的GSA和FOA的性能,各类算法的运行参数设置见3.1节,最大迭代次数为1 000,误差精度为10e-6.函数在每个算法中独立运行20次,计算平均结果、方差和平均时间.

表 7 f5运行仿真结果对比 Table 7 Comparison of f5 running simulation results
算法 f5
最优结果 最差结果 平均结果 方差 时间/s
GSA 6.848e-01 2.084e+01 6.452e+00 2.106e+01 6.022
FOA 1.525e-02 3.628e+01 1.233e+01 2.740e+02 1.258
DDSCFOA 2.335e-06 3.282e-03 7.288e-04 5.691e-07 1.072
LFOA 2.459e-06 2.492e-04 2.786e-05 4.098e-07 1.016
DGM-FOA 2.021e-13 7.009e-11 1.158e-11 2.570e-22 0.597
表 8 f6运行仿真结果对比 Table 8 Comparison of f6 running simulation results
算法 f6
最优结果 最差结果 平均结果 方差 时间/s
GSA 2.401e+01 2.475e+01 2.440e+01 3.424e-02 9.226
FOA 2.870e+01 3.065e+01 2.881e+01 1.794e-01 1.269
DDSCFOA 2.682e+01 2.882e+01 2.763e+01 3.712e-01 1.387
LFOA 2.635e+01 2.791e+01 2.712e+01 2.683e-01 1.371
DGM-FOA 8.179e-01 1.434e+01 5.329e+00 1.435e+01 1.483
表 9 f7运行仿真结果对比 Table 9 Comparison of f7 running simulation results
算法 f7
最优结果 最差结果 平均结果 方差 时间/s
GSA -1.118e+03 -9.629e+02 -1.044e+03 1.401e+03 9.693
FOA -3.928e+02 5.735e+00 -1.149e+02 1.847e+04 1.861
DDSCFOA -1.994e+02 -1.342e-01 -1.550e+02 3.041e+03 1.142
LFOA -2.978e+02 -1.891e+00 -1.407e+02 1.164e+04 1.167
DGM-FOA -1.133e+03 -1.005e+03 -1.060e+03 1.245e+03 1.381
表 10 f8运行仿真结果对比 Table 10 Comparison of f8 running simulation results
算法 f8
最优结果 最差结果 平均结果 方差 时间/s
GSA -1.031 628 -1.031 628 -1.031 628 0 3.852
FOA 7.400e-01 1.030e+00 0.979 05 0.005 6 1.115
DDSCFOA 3.487e-01 9.835e-01 8.508e-01 3.303e-02 1.002
LFOA 2.963e-01 1.011e+00 8.645e-01 3.385e-02 0.957
DGM-FOA -1.031 628 -1.031 628 -1.031 628 0 0.419

从仿真结果对比可以看出,所提的动态分组多策略果蝇优化算法具有很好的求解精度和求解速度.分析原因,主要有3个方面:

1) 从最优结果、最差结果、平均结果可以看出,DGM-FOA寻优结果最好,主要因为:采用佳点集理论增加了个体接近最优解的机会,前期引入的动态分组和差分变异算子可以加速算法寻优,后期引入的粒子群算法可以增加寻优精度,混沌理论使算法进化后期很好地避免陷入局部最优,进而克服了算法在求解某些复杂函数时收敛速度慢、容易陷入局部最优的缺点.从f7f8的运行结果可以看出,DGM-FOA的结果要优于DDSCFOA和LFOA,主要是由于DGM-FOA在负区间进行寻优的效果得到增强,克服了原有FOA不能求解负区间的问题.

表 11 高维函数优化性能对比 Table 11 Comparison of high dimensional function optimization performance
函数 算法 N=100 N=200
平均结果 方差 时间/s 平均结果 方差 时间/s
f1 GSA 2.08e-03 2.51e-05 10.85 3.09e+00 7.07e-01 20.50
FOA 9.96e-06 2.93e-16 0.46 9.97e-06 2.96e-16 0.74
DGM-FOA 2.56e-06 2.25e-16 0.39 3.61e-06 1.41e-16 0.65
f2 GSA 7.42e+01 1.69e+02 11.23 2.62e+02 1.04e+03 20.84
FOA 1.32e-03 6.45e-10 1.21 2.81e-03 5.38e-09 1.98
DGM-FOA 1.03e-05 4.91e-11 1.08 5.26e-05 9.53e-11 1.52
f3 GSA 9.95e-01 2.27e-01 10.92 2.04e+01 1.04e+01 20.79
FOA 1.29e-02 3.14e-08 1.62 2.65e-02 1.44e-07 2.82
DGM-FOA 3.65e-06 6.49e-12 1.16 2.83e-05 5.37e-10 2.69
f4 GSA 1.19e+00 2.45e-01 11.11 3.99e+00 1.80e-01 20.94
FOA 1.51e-04 1.86e-12 1.34 1.51e-04 4.62e-12 2.26
DGM-FOA 4.34e-06 1.71e-12 1.06 5.72e-06 7.18e-12 1.96

2) 从方差和时间可以看出,DGM-FOA的运行时间和方差都优于前几种算法,分析其原因是:GSA的进化思想与FAO相类似,都是利用吸引方式使非优解向最优解靠近,但由于GSA的进化原理相对复杂,故其运行时间较多.而DGM-FOA的进化原理简单、计算量少,加速了算法的求解速度,同时利用小生镜的方式进行寻优,分组个数随着迭代过程逐渐减少,这样有利于前期进行全局寻优,后期进行局部精细挖掘且DGM-FOA在进化过程中采用差分变异和混沌策略使得个体更新时既保持了随机性,又使得个体变化带有确定性,与经典算法的随机方式相比更易向最优解方向靠近,而优势种群个体借用PSO的优势可以提高算法精度,其收敛的速度得到很大提高,使得运行时间相对较短.分析DGM-FOA的计算复杂度可知,虽然在分组方面增加了算法的计算量,但依据算法渐近复杂性理论可知,并未增加基本果蝇算法的时间复杂度,但是由于分组寻优和个体进化方式的改进大大地提高了DGM-FOA在每个迭代周期里的寻优性能,避免了FOA在迭代后期多次迭代计算寻优精度不高的问题,故获得了较好的寻优精度和速度.

3) 从高维函数测试的优化效果可知,随着维度的增加,经典GSA的运行时间增加幅度较大且求解精度下降,而DGM-FOA依靠FOA求解简单、寻优速度快的特点,利用PSO的优势和小生镜技术大大地改进了经典FOA的不足,同时加速了寻优速度和精度,尤其是在高维函数寻优性能的稳定性上得到了很大的改进.由于实验设定迭代次数为1 000,造成GSA的表现性能不是很好,通过进一步增加迭代次数发现,算法的寻优结果也会得到改善,这也说明本文所提算法在较短的迭代周期内能获得较好的寻优速度和精度.

4 结束语

本文提出一种动态分组多策略果蝇优化算法,并将自适应小生镜、差分变异等算法引入到个体更新过程中.基于高维测试函数的仿真实验结果表明,算法在整体上具有较好的全局寻优能力且收敛速度较快.今后将对算法在实际应用的适应性方面进一步展开研究,同时对果蝇优化算法理论分析及与其它算法进行优势融合等方面进行探索.

参考文献
[1] Pan W T. A new fruit optimization algorithm:Taking the financial distress model as an example[J]. knowledge-based Systems, 2012, 26: 69–74. DOI:10.1016/j.knosys.2011.07.001
[2] 张晓茹, 张著洪. 求解多模态函数优化的微果蝇优化算法[J]. 信息与控制, 2016, 45(3): 361–370.
Zhang X R, Zhang Z H. Micro fly optimization algorithm solving multi-modal function optimization[J]. Information and Control, 2016, 45(3): 361–370.
[3] 孙立, 董君伊, 李东海. 基于果蝇算法的过热气温自抗扰优化控制[J]. 清华大学学报(自然科学版), 2014, 54(10): 1288–1292.
Sun L, Dong J L, Li D H. Active disturbance rejection control for superheated steam boiler temperatures using the fruit fly algorithm[J]. Journal of Tsinghua University (Science and Technology), 2014, 54(10): 1288–1292.
[4] 王雪刚, 邹早建. 基于果蝇优化算法的支持向量机参数优化在船舶操纵预报中的应用[J]. 上海交通大学学报, 2013, 47(6): 884–888.
Wang X G, Zou Z J. FOA-based SVM parameter optimization and its application in ship manoeuvring prediction[J]. Journal of Shanghai Jiaotong University, 2013, 47(6): 884–888.
[5] 黄伟明, 文尚胜, 傅轶. 基于果蝇算法优化径向基神经网络模型的白光发光二极管可靠性[J]. 光子学报, 2016, 45(4): 1–5.
Huang W M, Wen S S, Fu Y. Study on the reliability of white LED using RBF neural network optimization by FOA algorithm[J]. Acta Photonica Sinica, 2016, 45(4): 1–5.
[6] 周平, 白广忱. 基于神经网络与果蝇优化算法的涡轮叶片低循环疲劳寿命雄壮性设计[J]. 航空动力学报, 2013, 28(5): 1013–1018.
Zhou P, Bai G C. Robust design of turbine-blade low cycle fatigue life based on neural networks and fruit fly optimization algorithm[J]. Journal of Aerospace Power, 2013, 28(5): 1013–1018.
[7] 吴小文, 李擎. 果蝇算法和5种群智能算法的寻优性能研究[J]. 火力与指挥控制, 2013, 38(4): 17–25.
Wu X W, Li Q. Research of optimizing performance of fruit fly optimization algorithm and five kinds of intelligent algorithm[J]. Fire Control & Command Control, 2013, 38(4): 17–25.
[8] 韩俊英, 刘成忠, 王联国. 动态双子群协同进化果蝇优化算法[J]. 模式识别与人工智能, 2013, 26(11): 1057–1067.
Han J Y, Liu C Z, Wang L G. dynamic double subgroups cooperative fruit fly optimization algorithm[J]. Pattern Recognition and Artificial Intelligence, 2013, 26(11): 1057–1067. DOI:10.3969/j.issn.1003-6059.2013.11.009
[9] 张前图, 房立清, 赵玉龙. 具有Levy飞行特征的双子群果蝇优化算法[J]. 计算机应用, 2015, 35(5): 1348–1352.
Zhang Q T, Fang L Q, Zhao Y L. Double subgroups fruit fly optimization algorithm with characteristics of Levy flight[J]. Journal of Computer Applications, 2015, 35(5): 1348–1352. DOI:10.11772/j.issn.1001-9081.2015.05.1348
[10] 张彩宏, 潘广贞. 基于非均匀变异和自适应逃逸的果蝇优化算法[J]. 计算机工程与设计, 2016, 37(8): 2093–2097.
Zhang C H, Pan G Z. Fruit fly optimization algorithm based on non-uniform mutation and adaptive escape[J]. Computer Engineering and Design, 2016, 37(8): 2093–2097.
[11] Pan Q K, Sang H Y, Duan J H, et al. An improved fruit fly optimization algorithm for continuous function optimization problems[J]. Knowledge-Based Systems, 2014, 62: 69–83. DOI:10.1016/j.knosys.2014.02.021
[12] 徐富强, 陶有田, 吕洪升. 一种改进的果蝇优化算法[J]. 苏州大学学报(自然科学版), 2014, 29(1): 16–23.
Xu F Q, Tao Y T, Lü H S. Improved fruit fly optimization algorithm[J]. Journal of Soochow University (Science and Technology), 2014, 29(1): 16–23.
[13] 郭德龙, 罗晓宾, 周永权. 基于混合变异的果绳优化算法[J]. 数学的实践与认识, 2016, 46(12): 167–174.
Guo D L, Luo X B, Zhou Y Q. Fruit fly optimization algorithm based on hybrid mutation[J]. Mathematics in Practice and Theory, 2016, 46(12): 167–174.
[14] 贺智明, 宋建国, 梅宏标. 结合元胞自动机的果蝇优化算法[J]. 计算机应用, 2014, 34(8): 2295–2298.
He Z M, Song J G, Mei H B. Fruit fly optimization algorithm based on cellular automata[J]. Journal of Computer Applications, 2014, 34(8): 2295–2298. DOI:10.11772/j.issn.1001-9081.2014.08.2295
[15] 霍慧慧. 果蝇优化算法及其应用研究[D]. 太原: 太原理工大学, 2015.
Huo H H. Research on fruit fly optimization algorithm and its applications[D]. Taiyuan: Taiyuan University of Technology, 2015.
[16] 刘香品, 宣士斌, 刘峰. 引入佳点集和猴群翻过程的人工蜂群算法[J]. 模式识别与人工智能, 2015, 28(1): 80–89.
Liu X P, Xuan S B, Liu F. Artificial bee colony algorithm with good point set and turn process of monkey algorithm[J]. Pattern Recognition and Artificial Intelligence, 2015, 28(1): 80–89.
[17] 毕晓君, 张磊. 基于混合策略的双种群约束优化算法[J]. 控制与决策, 2015, 30(4): 715–720.
Bi X J, Zhang L. Dual population constrained optimization algorithm with hybird strategy[J]. Control and Decision, 2015, 30(4): 715–720.
[18] Rainer S, Price K. Differential evolution-A simple and efficient heuristic for global optimization over continuous spaces[J]. Journal of Global Optimization, 1997, 11(4): 341–359. DOI:10.1023/A:1008202821328
[19] 李章维, 周晓根, 张贵军. 一种动态自适应差分进化算法[J]. 计算机科学, 2015, 42(6): 52–56.
Li Z W, Zhou X G, Zhang G J. Dynamic adaptive differential evolution algorithm[J]. Computer Science, 2015, 42(6): 52–56.
[20] 孔祥勇, 高立群, 欧阳海滨. 求解大规模可靠性问题的改进差分进化算法[J]. 东北大学学报(自然科学版), 2014, 35(3): 328–332.
Kong X Y, Gao L Q, Ouyang H B. An improved differential evolution algorithm for large scalereliability problems[J]. Journal of Northeastern University (Science and Technology), 2014, 35(3): 328–332. DOI:10.12068/j.issn.1005-3026.2014.03.006
[21] 王东风, 孟丽. 粒子群优化算法的性能分析和参数选择[J]. 自动化学报, 2016, 42(10): 1552–1560.
Wang D F, Meng L. Performance analysis and parameter selection of PSO algorithms[J]. Acta Automatica Sinica, 2016, 42(10): 1552–1560.
[22] 胡建秀, 曾建潮. 微粒群算法中惯性权重的调整策略[J]. 计算机工程, 2007, 33(11): 193–195.
Hu J X, Zeng J C. Selection on inertia weight of particle swarm optimization[J]. Computer Engineering, 2007, 33(11): 193–195.
[23] 王燕. 反向粒子群算法理论及及其应用研究[D]. 西安: 西安工程大学, 2011.
Wang Y. The research of opposition-based particle swarm optimization and its application[D]. Xi'an: Xi'an Polytechnic University, 2011.
[24] 胥小波, 郑康锋, 李丹, 等. 新的混沌粒子群优化算法[J]. 通信学报, 2012, 33(1): 24–37.
Xu X B, Zheng K F, Li D. New chaos-particle swarm optimization algorithm[J]. Journal on Communications, 2012, 33(1): 24–37.
[25] 刘金梅, 屈强. 几类混沌序列的随机性测试[J]. 计算机工程与应用, 2011, 47(5): 46–49.
Liu J M, Qu Q. Randomness tests of several chaotic sequences[J]. Computer Engineering and Applications, 2011, 47(5): 46–49.
[26] Rashedi E, Nezamabadi-Pour H, Saryazdi S. GSA:A gravitational search algorithm[J]. Information Sciences, 2009, 179(13): 2232–2248. DOI:10.1016/j.ins.2009.03.004
http://dx.doi.org/10.13976/j.cnki.xk.2018.7062
中国科学院主管,中国科学院沈阳自动化研究所、中国自动化学会共同主办。
0

文章信息

张强, 刘丽杰
ZHANG Qiang, LIU Lijie
一种动态分组多策略果蝇优化算法
Dynamic Grouping and Multi-strategy Fruit Fly Optimization Algorithm
信息与控制, 2018, 47(4): 479-485.
Information and Control, 2018, 47(4): 479-485.
http://dx.doi.org/10.13976/j.cnki.xk.2018.7062

文章历史

收稿/录用/修回: 2017-02-20/2017-04-10/2017-05-25

工作空间