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

丁炜超 等: 基于信息共享的改进双归档高维多目标进化算法                                                    1153



                                         f 1                 f 1
                                             a
                                                                a
                                               b
                                                 c                b
                                                      d             c
                                             θ                           d
                                                         e                  e

                                                           f 2                 f 2
                                              (a) Two-Arch/IS     (b) SPEA-Ⅱ+SDE
                                    图 4 Two-Arch/IS  和  SPEA-II+SDE  的截断方式 (以  2  目标为例)

                  2.5   基于边界解驱动的信息补偿机制
                    至此, 算法中各部分目的明确, 但为进一步促进档案库间信息交流, 实现收敛性表现突出个体和多样性表现突
                 出个体之间的优势互补, 从而增强种群的综合质量, Two-Arch/IS              设计了一种基于边界解驱动的信息补偿机制. 当
                 档案库中的边界解达到预设的条件时, 收敛性边界解将被引入                    DA, 同样地, 多样性边界解将被引入          CA, 通过互相
                 引导进化, 从而提高整体解集的质量.
                    在种群进化过程中, CA       的首要任务是确保足够的收敛性. 过早地进行个体迁移, 尤其是在种群进化前期, 可
                 能会对   CA  造成干扰, 从而导致收敛性不足, 减缓种群向           PF  移动的速度, 降低算法整体效率. 因此, Two-Arch/IS      并
                 未选择在每一代都执行档案库间的信息补偿操作, 而是选择在种群进化后期基本收敛时, 每隔                             10  代执行一次档案
                 库间的个体迁移, 具体的操作如下.
                    针对档案库中的最小边界解, 标记           CA  中某一目标上目标值最小的个体为            x 1 , DA  中目标值最小的个体为    x 2 .
                 f m (x) 计算个体  x 在  m  目标维度上的目标值, 若当前目标维度上满足          f m (x 1 ) < f m (x 2 ), 则执行个体迁移操作, 将  x 1  加
                 入  DA, 并将其从  CA  移除. 同样地, 对于最大边界解, 标记        CA  中某一目标上目标值最大的个体为            y 1 , DA  中目标
                                                                            y 2  加入  CA, 并将其从  DA  中移除.
                 值最大的个体为      y 2 . 若当前目标维度上满足     f m (y 1 ) < f m (y 2 ), 执行相应操作, 将
                    为直观地呈现 Two-Arch/IS 的信息补偿机制, 我们以伪代码的形式在算法                 5  中给出了具体的计算过程.

                 算法  5. 子代迁移  Individual_Migration.
                 输入: 收敛性档案     CA, 多样性档案    DA, 最大迭代次数    MG, 当前迭代次数     t;
                 输出: 收敛性档案     CA, 多样性档案    DA.

                 1. if (t/MG > 0.5) && (mod(t, 10) == 0) then
                 2.    if (size(CA) > 0) && (size(DA) > 0) then
                 3.     for m = 1 to M do
                 4.     在   m  目标上找到   CA  中目标值最小的个体       x 1 ;
                 5.     在   m  目标上找到   DA  中目标值最小的个体       x 2 ;
                 6.     if   f m (x 1 ) < f m (x 2 ) then
                              x 1  移动到  DA;
                 7.      将
                 8.     end if
                 9.        在  m  目标上找到  CA  中目标值最大的个体      y 1 ;
                 10.      在  m  目标上找到  DA  中目标值最大的个体       y 2 ;
                 11.      if   f m (y 1 ) < f m (y 2 ) then
                              y 2  移动到  CA;
                 12.       将
                 13.      end if
                 14.     end for
   185   186   187   188   189   190   191   192   193   194   195