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

