智能优化算法:象群算法-附代码

10/19 09:51
阅读数 67

智能优化算法:象群算法-附代码


摘要:象群优化算法(Elephant Herding Optimization, EHO)是 Wang 等人于2016 年提出了一种新的群体智能优化算法,用于解决全局无约束优化问题,它源于自然界中大象的畜牧行为。它已经成功应用于多级别阈值,支持向量机参数优化,调度问题等诸多问题。尽管 EHO 算法是一种较新的元启发式算法,但它有着结构简单、控制参数少以及易于和其它方法相结合等特点,能够很好的解决寻优问题。

1.算法原理

在自然界中,一个象群可分为几个氏族,每个氏族都有母象作为首领,在每一代中,一定数量的雄象会离开氏族。对于不同氏族的的大象在族长(氏族中位置最好的大象)的领导下生活,固定数量的雄象在长大后会离开它们所在的氏族,从而执行氏族更新操作来更新氏族中每个大象的位置,得到新的大象氏族位置,随后执行分类操作,进而优化氏族中位置较差的大象位置。

在基本的象群优化算法中氏族代表着局部搜索,离开氏族的雄象则执行全局搜索。在基本的 EHO 算法中,先进行更新操作决定算法的搜索方向和局部搜素详细程度,随后实现分离操作。这个过程包括两个阶段:氏族更新操作和分离操作。

1.1 氏族更新操作

来自不同群体的大象在族长的领导下一起生活。 女族长是氏族中适应度最好的大象。每个大象的位置都根据其位置和女族长的位置进行更新。 族长的位置根据氏族中心的位置进行更新。

随机初始化大象种群,将大象种群分为 n n n 个氏族,每个氏族中有 j j j 个大象个体,在每次迭代中,每个大象 j j j 的位置都会随氏族 c i c_i ci 中族长(适应度值最好的位置 x b e s t , c i x_{best,ci} xbest,ci,)移动:
x n e w , c i , j = x c i , j + α . ( x b e s t , c i − x c i , j ) . r (1) x_{new,ci,j} = x_{ci,j}+\alpha.(x_{best,ci}-x_{ci,j}).r \tag{1} xnew,ci,j=xci,j+α.(xbest,cixci,j).r(1)
式中: x n e w , c i , j x_{new,ci,j} xnew,ci,j,是更新后的位置, x c i , j x_{ci,j} xci,j,是上一代的位置, x b e s t , c i x_{best,ci} xbest,ci,是在氏族 c i c_i ci中适应度最好的位置, α ∈ [ 0 , 1 ] \alpha \in [0,1] α[0,1]代表氏族中位置最佳的女族长 x b e s t , c i x_{best,ci} xbest,ci,对大象个体 x c i , j x_{ci,j} xci,j的影响的比例因子, r ∈ [ 0 , 1 ] r \in [0,1] r[0,1]是算法后期用来提高种群多样性的随机数。

氏族 c i c_i ci中女族长的位置 x b e s t , c i x_{best,ci} xbest,ci,被定为:
x n e w , c i , j = β ∗ x c e n t e r , c i (2) x_{new,ci,j} = \beta*x_{center,ci} \tag{2} xnew,ci,j=βxcenter,ci(2)
式中: β ∈ [ 0 , 1 ] \beta \in [0,1] β[0,1] 代表第二个算法参数,它控制氏族中心 x c e n t e r , c i x_{center,ci} xcenter,ci的影响。氏族中心被定义为:
x c e n t e r , c i , d = ( ∑ j = 1 n c i x c i , j , d ) / n c i (3) x_{center,ci,d} = (\sum_{j=1}^{n_{ci}}x_{ci,j,d})/n_{ci} \tag{3} xcenter,ci,d=(j=1ncixci,j,d)/nci(3)
其中 1 ≤ d ≤ D 1\leq d \leq D 1dD代表第 d d d 维, D D D 是搜索空间的总维数, n c i n_{ci} nci 是氏族 c i c_i ci 中大象的数量。



1.2 氏族分离操作

雄性大象在长大后会离开他们的群体,以增加群体的全局搜索能力和密度。最坏的大象(适应度最差的大象)被删除,并在搜索空间进行随机搜索以增加搜索性能。

在每个氏族 c i c_i ci中,具有最差适应度函数值的恒定数量的大象会被移动到新的位置。它们的位置定义为:
x w o r s t , c i = x m i n + { x m a x − x m i n + 1 } ∗ r a n d (4) x_{worst,ci} = x_{min}+\{x_{max} - x_{min} + 1\}*rand \tag{4} xworst,ci=xmin+{ xmaxxmin+1}rand(4)
其中 x m i n x_{min} xmin x m a x x_{max} xmax分别表示搜索空间的下限和上限, r a n d ∈ [ 0 , 1 ] rand \in [0,1] rand[0,1]

EHO 算法的基本步骤如下:
Step1: 初始化种群、设置最大迭代次数。
Step2: 用适应度函数计算每个大象个体的适应度值,得到当前最优个体位置。
Step3: 根据公式(1)更新种群中每个大象个体的位置,使用公式(2)更新当前最优个体的位置。
Step4: 计算更新之后的每个大象个体的适应度值,评估种群,得到更新后的种群最优和最差的大象个体位置。
Step5: 使用公式(4)更新当前最差个体位置,保留更好的解。
Step6: 判断是否达到最大迭代次数,若是,则输出当前最优个体位置以及对应的适应度值,否则返回执行 Step2。





2.算法结果

在这里插入图片描述

3.参考文献

[1]张子建,王宏伟,周怀芳,尤森槟.基于多机制混合象群算法的混沌系统参数估计[J].微电子学与计算机,2020,37(06):40-45.

[1]曹倩倩. 象群优化算法的改进及其在网络入侵检测中的应用[D].湖北工业大学,2020.

4.Matlab代码

https://mianbaoduo.com/o/bread/aZeTlpY=


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部