【第一期】改进群体智能优化算法终结者,将近3000个改进策略+1万种改进算法!!!

该文章已生成可运行项目,

摘要

本期内容共包含2816种改进方案,配合5个群体智能优化算法,实现1万多个改进算法的生成。

  • 本期改进的算法为:灰狼优化算法(GWO)、哈里斯鹰优化算法(HHO)、蚁狮优化算法(ALO)、白鹭群优化算法(ESOA)、平衡优化器算法(EO)
  • 【安安讲代码】版权所有,盗版必究!!!
  • 代码获取,请在公众号【安安讲代码】后台回复“改进1”;或者添加微信“anandata”
    :::

一、2816种改进策略介绍

我们将算法的通用改进策略进行了总结,分别是【头部混沌变异】、【身体融合变异】以及【尾部拼接变异】,在代码中的编号对应情况见下表。这些改进方案进行组合数量为:11✖16✖16=2816,即存在2816种改进策略。

下面依次进行介绍:

(1)【头部混沌变异】

群体智能算法在各种优化问题中找到了广泛的应用。然而,固定的初始化策略可能限制了这些算法的性能。为了增强搜索能力和寻优性能, 许多混沌映射作为初始化方法被引入到群体智能算法中。使用混沌映射初始化群体智能算法具有多个优点:

  • **增强全局搜索能力:**混沌映射的初始种群覆盖了整个解空间,这有助于增强算法的全局搜索能力,从而更有效地找到全局最优解。
  • **提高收敛速度:**由于混沌映射产生的种群分布均匀,可以避免在优化过程中陷入局部最优,从而提高算法的收敛速度。
  • **保证解的多样性:**混沌映射生成的种群拥有高度随机性和不确定性,这有助于保证解的多样性,提高找到全局最优解的可能性。
  • **减少参数调整压力:**一些混沌映射能够自我调整,减轻了参数调整的负担。

总的来说,混沌映射为群体智能算法提供了一种有效的初始化策略,有助于改进算法的寻优性能。然而,它并非一个万能的解决方案,其效果也会依赖于具体问题的特性。
下面是本套代码包含的10种混沌映射

①-Tent 映射

% N: 种群的个数; dim: 维度; tent: 混沌系数.
tent=1.1; %tent混沌系数
Tent=rand(N,dim);
for i=1:N
for j=2:dim
if Tent(i,j-1)<tent
Tent(i,j)=Tent(i,j-1)/tent;
elseif Tent(i,j-1)>=tent
Tent(i,j)=(1-Tent(i,j-1))/(1-tent);
end
end
end
②-Logistic映射

miu=2; %混沌系数
Logistic=rand(N,dim);
for i=1:N
for j=2:dim
Logistic(i,j)=miu.* Logistic(i,j-1).*(1-Logistic(i,j-1));
end
end
③-Cubic 映射

cubic=2.59;
Cubic=rand(N,dim);
for i=1:N
for j=2:dim
Cubic(i,j)=cubic.*Cubic(i,j-1).*(1-Cubic(i,j-1).^2);
end
end
④-chebyshev 映射

chebyshev=8;
Chebyshev=rand(N,dim);
for i=1:N
for j=2:dim
Chebyshev(i,j)=cos(chebyshev.*acos(Chebyshev(i,j-1)));
end
end
⑤-Piecewise 映射

p=1;
Piecewise=rand(N,dim);
for i=1:N
for j=2:dim
if Piecewise(i,j-1)>0&&Piecewise(i,j-1)<p
Piecewise(i,j)=Piecewise(i,j-1)/p;
elseif Piecewise(i,j-1)>=p&&Piecewise(i,j-1)<0.5
Piecewise(i,j)=(Piecewise(i,j-1)-p)/(0.5-p);
elseif Piecewise(i,j-1)>=0.5&&Piecewise(i,j-1)<1-p
Piecewise(i,j)=(1-p-Piecewise(i,j-1))/(0.5-p);
elseif Piecewise(i,j-1)>=1-p&&Piecewise(i,j-1)<1
Piecewise(i,j)=(1-Piecewise(i,j-1))/p;
end
end
end
⑥-sinusoidal 映射

sinusoidal=2;
Sinusoidal=rand(N,dim);
for i=1:N
for j=2:dim
Sinusoidal(i,j)=sinusoidal*Sinusoidal(i,j-1).^2*(sin(pi*Sinusoidal(i,j-1)));
end
end
⑦-Sine 映射

sine=3.8;
Sine=rand(N,dim);
for i=1:N
for j=2:dim
Sine(i,j)=(4/sine)*sin(pi*Sine(i,j-1));
end
end
⑧-ICMIC 映射(无限折叠迭代混沌映射)

icmic=100;
ICMIC=rand(N,dim);
for i=1:N
for j=2:dim
ICMIC(i,j)=sin(icmic/ICMIC(i,j-1));
end
end
⑨-Circle 映射

a = 0.5; b=0.2;
Circle=rand(N,dim);
for i=1:N
for j=2:dim
Circle(i,j)=mod(Circle(i,j-1)+a-b/(2*pi)*sin(2*pi*Circle(i,j-1)),1);
end
end
⑩-Bernoulli 映射

lammda = 0.4;
Bernoulli=rand(N,dim);
for i=1:N
for j=2:dim
if Bernoulli(i,j-1) < 1-lammda
Bernoulli(i,j)= Bernoulli(i,j-1)/(1-lammda);
else
Bernoulli(i,j)= (Bernoulli(i,j-1)-1+lammda)/lammda;
end
end
end

(2)【身体融合变异】

身体融合变异,其实就是将一些变异方式融合进原始算法中,迭代过程中,采用一定的随机策略,或者去执行原算法的位置更新,或者去执行融合的变异策略,伪代码:

for i=1:Particles_no   % 种群中每个个体逐一更新位置
if rand < 1-sqrt(Iter/Max_iter) && num ~= 0 % 这里执行是否进行变异的判断
X =integration(X); % 变异

else
X=original(X) ; % 不执行变异,采用原始算法更新位置 
end
end

下面介绍变异方式,代码实现部分在integration.m文件中

以上11种可以用固定公式表达,但下面4种一般并无固定公式,每个人的写法都有可能不一样,具体参考我的代码文件:integration.m
12. 透镜成像反向学习(Lens Imaging Backward Learning):这通常涉及利用某种投影或映射技术,将高维问题空间减少到怦然可管理的维度,并在这个“简化”空间中进行优化。具体的方法会因问题而异,并且没有固定的公式。
13. 纵横交叉(Vertical and Horizontal Crossover):这通常在遗传算法中使用,其中新的解是通过结合两个或更多父解的部分来生成的。如果我们将解视为二维数组,则纵向和横向交叉就意味着我们可以在任何方向上交换部分以创建新的解。同样,它并没有一个精确的公式表示。
14. 动态反向学习(Dynamic Backward Learning): 这是一种策略,其目标是根据求解过程中收集到的信息调整搜索策略。具体实现方式取决于算法的设计者,并没有固定的公式来描述。
15. 随机游走(Random Walk):这是一种简单的随机搜索策略。

(3)【尾部拼接变异】

这个比【身体融合变异】更容易,就是在每次迭代位置更新结束,再拼接一个变异方式,之后结束迭代即可。变异的15种方法,与【身体融合变异】完全一致。

二、五种群体智能优化算法改进效果

改进前后对比,采用23个标准测试函数,全部实际跑出来的结果!真实改进效果!选择最难的两个测试函数演示


【测试函数原文:Evolutionary programming made faster IEEE Transactions on Evolutionary Computation ( IF 11.554 ) Pub Date : 1999-07-01 , DOI: 10.1109/4235.771163 】

(1)改进灰狼优化算法(IGWO)

  • 原始GWO算法参考文献:Mirjalili S, Mirjalili S M, Lewis A. Grey wolf optimizer[J]. Advances in engineering software, 2014, 69: 46-61.
  • 改进前后对比:

(2)改进哈里斯鹰优化算法(IHHO)

  • 原始HHO算法参考文献:Heidari A A, Mirjalili S, Faris H, et al. Harris hawks optimization: Algorithm and applications[J]. Future generation computer systems, 2019, 97: 849-872.
  • 改进前后对比:

(3)改进蚁狮优化算法(IALO)

  • 原始ALO算法算法参考文献:Mirjalili S. The ant lion optimizer[J]. Advances in engineering software, 2015, 83: 80-98.
  • 改进前后对比:

(4)改进白鹭群优化算法(IESOA)

  • 原始ESOA算法算法参考文献:Chen Z, Francis A, Li S, et al. Egret swarm optimization algorithm: an evolutionary computation approach for model free optimization[J]. Biomimetics, 2022, 7(4): 144.
  • 改进前后对比:

(5)改进平衡优化器算法(IEO)

  • 原始EO算法参数文献:Faramarzi A, Heidarinejad M, Stephens B, et al. Equilibrium optimizer: A novel optimization algorithm[J]. Knowledge-Based Systems, 2020, 191: 105190.
  • 改进前后对比:

本文章已经生成可运行项目
除了使用莱维飞行策略,还有其他一些策略可以用来改进群智能优化算法。以下是几个常见的改进策略1. 粒子群算法(PSO): - 改进权重参数:传统的PSO算法使用固定的权重参数,但通过调整权重参数的变化规律,可以影响算法的探索和利用能力。例如,线性递减权重和非线性权重。这些改变可以使算法更好地平衡全局搜索和局部搜索的能力。 - 自适应参数:引入自适应机制来动态地调整算法的参数值。例如,自适应惯性权重、自适应学习因子等。这样可以提高算法对不同问题的适应性和收敛速度。 - 多种群策略:将种群划分为多个子群,每个子群具有不同的参数设置或搜索策略。通过子群之间的交互和信息共享,可以提高算法的搜索效果。 2. 人工蜂群算法(ABC): - 局部搜索策略:引入局部搜索机制来增加算法的局部搜索能力。例如,引入局部搜索器或局部探索阶段,在每个循环内对部分个体进行局部搜索以增加多样性和探索能力。 - 多目标优化:将ABC算法扩展到多目标优化问题,通过适当的多目标适应度函数、选择策略和更新机制,可以提高算法在多目标优化问题上的性能。 3. 蚁群优化算法(ACO): - 引入启发信息:除了使用蚁群之间的信息素信息,在搜索过程中还可以引入启发信息,以指导蚂蚁的移动方向。例如,使用问题特定的启发式规则或问题相关的信息来指导蚂蚁的选择。 - 动态更新策略:根据问题的特性和算法的收敛情况,动态地调整蚂蚁的行为策略或信息素更新策略。这样可以提高算法对不同问题的适应性和搜索效果。 这些是改进群智能优化算法的一些常见策略,每种算法都有其独特的特点和适用范围。你可以根据具体问题和需求选择适合的改进策略。希望对你有所帮助!如果你还有其他问题,请继续提问。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安安讲代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值