相关推荐recommended
【第一期】改进群体智能优化算法终结者,将近3000个改进策略+1万种改进算法!!!
作者:mmseoamin日期:2024-03-04

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

      • 摘要
      • 一、2816种改进策略介绍
        • (1)【头部混沌变异】
          • ①-Tent 映射
          • ②-Logistic映射
          • ③-Cubic 映射
          • ④-chebyshev 映射
          • ⑤-Piecewise 映射
          • ⑥-sinusoidal 映射
          • ⑦-Sine 映射
          • ⑧-ICMIC 映射(无限折叠迭代混沌映射)
          • ⑨-Circle 映射
          • ⑩-Bernoulli 映射
          • (2)【身体融合变异】
          • (3)【尾部拼接变异】
          • 二、五种群体智能优化算法改进效果
            • (1)改进灰狼优化算法(IGWO)
            • (2)改进哈里斯鹰优化算法(IHHO)
            • (3)改进蚁狮优化算法(IALO)
            • (4)改进白鹭群优化算法(IESOA)
            • (5)改进平衡优化器算法(IEO)

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

              摘要

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

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

                :::

                一、2816种改进策略介绍

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

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

                下面依次进行介绍:

                (1)【头部混沌变异】

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

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

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

                  下面是本套代码包含的10种混沌映射

                  ①-Tent 映射

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

                  % 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)=(1-Tent(i,j-1))/(1-tent);
                  end
                  end
                  end
                  
                  ②-Logistic映射

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

                  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 映射

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

                  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 映射

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

                  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 映射

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

                  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-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 映射

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

                  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 映射

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

                  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 映射(无限折叠迭代混沌映射)

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

                  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 映射

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

                  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 映射

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

                  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文件中

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

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

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

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

                  以上11种可以用固定公式表达,但下面4种一般并无固定公式,每个人的写法都有可能不一样,具体参考我的代码文件:integration.m

                  12. 透镜成像反向学习(Lens Imaging Backward Learning):这通常涉及利用某种投影或映射技术,将高维问题空间减少到怦然可管理的维度,并在这个“简化”空间中进行优化。具体的方法会因问题而异,并且没有固定的公式。

                  13. 纵横交叉(Vertical and Horizontal Crossover):这通常在遗传算法中使用,其中新的解是通过结合两个或更多父解的部分来生成的。如果我们将解视为二维数组,则纵向和横向交叉就意味着我们可以在任何方向上交换部分以创建新的解。同样,它并没有一个精确的公式表示。

                  14. 动态反向学习(Dynamic Backward Learning): 这是一种策略,其目标是根据求解过程中收集到的信息调整搜索策略。具体实现方式取决于算法的设计者,并没有固定的公式来描述。

                  15. 随机游走(Random Walk):这是一种简单的随机搜索策略。

                  (3)【尾部拼接变异】

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

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

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

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

                  【测试函数原文: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.
                  • 改进前后对比:

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

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

                    (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.
                    • 改进前后对比:

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

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

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

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

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

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

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