Page 376 - 《软件学报》2024年第4期
P. 376

1954                                                       软件学报  2024  年第  35  卷第  4  期



                         t 2
                 14.   if    ⩽ γ   then  //自适应选择算子
                         T 2
                 15.     同时使用轮盘赌选择和精英保留策略进行选择操作;
                 16.   else
                 17.     仅使用精英保留策略进行选择操作;
                                                                                   p 2  ; //自适应交叉算子
                 18.   将种群中所有染色体任意两个随机组合构成一对父本染色体                     p 1  和母本染色体
                                                               f pavg  ;
                 19.   计算父本染色体
                                    p 1  和母本染色体
                                                 p 2  适应度平均值
                         t 2
                 20.   if    ⩽ γ   then
                         T 2
                           P c = P b +(1− P b )×(1− f pavg ) ;
                 21.
                 22.   else
                 23.       P c = P b −(1− P b )× f pavg  ;
                 24.   随机生成    0  到  1  之间的一个随机数  r  ;
                 25.   if   P c > r  then
                                                   ′    ′        ′   ′                p 2  ;
                 26.     采用多点交叉的方式产生子代             p  和   p  并用子代   p  和   p  替换父本   p 1  和母本
                                                   1
                                                                     2
                                                                 1
                                                        2
                 27.   else
                 28.     父本    p 1  和母本  p 2  之间不进行交叉操作;
                         t 2
                 29.   if    ⩽ γ   then //自适应大变异算子
                         T 2
                 30.     设置密集因子       δ 为较大值;
                 31.   else
                 32.     设置密集因子       δ 为较小值;
                 33.   计算当前种群最大适应度         F max  与平均适应度  F avg  ;
                         F avg
                 34.   if    > δ   then
                         F max
                 35.     变异概率     P m = P mbig  ;
                 36.   else
                 37.     变异概率     P m = P msmall  ;
                 38.   对种群中染色体随机生成         0  到  1  之间的一个随机数   r ;

                 39.   if   P m > r  then
                                                                          ′
                 40.     采用随机单点变异的方式对染色体              p  进行变异, 产生新个体     p  ;
                                    ′
                 41.     if    f(p) > f(p )  then
                                             ′
                 42.       种群中保留        p  , 将  p  舍弃;
                 43.     else
                                 ′             p  ;
                 44.       用     p  替换掉种群中的
                 45.   else
                 46.     不进行变异操作;
                 47.      t 2 = t 2 +1 ;
                 48. 输出当前种群中最优染色体即为所求的问题求解层;
                 49. end while
                    对于两阶段自适应遗传算法, 在算法的一次迭代过程中, 对于每个染色体在计算其适应度函数时需要计算分
                                         2
                 类精度, 时间复杂度为      O(m×|U| ×|C|) , 其中  m 为视角的个数, 即染色体的长度,      |U| 为视角中对象个数,      |C| 为视角
                                                                              2
                 中属性个数, 所以计算种群中所有染色体适应度函数的时间复杂度为                       O(m×|U| ×|C|× N) , 其中  N  为种群规模. 选
                 择算子的时间复杂度均为         O(N) . 交叉算子采用多点交叉, 时间复杂度为           O(N ×m) . 变异算子采用单点变异, 时间
   371   372   373   374   375   376   377   378   379   380   381