2022年IEEE TETCI,基于矩阵的进化计算,深度解析+性能实测

目录


1.摘要

本文提出一种基于矩阵的进化计算(MEC)框架,旨在通过底层架构的重构解决传统进化算法在大规模优化问题中面临的计算负担重、运行时间长等瓶颈,该框架从个体表征到进化算子均采用了全新的矩阵化视角:将整个种群定义为一个矩阵,其中行与列分别映射个体与决策变量维度,从而能够直接利用高性能计算资源的并行矩阵运算能力,显著提升算子的执行效率。通过对矩阵化遗传算法(GA)和粒子群算法(PSO)的实现及复杂度分析,实验结果证实该框架在处理高维变量时能大幅削减计算耗时,为进化计算在大规模复杂优化问题中的应用提供了高效的新路径。

2.基础知识

表征与符号

传统进化计算将个体表示为 D D D 维向量 X i = ( x i 1 , x i 2 , ... , x i D ) X_i = (x_{i1}, x_{i2}, \ldots, x_{iD}) Xi=(xi1,xi2,...,xiD),MEC 将规模为 N N N 的种群定义为 N × D N \times D N×D 阶矩阵 X X X:
X = ( x 11 ⋯ x 1 D ⋮ ⋱ ⋮ x N 1 ⋯ x N D ) X = \begin{pmatrix} x_{11} & \cdots & x_{1D} \\ \vdots & \ddots & \vdots \\ x_{N1} & \cdots & x_{ND} \end{pmatrix} X= x11⋮xN1⋯⋱⋯x1D⋮xND

其中,矩阵的行向量对应单个个体,列向量对应决策变量的维度。基于此表征,变量的上下界分别由 1 × D 1 \times D 1×D 阶矩阵 L L L 与 U U U 表征,种群适应度记录于 N × 1 N \times 1 N×1 阶矩阵 F i t Fit Fit 中。

通用算子

3.基于矩阵的遗传算法

表示与初始化

在MGA中,种群矩阵 X X X 初始化通过哈达玛积运算,实现了全种群在可行域内随机分布:
X = O n e s N × 1 × ( U − L ) ∘ R N × D + O n e s N × 1 X = Ones_{N \times 1} \times (U - L) \circ R_{N \times D} + Ones_{N \times 1} X=OnesN×1×(U−L)∘RN×D+OnesN×1

种群适应度通过矩阵函数映射为 N × 1 N \times 1 N×1 阶矩阵 F i t Fit Fit:
F i t = f ( X ) Fit = f(X) Fit=f(X)

利用矩阵极值运算直接确定全局最优适应度值 g B e s t _ F i t gBest\_Fit gBest_Fit:
g B e s t _ F i t = { min ⁡ ( F i t ) , if it is a minimun max ⁡ ( F i t ) , if it is a maximun gBest\_Fit = \begin{cases} \min(Fit), & \text{if it is a minimun} \\ \max(Fit), & \text{if it is a maximun} \end{cases} gBest_Fit={min(Fit),max(Fit),if it is a minimunif it is a maximun

选择算子

选择算子实现了矩阵化的轮盘赌选择,计算表征各体被选中概率的 N × 1 N \times 1 N×1 阶矩阵 P r o b Prob Prob:
P r o b = { O n e s 1 × N × F i t − F i t ( N − 1 ) × ( O n e s 1 × N × F i t ) , if it is a minimum problem F i t O n e s 1 × N × F i t , if it is a maximum problem Prob = \begin{cases} \frac{Ones_{1 \times N} \times Fit - Fit}{(N-1) \times (Ones_{1 \times N} \times Fit)} , & \text{if it is a minimum problem} \\ \frac{Fit}{Ones_{1 \times N} \times Fit} , & \text{if it is a maximum problem} \end{cases} Prob={(N−1)×(Ones1×N×Fit)Ones1×N×Fit−Fit,Ones1×N×FitFit,if it is a minimum problemif it is a maximum problem

定义 N × 1 N \times 1 N×1 阶累积概率矩阵 R O U _ M A T ROU\_MAT ROU_MAT,将串行累加转换为并行矩阵运算:
R O U _ M A T = L T R I × P r o b ROU\_MAT = LTRI \times Prob ROU_MAT=LTRI×Prob

为同时选出 N N N 个个体,算法通过逻辑比较运算构建 N × N N \times N N×N 阶选择矩阵 S E L _ M A T SEL\MAT SEL_MAT,该矩阵由扩展后的累积概率矩阵与随机概率矩阵 R R R 比较生成:
S E L _ M A T = ( O n e s N × 1 × R O U _ M A T T ) ≤ ( R N × 1 × O n e s 1 × N ) SEL\MAT = (Ones{N \times 1} \times ROU\MAT^T) \leq (R{N \times 1} \times Ones
{1 \times N}) SEL_MAT=(OnesN×1×ROU_MATT)≤(RN×1×Ones1×N)

交叉算子

矩阵化交叉算子在于构建掩码矩阵 M A S K MASK MASK,通过将交叉位置矩阵 C _ P O S C\POS C_POS 与排列矩阵 P E R M PERM PERM 进行逻辑比较,生成由 0 和 1 构成的掩码矩阵,用于指示变量的保留或替换位置:
M A S K N G / 2 × D = ( C _ P O S N G / 2 × 1 × O n e s 1 × D ) ≤ ( O n e s N G / 2 × 1 × P E R M 1 × D ) MASK
{N_G/2 \times D} = (C\POS{N_G/2 \times 1} \times Ones_{1 \times D}) \leq (Ones_{N_G/2 \times 1} \times PERM_{1 \times D}) MASKNG/2×D=(C_POSNG/2×1×Ones1×D)≤(OnesNG/2×1×PERM1×D)

基于该掩码矩阵及其补阵 M A S K ‾ = O n e s − M A S K \overline{MASK} = Ones - MASK MASK=Ones−MASK,利用哈达玛积运算同步生成两组后代个体:
O f f S p r i n g [ 1 , . . , N G / 2 ] [ 1 , . . , D ] = X [ 1 , . . , N G / 2 ] [ 1 , . . , D ] ∘ M A S K + X [ N G / 2 + 1 , . . , N G ] [ 1 , . . , D ] ∘ M ‾ OffSpring_{[1,..,N_G/2][1,..,D]} = X_{[1,..,N_G/2][1,..,D]} \circ MASK + X_{[N_G/2+1,..,N_G][1,..,D]} \circ \overline{M} OffSpring[1,..,NG/2][1,..,D]=X[1,..,NG/2][1,..,D]∘MASK+X[NG/2+1,..,NG][1,..,D]∘M
O f f S p r i n g [ N G / 2 + 1 , . . , N G ] [ 1 , . . , D ] = X [ N G / 2 + 1 , . . , N G ] [ 1 , . . , D ] ∘ M A S K + X [ 1 , . . , N G / 2 ] [ 1 , . . , D ] ∘ M ‾ OffSpring_{[N_G/2+1,..,N_G][1,..,D]} = X_{[N_G/2+1,..,N_G][1,..,D]} \circ MASK + X_{[1,..,N_G/2][1,..,D]} \circ \overline{M} OffSpring[NG/2+1,..,NG][1,..,D]=X[NG/2+1,..,NG][1,..,D]∘MASK+X[1,..,NG/2][1,..,D]∘M

这种方式通过矩阵加法与按元素乘法替代了传统的单点交叉遍历操作,最后通过索引映射完成种群更新:
X [ 1 , . . , N G ] [ 1 , . . , D ] = O f f S p r i n g X_{[1,..,N_G][1,..,D]} = OffSpring X[1,..,NG][1,..,D]=OffSpring

变异算子

变异算子在基因层面并行执行,首先生成随机矩阵 R N × D R_{N\times D} RN×D并将其与由变异概率 P m P_m Pm扩展而成的概率矩阵 P M PM PM进行逻辑比较,生成变异索引矩阵 M U T _ I N D : MUT\_IND: MUT_IND:

P M = O n e s N × 1 × P m × O n e s 1 × D PM=Ones_{N\times1}\times P_m\times Ones_{1\times D} PM=OnesN×1×Pm×Ones1×D

M U T I N D = R ≤ P M MUT_IND=R\leq PM MUTIND=R≤PM

索引矩阵值为1的元素标记了需执行变异的基因位,通过全局重初始化生成候选矩阵 R E _ X RE\_X RE_X,并利用哈达玛积运算实现原种群基因的保留与变异基因替换:

R E X = O n e s N × 1 × ( U − L ) ∘ R N × D + O n e s N × 1 × L RE_X=Ones_{N\times1}\times(U-L)\circ R_{N\times D}+Ones_{N\times1}\times L REX=OnesN×1×(U−L)∘RN×D+OnesN×1×L

X = X ∘ ( 1 − M U T I N D ) + R E X ∘ M U T I N D X=X\circ(1-MUT_IND)+RE_X\circ MUT_IND X=X∘(1−MUTIND)+REX∘MUTIND

4.基于矩阵的粒子群算法

MPSO初始化类似,算法利用矩阵加法与哈达玛积同步更新全种群的速度矩阵 V V V 与位置矩阵 X X X

V = w × V + c 1 × R 1 ∘ ( p B e s t − X ) + c 2 × R 2 ∘ ( O n e s × g B e s t − X ) V=w\times V+c_1\times R_1\circ(pBest-X)+c_2\times R_2\circ(Ones\times gBest-X) V=w×V+c1×R1∘(pBest−X)+c2×R2∘(Ones×gBest−X)
X = X + V X=X+V X=X+V

针对更新后的边界处理,算法利用逻辑运算矩阵 L O G I C LOGIC LOGIC捕捉越界位置,并通过哈达玛积实现越界值的截断映射

L O G I C N × D = X > ( O n e s × U ) LOGIC_{N\times D}=X>(Ones\times U) LOGICN×D=X>(Ones×U)

X = L O G I C ∘ U + ( 1 − L O G I C ) ∘ X X=LOGIC\circ U+(1-LOGIC)\circ X X=LOGIC∘U+(1−LOGIC)∘X

在个体与全局最优位置的更新阶段,MPSO 同样采用掩码机制。通过对比当前适应度Fit与历史最优适应度 p B e s t _ F i t pBest\_Fit pBest_Fit,生成逻辑判定矩阵,进而同步更新个体最优位置矩阵pBest与适应度记录矩阵 p B e s t _ F i t : pBest\_Fit: pBest_Fit:

p B e s t = L O G I C × O n e s ∘ X + ( 1 − L O G I C × O n e s ) ∘ p B e s t pBest=LOGIC\times Ones\circ X+(1-LOGIC\times Ones)\circ pBest pBest=LOGIC×Ones∘X+(1−LOGIC×Ones)∘pBest
p B e s t F i t = L O G I C ∘ F i t + ( 1 − L O G I C ) ∘ p B e s t F i t pBest_Fit=LOGIC\circ Fit+(1-LOGIC)\circ pBest_Fit pBestFit=LOGIC∘Fit+(1−LOGIC)∘pBestFit

5.结果展示

6.参考文献

Zhan Z H, Zhang J, Lin Y, et al. Matrix-based evolutionary computation[J]. IEEE Transactions on Emerging Topics in Computational Intelligence, 2021, 6(2): 315-328.

7.代码获取

xx

8.算法辅导·应用定制·读者交流

xx

相关推荐
欧米欧2 小时前
STRING的底层实现
前端·c++·算法
smj2302_796826522 小时前
解决leetcode第3906题统计网格路径中好整数的数目
python·算法·leetcode
KobeSacre2 小时前
leetcode 树
算法·leetcode·职场和发展
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 104. 二叉树的最大深度 | C++ 自底向上递归最优解
算法
Robot_Nav2 小时前
Kinodynamic Lazy ThetaStar:面向实时机器人导航的两阶段运动学路径规划算法
算法·机器人·lazy theta
热心网友俣先生2 小时前
2026华中杯A题超详细解题思路+第一篇论文分享
人工智能·算法·机器学习
全栈开发圈2 小时前
新书速览|机器人系统开发与优化:算法、感知与控制策略
算法·目标跟踪·机器人
爱写代码的倒霉蛋3 小时前
2021天梯赛L2-4真题解析
数据结构·算法
hoiii1873 小时前
基于CVX的储能调峰调频优化模型
算法