• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

互联网 diligentman 3天前 5次浏览

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

文章目录

  • 智能优化算法:象群算法-附代码
    • 1.算法原理
      • 1.1 氏族更新操作
      • 1.2 氏族分离操作
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码

摘要:象群优化算法(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

1leq 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)