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,最大评估
                 次数设置为 10000D;为了减小实验误差,对 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_itert)/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    解的质量对比分析
                    为了验证本文算法的有效性,并能较好地防止算法陷入局部最优,佐证其解的质量的优越性,同时为了减少
   183   184   185   186   187   188   189   190   191   192   193