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 作为一种基于种群的进化算法,利用以下统一搜索框架作为其变异操作符:

x t + 1 = x t + a ⋅ d t x_{t+1} = x_t + a \cdot d_t xt+1=xt+adt

其中 x t x_t xt x t + 1 x_{t+1} xt+1 分别是当前个体和变异个体;a 是搜索步长, d t d_t dt是进化方向,生成自动态映射公式(Eq. 2)。

CEO 的主要思想是利用二维记忆混沌超高效映射的超混沌特性,如公式(Eq. 2)所示,用来为种群提供进化方向。需要强调的是,为了使得所提出的 CEO 算法能够有效利用 Eq. 2 的超混沌特性,CEO 中选出的两个个体 x t x_t xt y t y_t yt 必须映射到 [ − 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 − l b u b − l b − 0.5 x' = \frac{x - lb}{ub - lb} - 0.5 x=ublbxlb0.5

y ′ = y − l b u b − l b − 0.25 y' = \frac{y - lb}{ub - lb} - 0.25 y=ublbylb0.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]区间内; l b lb lb u b ub ub是当前种群变量的下界和上界。

N 个混沌候选个体 x c h a o s x_{chaos} xchaos y c h a o s y_{chaos} ychaos 可以通过应用公式 Eq.(2)生成,具体伪代码如下:

1: 对于 n = 1 n = 1 n=1 到N做
x c h a o s ( n ) ← k ⋅ e − cos ⁡ n π − 1 ⋅ x t x_{chaos}(n) \gets k \cdot e^{- \cos n \pi} - 1 \cdot x_t xchaos(n)kecos1xt
y c h a o s ( n ) ← y t ′ + x t y_{chaos}(n) \gets y'_{t} + x_t ychaos(n)yt+xt
2: 结束

在上述伪代码中,N 代表混沌样本的数量。因此,通过应用公式(Eq. 2),可以生成 N 个混沌候选个体 x c h a o s = x c h a o s 1 … x c h a o s N 和 y c h a o s = y c h a o s 1 … y c h a o s N x_{chaos} = x_{chaos1} \dots x_{chaosN}和y_{chaos} = y_{chaos1} \dots y_{chaosN} xchaos=xchaos1xchaosNychaos=ychaos1ychaosN,这些混沌个体可以被映射回实际位置 x c h a o s ′ = x c h a o s 1 ′ … x c h a o s N ′ 和 y c h a o s ′ = y c h a o s 1 ′ … y c h a o s N ′ x_{chaos'} = x_{chaos1'} \dots x_{chaosN'} 和 y_{chaos'} = y_{chaos1'} \dots y_{chaosN'} xchaos=xchaos1xchaosNychaos=ychaos1ychaosN,如 Eq.(5)所示。
x c h a o s ′ = x c h a o s ∗ ⋅ 0.5 ⋅ u b − l b + l b x_{chaos'} = x_{chaos}^* \cdot 0.5 \cdot ub - lb + lb xchaos=xchaos0.5ublb+lb
y c h a o s ′ = y c h a o s ∗ ⋅ 0.25 ⋅ 2 ⋅ u b − l b + l b y_{chaos'} = y_{chaos}^* \cdot 0.25 \cdot 2 \cdot ub - lb + lb ychaos=ychaos0.252ublb+lb

显然,基于 x c h a o s ′ x_{chaos'} xchaos y c h a o s ′ y_{chaos'} ychaos,可以生成 N 个进化方向,分别用于个体 x t x_t xt y t y_t yt,如公式(6)所示:
d x t n = x c h a o s ′ n − x t d_{x_t}^n = x_{chaos'}^n - x_t dxtn=xchaosnxt
d y t n = y c h a o s ′ n − y t d_{y_t}^n = y_{chaos'}^n - y_t dytn=ychaosnyt

其中KaTeX parse error: Can't use function '\)' in math mode at position 16: n = 12 \dots N \̲)̲;\( d_{x_t}^n 和… x t x_t xt y t y_t yt的进化方向。综上所述,通过结合公式(3)、(6),CEO 的变异操作符可以通过公式(7)推导出:

x t + 1 = x t + a ⋅ x c h a o s ′ n − x t x_{t+1} = x_t + a \cdot x_{chaos'}^n - x_t xt+1=xt+axchaosnxt

y t + 1 = y t + a ⋅ y c h a o s ′ n − y t y_{t+1} = y_t + a \cdot y_{chaos'}^n - y_t yt+1=yt+aychaosnyt

其中,a 是搜索步长,亦称为缩放因子,它是一个位于区间 [0, 1] 内的随机数。显然,可以为个体 x t 和 y t x_t 和y_t xtyt 生成 N 个变异个体。

可以看出,公式(7)具有强大的全局探索能力,但这可能导致算法收敛速度较慢。因此,为了进一步提高算法的局部开发能力,公式(8)用于在当前种群中搜索最佳解,以加快算法的收敛速度。

x t + 1 = B e s t t + a ⋅ x c h a o s ′ n − x t x_{t+1} = Best_t + a \cdot x_{chaos'}^n - x_t xt+1=Bestt+axchaosnxt

y t + 1 = B e s t t + a ⋅ y c h a o s ′ n − y t y_{t+1} = Best_t + a \cdot y_{chaos'}^n - y_t yt+1=Bestt+aychaosnyt

其中 B e s t t Best_t Bestt是当前种群的最佳解。


3.2 交叉操作

变异之后,CEO 采用一个二项交叉操作符作用于 x t p + 1 和 y t p + 1 x_t^{p+1}和 y_t^{p+1} xtp+1ytp+1,分别生成试验向量 x t r i a l n = x t r i a l 1 , x t r i a l 2 , … , x t r i a l n 和 y t r i a l n = y t r i a l 1 , y t r i a l 2 , … , y t r i a l n x_{trial}^n = x_{trial1}, x_{trial2}, \dots, x_{trialn}和y_{trial}^n = y_{trial1}, y_{trial2}, \dots, y_{trialn} xtrialn=xtrial1,xtrial2,,xtrialnytrialn=ytrial1,ytrial2,,ytrialn,具体交叉过程如下:

x t r i a l n = { x t n + r , if r a n d ≤ C r x t r a n d , 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,ifrandCrxtrand,otherwise

其中,Dim 是优化问题的维度,j 是在 [1, Dim]区间内随机选择的整数,r 是每次为每个生成的随机数。 C r C_r Cr是交叉控制参数,在 CEO 中,每次迭代中, C r C_r Cr 值为在区间 [0, 1] 内的随机数。


3.3 选择操作

对于 x t 和 y t x_t和y_t xtyt,可以生成试验向量 x t r i a l n 和 y t r i a l n x_{trial}^n和y_{trial}^n xtrialnytrialn。CEO 采用贪心准则选择生成的实验向量。选择操作符如下所示:

x t + 1 = { x t r i a l , if f ( x t r i a l ) ≤ f ( x t ) x t , 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

y t + 1 = { y t r i a l , if f ( y t r i a l ) ≤ f ( y t ) y t , 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

其中 x t r i a l n 和 y t r i a l n x_{trial}^n和y_{trial}^n xtrialnytrialn是试验向量的最佳解。


在这里插入图片描述
完整代码领取:
https://github.com/Running-Wolf1010/CEO

### 混沌进化优化算法的概念与实现 混沌进化优化算法Chaotic Evolution Optimization, CEO)是一种混沌动力学启发新型元启发式优化算法。该算法利用混沌系统的非线性和随机特性来增强全局搜索能力,同时保持局部探索的有效性[^2]。 #### 算法的核心原理 混沌进化优化算法基于混沌映射生成候选解,并通过迭代过程逐步逼近最优解。其核心在于引入混沌变量以增加种群多样性并防止陷入局部极值。具体而言,混沌映射能够产生伪随机序列,在搜索空间中表现出良好的遍历性和规律性[^1]。 以下是混沌进化优化算法的主要特点: - **初始化阶段**:采用均匀分布或其他方式生成初始种群。 - **混沌扰动机制**:运用Logistic映射等经典混沌模型更新个体位置。 - **适应度评估**:计算每一代种群成员的目标函数值,筛选优质解。 - **收敛条件判断**:当满足预设精度或者达到最大迭代次数时停止运算。 #### Matlab实现示例 下面给出一段简单的Matlab代码用于演示基本框架: ```matlab function [bestPosition, bestFitness] = ceoAlgorithm(objectiveFunction, lowerBound, upperBound, populationSize, maxIterations) % 初始化参数 dimension = length(lowerBound); population = zeros(populationSize, dimension); % 随机生成初始种群 for i = 1:populationSize population(i,:) = lowerBound + rand(1,dimension).*(upperBound-lowerBound); end % 记录最佳解及其适应度 fitnessValues = arrayfun(@(x) objectiveFunction(x), population); [~, idxBest] = min(fitnessValues); bestPosition = population(idxBest,:); bestFitness = fitnessValues(idxBest); % 主循环 for iter = 1:maxIterations newPopulation = zeros(size(population)); for j = 1:dimension chaosVar = logisticMap(rand); % 使用logistic映射生成混沌变量 % 更新种群中的每个维度 newPopulation(:,j) = (chaosVar * (upperBound(j)-lowerBound(j))) + lowerBound(j); % 边界处理 newPopulation(:,j) = max(newPopulation(:,j), lowerBound(j)); newPopulation(:,j) = min(newPopulation(:,j), upperBound(j)); end % 重新评价新种群 newFitnessValues = arrayfun(@(x) objectiveFunction(x), newPopulation); % 替换旧种群 population = newPopulation; fitnessValues = newFitnessValues; % 更新全局最优解 [~, idxBest] = min(fitnessValues); currentBestPosition = population(idxBest,:); currentBestFitness = fitnessValues(idxBest); if currentBestFitness < bestFitness bestPosition = currentBestPosition; bestFitness = currentBestFitness; end end end % Logistic 映射定义 function y = logisticMap(x) r = 4; % 控制参数r取值范围通常为[3.57,4] y = r*x.*(1-x); end ``` 此脚本实现了CEOA的基础流程,适用于连续域上的单目标优化问题[^4]。 #### 应用领域探讨 混沌进化优化已被成功应用于多个学科方向,例如工程设计、机器学习超参调优以及复杂系统建模等领域。特别值得一提的是它在神经网络训练方面的潜力——借助混沌动态调整权重矩阵可以有效缓解梯度消失现象并提升泛化性能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法小狂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值