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

徐怡 等: 基于遗传算法的划分序乘积空间问题求解层选择                                                     1953



                 5.  设置密集因子    δ 为较小值;
                 6. 计算当前种群最大适应度        F max  与平均适应度  F avg  ;
                     F avg
                 7. if    > δ   then
                     F max
                 8.  变异概率   P m = P mbig  ;
                 9. else
                 10.  变异概率   P m = P msmall  ;
                 11. 随机生成  0  到  1  之间的一个随机数   r  ;
                     P m > r  then
                 12. if
                                                                    ′
                 13.  采用随机单点变异的方式对染色体            p 进行变异, 产生新个体      p  ;
                               ′
                 14. if    f(p) > f(p )  then
                                     ′
                 15.  种群中保留     p , 将  p  舍弃;
                 16. else
                          ′
                 17.  用   p  替换掉种群中的    p ;
                 18. else
                 19. 不进行变异操作;

                    自适应大变异算子, 基于大变异操作, 能够保证在种群进化的前期, 采用较小的变异概率来防止优良基因被破
                 坏. 在种群进化的后期, 采用较大的变异概率来增强算法跳出局部最优解的能力.
                  2.6   算法流程
                    基于上述实数编码、适应度函数、自适应选择算子、自适应交叉算子以及自适应大变异算子的介绍, 本节给
                 出两阶段自适应遗传算法, 如算法          1  所示.
                 算法  1. 两阶段自适应遗传算法       (TSAGA).

                 输入: 划分序乘积空间      POPS m = (×P i ,≼ P ) , 阈值  γ , 第  1  阶段遗传算法最大迭代次数  T 1  , 第  1  阶段遗传算法当前迭
                      t 1  , 第                    T 2  , 第
                 代次数       2 阶段遗传算法最大迭代次数              2 阶段遗传算法最大迭代次数          t 2  , 染色体   p , 交叉概率分界值  P b  ,
                                           P mbig  ;
                 常规变异概率     P msmall  , 大变异概率
                 输出: 问题求解层.
                 1. 随机生成实数编码的染色体表示问题求解层, 构成第               1  阶段初始种群  //开始第      1  阶段遗传算法
                 2. 生成一个空集合     POP ;
                 3.   t 1 = 1 ;
                 4. while   t 1 ⩽ T 1   do
                 5.   根据定义    10  计算种群中染色体的适应度值;

                 6.   将当前种群中最优染色体保存到集合             POP 中;
                 7.   按照经典的选择、交叉、变异算子进行选择、交叉、变异操作;

                 8.      t 1 = t 1 +1 ;
                 9. end while
                      POP 作为第  2  阶段初始种群的一部分, 种群中其余染色体随机产生;  //开始第                 2  阶段遗传算法
                 10. 将
                 11.   t 2 = 1 ;
                        t 2 ⩽ T 2   do
                 12. while
                 13.   根据定义    10  计算种群中染色体的适应度值;
   370   371   372   373   374   375   376   377   378   379   380