智能优化算法:秃鹰搜索算法

智能优化算法:秃鹰搜索算法

@[toc]
摘要:秃鹰搜索 (bald eagle search,BES) 优化是马来西亚学者Alsattar 于2020年提出的一种新型元启发式算法, 该算法具有较强的全局搜索能力, 能够有效地解决各类复杂数值优化问题的优点。

1.算法原理

秃鹰遍布于北美洲地区, 飞行中视力敏锐, 观察能力优秀. 以捕食鲑鱼为例, 秃鹰首先会基于个体和种群到鲑鱼的浓度来选择搜索空间, 朝一个特定区域飞行; 其次在选定搜索空间内搜索水面, 直到发现合适的猎物; 最后秃鹰会逐渐改变飞行高度, 快速向下俯冲, 从水中成功捕获鲑鱼等猎物.

BES 算法以秃鹰捕食猎物的行为进行模拟, 将其分为选择搜索空间、搜索空间猎物和俯冲捕获猎物三个阶段, 数学模型如下所示:

1.1 选择搜索空间

秃鹰随机选择搜索区域, 通过判断猎物数目来确定最佳搜寻位置, 便于搜索猎物,该阶段秃鹰位置P_{i,new}更新由随机搜索的先验信息乘以\alpha来确定. 该行为数学模型描述为:
P_{i,new}=P_{best}+\alpha*r(P_{mean}-P_i)\tag{1}
式中:α 表示控制位置变化参数, 变化范围为 (1.5,2);r为 (0,1) 间随机数;P_{best} 为当前秃鹰搜索确定的最佳搜索位置;P_{mean} 为先前搜索结束后秃鹰的平均分布位置;P_i 为第i 只秃鹰位置.

1.2 搜索空间猎物 (探索)

秃鹰在选定搜索空间内以螺旋形状飞行搜索猎物, 加速搜索进程, 寻找最佳俯冲捕获位置. 螺旋飞行数学模型采用极坐标方程进行位置更新, 如下所示:
\theta(i) = a*\pi*rand \tag{2}

r(i)=\theta(i) + R*rand\tag{3}

xr(i)=r(i)*sin(\theta(i))\tag{4}

yr(i)=r(i)*cos(\theta(i))\tag{5}

x(i)=xr(i)/max(|xr|) \tag{6}

y(i)=yr(i)/max(|yr|)\tag{7}

其中:θ(i)r(i) 分别为螺旋方程的极角与极径;aR是控制螺旋轨迹的参数, 变化范围分别为 (0,5)、(0.5,2);rand 为 (0,1) 内随机数,x(i)y(i) 表示极坐标中秃鹰位置, 取值均为 (-1,1). 秃鹰位置更新如下:
P_{i,new}=P_i+x(i)*(P_i-P_{mean})+y(i)*(P_i-P_{i+1})\tag{8}

1.3 俯冲捕获猎物 (利用)

秃鹰从搜索空间的最佳位置快速俯冲飞向目标猎物, 种群其他个体也同时向最佳位置移动并攻击猎物, 运动状态仍用极坐标方程描述, 如下:

\theta(i) = a*\pi*rand \tag{9}

r(i)=\theta(i)\tag{10}

xr(i)=r(i)*sinh(\theta(i))\tag{11}

yr(i)=r(i)*cosh(\theta(i))\tag{12}

x1(i)=xr(i)/max(|xr|) \tag{13}

y1(i)=yr(i)/max(|yr|)\tag{14}

俯冲中秃鹰位置更新公式为:
\begin{cases}\delta_x = x1(i)*(P_i-c_1*P_{mean})\\ \delta_y = y1(i)*(P_i-c_2*P_{best}) \end{cases}\tag{15}

P_{i,new}=rand*P_{best}+\delta_x+\delta_y\tag{16}

式中:c_1c_2 表示秃鹰向最佳与中心位置的运动强度, 取值均为 (1,2).

算法流程:

step1:初始化秃鹰算法参数,初始化种群

step2:计算适应度值

step3:秃鹰选择搜索空间,利用式(1)更新位置

step4:秃鹰在搜索空间搜索猎物,利用式(6)更新位置

step5:秃鹰俯冲,利用式(16),更新位置

step6: 判断是否达到结束条件,如果达到则输出最优结果,否则重复步骤step2-step6.

2.实验结果

实验结果

3.参考文献

[1]Alsattar H A, Zaidan A A, Zaidan B B. Novel meta-heuristic bald eagle search optimisation algorithm[J]. Artificial Intelligence Review: An International Science and Engineering Journal, 2020,53(8): 2237-2264.

[1]贾鹤鸣,姜子超,李瑶.基于改进秃鹰搜索算法的同步优化特征选择[J/OL].控制与决策:1-9[2021-02-09].https://doi.org/10.13195/j.kzyjc.2020.1025.

4.Matlab代码

https://mianbaoduo.com/o/bread/YZeTlppt

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容