ainatipen 发表于 2022-8-4 13:48

白鹭群优化算法(Egret Swarm Optimization Algorithm)

欢迎加入一同交流,QQ群:916165264
白鹭群优化算法(Egret Swarm Optimization Algorithm)是一种结合了雪白鹭(坐等策略,Sit-And-Wait Strategy)和大白鹭(激进策略,Aggressive Strategy)捕食行为的启发式算法。
生物启发

在鹭科生物中,雪白鹭(Snowy Egret)和大白鹭(Great Egret)是两类在捕食行为上差异比较大的物种。雪白鹭采用的是能耗最低的坐等策略:站立不动,耐心等待,静静观察猎物的行踪,直到猎物出现便飞快地用鸟喙攫食。采用坐等策略的雪白鹭往往能够以很低的能量消耗,获取较为稳定的收益。而大白鹭则采取激进策略,一旦发现了猎物后,就会一直追赶,直到捕获。激进策略虽然能量消耗大,但是也使得大白鹭有可能获得更高的收益。受到雪白鹭和大白鹭捕食行为的启发,提出了融合两者优势特性的白鹭群优化算法。
算法描述




白鹭群优化算法整体框架

白鹭群优化算法由三个主要部分组成:坐等策略、激进策略和判别条件。每个白鹭群可以由 n 支白鹭小队组成,每支白鹭小队又包含三只白鹭,其中白鹭A实行坐等策略,白鹭B和白鹭C分别采用激进策略中的随机游走和包围机制。
坐等策略(白鹭A)

第i个白鹭A的观测方程可以描述为 \hat{y}_i = A(\mathbf{x}_i) ,每次迭代获取到的真实适应度 y_i ,可以求得观测方程中权重的伪梯度 \mathbf{g}_i ,于是白鹭A的更新位置表示如下,
\mathbf{x}_{a,i} = \mathbf{x}_i + \exp({-t/(0.1\cdot t_{max})}) \cdot 0.1 \cdot hop \cdot \mathbf{g}_i
其中 t 为当前迭代次数, t_{max} 为最大迭代次数, hop 为自变量的可行域范围。
激进策略(白鹭B、白鹭C)

白鹭B为随机游走,更新位置的方式如下,
\mathbf{x}_{b,i} = \mathbf{x}_{i} + \tan{(\mathbf{r}_{b,i})}\cdot hop/(1+t)
r_{b,i} 是 (-\pi/2, \pi/2) 之间的随机数。
白鹭C为包围策略,更新位置的方式如下,
\begin{aligned}                 \mathbf{D}_{h} &= \mathbf{x}_{ibest} -\mathbf{x}_{i},\\                 \mathbf{D}_g &= \mathbf{x}_{gbest} -\mathbf{x}_{i},\\                 \mathbf{x}_{c,i} &= (1-\mathbf{r}_i-\mathbf{r}_g)\cdot\mathbf{x}_{i} +\mathbf{r}_h\cdot\mathbf{D}_h + \mathbf{r}_g\cdot\mathbf{D}_g,         \end{aligned}
其中 \mathbf{x}_{ibest} 和\mathbf{x}_{gbest} 分别为白鹭小队最优值和白鹭种群最优值,\mathbf{r}_h 和\mathbf{r}_g 都是 之间的随机数。
判别条件

白鹭小队的每只白鹭计算出更新的位置后,会共同决定白鹭小队的更新位置,形式如下,
\mathbf{x}_{s,i} = \left [ \mathbf{x}_{a,i} \qquad \mathbf{x}_{b,i} \qquad \mathbf{x}_{c,i} \right ]
\mathbf{y}_{s,i} = \left [ y_{a,i} \qquad y_{b,i} \qquad y_{c,i} \right ]
c_{i} = argmin(\mathbf{y}_{s,i})
\mathbf{x}_{i} = \begin{cases}                 \mathbf{x}_{s,i}|_{c_{i}} \quad if \quad \mathbf{y}_{s,i}|_{c_{i}} < y_{i} \quad or \quad r<0.3, \\                 \mathbf{x}_{i}\quad\quad\ \ else         \end{cases}
白鹭小队将三只白鹭更新的位置及适应度与上一次迭代的适应度比较,如果有一只白鹭的更新位置要优于上一次迭代的位置,则采纳更新;若每一只白鹭的更新位置都要比上一回差,则有30%的概率采纳更新位置最优的方案。
实验效果

为验证算法的有效性,使用了如下三个典型测试函数进行了验证,并且与5个state-of-the-art的优化算法进行了比较。



Sphere 测试函数(30维)



Schwefel's Problem 2.21(30维)



Quartic Function i.e(30维)

程序代码

参考文献

Egret Swarm Optimization Algorithm: An Evolutionary Computation Approach for Model Free Optimization, arXiv, Egret Swarm Optimization Algorithm: An Evolutionary Computation Approach for Model Free Optimization.

DungDaj 发表于 2022-8-4 13:57

[调皮][调皮][调皮]动物园里有多了一只

maltadirk 发表于 2022-8-4 14:06

哈哈,看看这只动物有什么不一样
页: [1]
查看完整版本: 白鹭群优化算法(Egret Swarm Optimization Algorithm)