2025年新算法-混沌进化优化:(Chaotic evolution optimization,CEO)一种受混沌动力学启发的新型元启发式算法
提出了一种受混沌动力学启发的新颖的基于种群的元启发式算法,称为混沌进化优化(CEO)。CEO的主要灵感来自二维离散忆阻映射的混沌进化过程。通过利用忆阻映射的超混沌特性,对CEO算法进行数学建模,引入进化过程的随机搜索方向。该算法于2025年3月最新发表在中科院1区SCI期刊 Chaos, Solitons & Fractals。(if=5.3)
混沌进化优化(CEO)
对所提出的CEO算法进行了数学建模。CEO的整体框架类似于DE算法,包括变异、交叉和选择操作。关键区别在于变异算子的设计,其中CEO采用二维离散忆阻超混沌映射来为每个个体提供变异方向。
3.1 变异操作
CEO 作为一种基于种群的进化算法,利用以下统一搜索框架作为其变异操作符:
xt+1=xt+a⋅dt x_{t+1} = x_t + a \cdot d_t xt+1=xt+a⋅dt
其中xtx_txt 和xt+1x_{t+1}xt+1 分别是当前个体和变异个体;a 是搜索步长,dtd_tdt是进化方向,生成自动态映射公式(Eq. 2)。
CEO 的主要思想是利用二维记忆混沌超高效映射的超混沌特性,如公式(Eq. 2)所示,用来为种群提供进化方向。需要强调的是,为了使得所提出的 CEO 算法能够有效利用 Eq. 2 的超混沌特性,CEO 中选出的两个个体xtx_txt 和 yty_tyt 必须映射到[−0.5,0.5][-0.5, 0.5][−0.5,0.5]和[−0.25,0.25][-0.25, 0.25][−0.25,0.25]范围内,如 Eq.(4)所示。
x′=x−lbub−lb−0.5 x' = \frac{x - lb}{ub - lb} - 0.5 x′=ub−lbx−lb−0.5
y′=y−lbub−lb−0.25 y' = \frac{y - lb}{ub - lb} - 0.25 y′=ub−lby−lb−0.25
其中x′x'x′ 和y′y'y′ 是映射后的混沌位置,值分别在[−0.5,0.5][-0.5, 0.5][−0.5,0.5]和[−0.25,0.25][-0.25, 0.25][−0.25,0.25]区间内;lblblb 和ububub是当前种群变量的下界和上界。
N 个混沌候选个体xchaosx_{chaos}xchaos和ychaosy_{chaos}ychaos 可以通过应用公式 Eq.(2)生成,具体伪代码如下:
1: 对于n=1n = 1n=1 到N做
xchaos(n)←k⋅e−cosnπ−1⋅xt
x_{chaos}(n) \gets k \cdot e^{- \cos n \pi} - 1 \cdot x_t
xchaos(n)←k⋅e−cosnπ−1⋅xt
ychaos(n)←yt′+xt
y_{chaos}(n) \gets y'_{t} + x_t
ychaos(n)←yt′+xt
2: 结束
在上述伪代码中,N 代表混沌样本的数量。因此,通过应用公式(Eq. 2),可以生成 N 个混沌候选个体xchaos=xchaos1…xchaosN和ychaos=ychaos1…ychaosNx_{chaos} = x_{chaos1} \dots x_{chaosN}和y_{chaos} = y_{chaos1} \dots y_{chaosN}xchaos=xchaos1…xchaosN和ychaos=ychaos1…ychaosN,这些混沌个体可以被映射回实际位置xchaos′=xchaos1′…xchaosN′和ychaos′=ychaos1′…ychaosN′x_{chaos'} = x_{chaos1'} \dots x_{chaosN'} 和 y_{chaos'} = y_{chaos1'} \dots y_{chaosN'}xchaos′=xchaos1′…xchaosN′和ychaos′=ychaos1′…ychaosN′,如 Eq.(5)所示。
xchaos′=xchaos∗⋅0.5⋅ub−lb+lb
x_{chaos'} = x_{chaos}^* \cdot 0.5 \cdot ub - lb + lb
xchaos′=xchaos∗⋅0.5⋅ub−lb+lb
ychaos′=ychaos∗⋅0.25⋅2⋅ub−lb+lb
y_{chaos'} = y_{chaos}^* \cdot 0.25 \cdot 2 \cdot ub - lb + lb
ychaos′=ychaos∗⋅0.25⋅2⋅ub−lb+lb
显然,基于xchaos′x_{chaos'}xchaos′ 和ychaos′y_{chaos'}ychaos′,可以生成 N 个进化方向,分别用于个体xtx_txt 和 yty_tyt,如公式(6)所示:
dxtn=xchaos′n−xt
d_{x_t}^n = x_{chaos'}^n - x_t
dxtn=xchaos′n−xt
dytn=ychaos′n−yt
d_{y_t}^n = y_{chaos'}^n - y_t
dytn=ychaos′n−yt
其中KaTeX parse error: Can't use function '\)' in math mode at position 16: n = 12 \dots N \̲)̲;\( d_{x_t}^n 和…是xtx_txt和yty_tyt的进化方向。综上所述,通过结合公式(3)、(6),CEO 的变异操作符可以通过公式(7)推导出:
xt+1=xt+a⋅xchaos′n−xt x_{t+1} = x_t + a \cdot x_{chaos'}^n - x_t xt+1=xt+a⋅xchaos′n−xt
yt+1=yt+a⋅ychaos′n−yt y_{t+1} = y_t + a \cdot y_{chaos'}^n - y_t yt+1=yt+a⋅ychaos′n−yt
其中,a 是搜索步长,亦称为缩放因子,它是一个位于区间 [0, 1] 内的随机数。显然,可以为个体xt和ytx_t 和y_txt和yt 生成 N 个变异个体。
可以看出,公式(7)具有强大的全局探索能力,但这可能导致算法收敛速度较慢。因此,为了进一步提高算法的局部开发能力,公式(8)用于在当前种群中搜索最佳解,以加快算法的收敛速度。
xt+1=Bestt+a⋅xchaos′n−xt x_{t+1} = Best_t + a \cdot x_{chaos'}^n - x_t xt+1=Bestt+a⋅xchaos′n−xt
yt+1=Bestt+a⋅ychaos′n−yt y_{t+1} = Best_t + a \cdot y_{chaos'}^n - y_t yt+1=Bestt+a⋅ychaos′n−yt
其中BesttBest_tBestt是当前种群的最佳解。
3.2 交叉操作
变异之后,CEO 采用一个二项交叉操作符作用于xtp+1和ytp+1x_t^{p+1}和 y_t^{p+1}xtp+1和ytp+1,分别生成试验向量xtrialn=xtrial1,xtrial2,…,xtrialn和ytrialn=ytrial1,ytrial2,…,ytrialnx_{trial}^n = x_{trial1}, x_{trial2}, \dots, x_{trialn}和y_{trial}^n = y_{trial1}, y_{trial2}, \dots, y_{trialn}xtrialn=xtrial1,xtrial2,…,xtrialn和ytrialn=ytrial1,ytrial2,…,ytrialn,具体交叉过程如下:
xtrialn={xtn+r,ifrand≤Crxtrand,otherwise x_{trial}^n = \begin{cases} x_t^{n} + r, \quad \text{if} \quad rand \leq C_r \\ x_t^{rand}, \quad \text{otherwise} \end{cases} xtrialn={xtn+r,ifrand≤Crxtrand,otherwise
其中,Dim 是优化问题的维度,j 是在 [1, Dim]区间内随机选择的整数,r 是每次为每个生成的随机数。CrC_rCr是交叉控制参数,在 CEO 中,每次迭代中,CrC_rCr 值为在区间 [0, 1] 内的随机数。
3.3 选择操作
对于xt和ytx_t和y_txt和yt,可以生成试验向量xtrialn和ytrialnx_{trial}^n和y_{trial}^nxtrialn和ytrialn。CEO 采用贪心准则选择生成的实验向量。选择操作符如下所示:
xt+1={xtrial,iff(xtrial)≤f(xt)xt,otherwise x_{t+1} = \begin{cases} x_{trial}, \quad \text{if} \quad f(x_{trial}) \leq f(x_t) \\ x_t, \quad \text{otherwise} \end{cases} xt+1={xtrial,iff(xtrial)≤f(xt)xt,otherwise
yt+1={ytrial,iff(ytrial)≤f(yt)yt,otherwise y_{t+1} = \begin{cases} y_{trial}, \quad \text{if} \quad f(y_{trial}) \leq f(y_t) \\ y_t, \quad \text{otherwise} \end{cases} yt+1={ytrial,iff(ytrial)≤f(yt)yt,otherwise
其中xtrialn和ytrialnx_{trial}^n和y_{trial}^nxtrialn和ytrialn是试验向量的最佳解。

完整代码领取:
https://github.com/Running-Wolf1010/CEO
更多推荐


所有评论(0)