Page 188 - 《软件学报》2021年第10期
P. 188
3160 Journal of Software 软件学报 Vol.32, No.10, October 2021
范围[0.001:0.001:0.01,0.02:0.01:0.1,0.2:0.1:1],每个函数的问题维数设置为 D=30,种群数设置为 n=50,最大评估
次数设置为 10000D;为了减小实验误差,对 p 的每个值,算法都独立执行 30 次,求其平均值的误差.实验结果如
图 3 所示,图中的 Fsph 和 Fack 分别表示函数 Sphere 和 Ackley.
10
Fsph
5 0 Fack
Error value(log) -10
-5
-15
-20
0 0.2 0.4 0.6 0.8 1
p
Fig.3 Performances of FPA with different p values
图 3 p 取不同值时,FPA 的性能
从图 3 可以看出:
(1) 对于函数 Ackley,p=0.3 时,FPA 的性能最好;对于函数 Sphere,p=0.7 时,FPA 获得的性能最优;
(2) 如果 p 的取值太大或太小,FPA 的性能都较差;
(3) FPA 在求解不同的优化问题时,其性能依赖于 p 的取值.
从上述实验可知:如果转换概率 p 取固定的值,不利于 FPA 找到全局最优解.为了解决这一不足,本文采用公
式(11)对 p 进行自适应调整,提高 FPA 算法的性能和灵活性:
p=p min +(p max p min )((Max_itert)/Max_iter) (11)
其中,p max 、p min 分别是 p 的最大值(本文取 0.9)和最小值(本文取 0.2),Max_iter 是最大迭代次数,t 是当前迭代次数.
根据上述公式(11)和改进算法的流程可知:在算法的进化初期,变量t的值较小,则转化概率p的取值较大,算法
更偏向于异花授粉(全局搜索);当算法进入演化后期,变量t的值越来越大,转换概率p的值越来越小,则算法更倾向
于自花授粉(局部搜索).综上所述,通过 p 的自适应调整策略,能够更有效地解决算法的全局搜索和局部搜索之间
的平衡问题,从而更有利于提高算法的全局优化能力.
3.4 MIFPA算法的有效性分析
为了验证本文算法的可行性和正确性等性能,本文在 5 类共 19 个测试函数上,从如下几个方面进行实验对
比与分析.
(1) 解的质量对比分析;
(2) 算法的维度扩展性分析;
(3) 算法的鲁棒性和收敛速度分析;
(4) Friedman 与 Wilcoxon 检验;
(5) 运行时间比较分析.
为了检验 MIFPA 算法在性能上是否具有较大的提升,本节除了与基本 FPA 算法对比外,还将其与异构综合学
习 PSO(heterogeneous comprehensive learning particle swarm optimization with enhanced exploration and
exploitation,简称 HCLPSO)算法 [24] 、基于多种群变异策略集成的差分进化算法(differential evolution with multi-
population based ensemble of mutation strategies,简称 MPEDE) [25] 、融入精英反向学习策略的 FPA 算法(elite
opposition-based flower pollination algorithm,简称 EOFPA) [16] 、引入广义反向学习机制的 FPA 算法(modified
generalised oppsition-based flower pollination algorithm,简称 MGOFPA) [14] 分别从上述几个方面进行比较分析.
3.4.1 解的质量对比分析
为了验证本文算法的有效性,并能较好地防止算法陷入局部最优,佐证其解的质量的优越性,同时为了减少