Page 187 - 《软件学报》2026年第3期
P. 187

1150                                                       软件学报  2026  年第  37  卷第  3  期



                 3. else
                 4.   在  CA  中随机选择个体   x 1  和  ;
                                           x 2
                 5.   在   x 1  和  x 2  中选择收敛性更好的个体作为  ;
                                                     q 1
                 6.   在  DA  中随机选择个体   x 3  和  ;
                                           x 4
                 7.   在   x 3  和  x 4  中选择多样性更好的个体作为  ;
                                                     q 2
                 8. end if
                 9. return   MP = {q 1 ,q 2 }

                  2.3   基于空间划分的子种群互映更新策略
                    Two-Arch/IS  通过一组均匀分布的权重向量划分目标空间, 在划分后的各个子种群中执行档案库的更新操作.
                 利用基于分解的框架, 使得种群能够更均匀地收敛至                 PF, 在确保收敛性的同时, 增强算法的多样性表现.
                    在  Two-Arch/IS  中, 根据目标数量  M  的不同, 算法会生成相应大小的权重向量集, 以实现对目标空间的划分.
                 权重向量集的生成方式参照了文献             [35] 中的方法. 具体地, 对于不同的目标数量          M, 确定每个目标维度上的采样
                 个数  H, 其中采样步长为     1/H. 该方法对  M  维空间进行采样, 最终产生       C  M−1   个均匀分布在目标空间中的权重向量.
                                                                       H+M−1
                 算法  3. 档案库更新   Update_Archive.
                 输入: 收敛性档案     CA, 多样性档案    DA, 新的子代解    Q, 权重向量集   W;
                 输出: 收敛性档案     CA, 多样性档案    DA.

                 1. R = Q  中的非支配解集;
                 2. X = 权重向量的数量;
                 3. 划分  CA:  [CA 1 ,...,CA X ] = Divide_Individuals(CA,W); //公式  (2)
                 4. 划分  DA:  [DA 1 ,...,DA X ] = Divide_Individuals(DA,W);
                 5. 划分  R:  [R 1 ,...,R X ] = Divide_Individuals(R,W);
                 6. for i = 1 to X do
                 7.   根据   CA i  和   DA i  删除  R i  中的支配解;
                 8.   基于   R i  更新   CA i  和  DA i ;
                 9. end for
                 10.  CA = {CA 1 ,...,CA X };
                 11.  DA = {DA 1 ,...,DA X };
                 12. return CA, DA

                    在种群经过繁殖过程产生新一代个体后, 对当前的                 CA、DA  以及产生的非支配解集执行子种群划分操作. 通
                 过遍历权重向量集, 计算档案库中所有个体与当前权重向量的欧几里得距离, 根据距离最小原则, 选择对应的个体
                 加入当前权重向量所对应的子种群. 具体计算方式如公式                   (2),  S i  表示划分后的子种群, k 表示当前为第     k 轮划分,
                 x i  表示种群中个体, P  为待划分种群,     w j  表示第  j 个权重向量. 完成一次权重向量集的遍历后, 每个子种群中便包
                 含至少一个个体. 对于剩余的个体, 继续遍历权重向量集进行划分, 直至所有个体都被划分至子种群. 这种划分方
                 式的优势在于, 除了最后一次遍历外, 每次遍历结束后, 各子种群中的个体数量均保持一致, 从而确保子种群的均
                 匀性. 这种均匀方式不仅有助于提升算法效率, 也在后续的档案库更新过程中有效促进整体种群的多样性表现.

                                                 ∪{              
      
 }
                                                     (k) (k)

                                             S i =  x x = argmin x⩽P 
F(x)−w j 
 
 2                 (2)
                                                       i
                                                     i
                    本文也探索了另一种子种群划分方法, 其基本思想是将个体分配给与其欧几里得距离最近的权重向量所对应
                 的子种群. 计算方式如公式        (3), 对于种群  P 中当前个体    x, 计算其与各权重向量       w j  间的欧氏距离, 并将其分配至
   182   183   184   185   186   187   188   189   190   191   192