智能优化算法:秃鹰搜索算法 -附代码
智能优化算法:秃鹰搜索算法
文章目录
- 智能优化算法:秃鹰搜索算法
- 1.算法原理
- 1.1 选择搜索空间
- 1.2 搜索空间猎物 (探索)
- 1.3 俯冲捕获猎物 (利用)
- 2.实验结果
- 3.参考文献
- 4.Matlab代码
摘要:秃鹰搜索 (bald eagle search,BES) 优化是马来西亚学者Alsattar 于2020年提出的一种新型元启发式算法, 该算法具有较强的全局搜索能力, 能够有效地解决各类复杂数值优化问题的优点。
1.算法原理
秃鹰遍布于北美洲地区, 飞行中视力敏锐, 观察能力优秀. 以捕食鲑鱼为例, 秃鹰首先会基于个体和种群到鲑鱼的浓度来选择搜索空间, 朝一个特定区域飞行; 其次在选定搜索空间内搜索水面, 直到发现合适的猎物; 最后秃鹰会逐渐改变飞行高度, 快速向下俯冲, 从水中成功捕获鲑鱼等猎物.
BES 算法以秃鹰捕食猎物的行为进行模拟, 将其分为选择搜索空间、搜索空间猎物和俯冲捕获猎物三个阶段, 数学模型如下所示:
1.1 选择搜索空间
秃鹰随机选择搜索区域, 通过判断猎物数目来确定最佳搜寻位置, 便于搜索猎物,该阶段秃鹰位置Pi,newP_{i,new}Pi,new更新由随机搜索的先验信息乘以α\alphaα来确定. 该行为数学模型描述为:
Pi,new=Pbest+α∗r(Pmean−Pi)(1)P_{i,new}=P_{best}+\alpha*r(P_{mean}-P_i)\tag{1} Pi,new=Pbest+α∗r(Pmean−Pi)(1)
式中:ααα 表示控制位置变化参数, 变化范围为 (1.5,2);rrr为 (0,1) 间随机数;PbestP_{best}Pbest 为当前秃鹰搜索确定的最佳搜索位置;PmeanP_{mean}Pmean 为先前搜索结束后秃鹰的平均分布位置;PiP_iPi 为第iii 只秃鹰位置.
1.2 搜索空间猎物 (探索)
秃鹰在选定搜索空间内以螺旋形状飞行搜索猎物, 加速搜索进程, 寻找最佳俯冲捕获位置. 螺旋飞行数学模型采用极坐标方程进行位置更新, 如下所示:
θ(i)=a∗π∗rand(2)\theta(i) = a*\pi*rand \tag{2} θ(i)=a∗π∗rand(2)
r(i)=θ(i)+R∗rand(3)r(i)=\theta(i) + R*rand\tag{3} r(i)=θ(i)+R∗rand(3)
xr(i)=r(i)∗sin(θ(i))(4)xr(i)=r(i)*sin(\theta(i))\tag{4} xr(i)=r(i)∗sin(θ(i))(4)
yr(i)=r(i)∗cos(θ(i))(5)yr(i)=r(i)*cos(\theta(i))\tag{5} yr(i)=r(i)∗cos(θ(i))(5)
x(i)=xr(i)/max(∣xr∣)(6)x(i)=xr(i)/max(|xr|) \tag{6} x(i)=xr(i)/max(∣xr∣)(6)
y(i)=yr(i)/max(∣yr∣)(7)y(i)=yr(i)/max(|yr|)\tag{7} y(i)=yr(i)/max(∣yr∣)(7)
其中:θ(i)θ(i)θ(i) 与 r(i)r(i)r(i) 分别为螺旋方程的极角与极径;aaa 与RRR是控制螺旋轨迹的参数, 变化范围分别为 (0,5)、(0.5,2);randrandrand 为 (0,1) 内随机数,x(i)x(i)x(i) 与 y(i)y(i)y(i) 表示极坐标中秃鹰位置, 取值均为 (-1,1). 秃鹰位置更新如下:
Pi,new=Pi+x(i)∗(Pi−Pmean)+y(i)∗(Pi−Pi+1)(8)P_{i,new}=P_i+x(i)*(P_i-P_{mean})+y(i)*(P_i-P_{i+1})\tag{8} Pi,new=Pi+x(i)∗(Pi−Pmean)+y(i)∗(Pi−Pi+1)(8)
1.3 俯冲捕获猎物 (利用)
秃鹰从搜索空间的最佳位置快速俯冲飞向目标猎物, 种群其他个体也同时向最佳位置移动并攻击猎物, 运动状态仍用极坐标方程描述, 如下:
θ(i)=a∗π∗rand(9)\theta(i) = a*\pi*rand \tag{9} θ(i)=a∗π∗rand(9)
r(i)=θ(i)(10)r(i)=\theta(i)\tag{10} r(i)=θ(i)(10)
xr(i)=r(i)∗sinh(θ(i))(11)xr(i)=r(i)*sinh(\theta(i))\tag{11} xr(i)=r(i)∗sinh(θ(i))(11)
yr(i)=r(i)∗cosh(θ(i))(12)yr(i)=r(i)*cosh(\theta(i))\tag{12} yr(i)=r(i)∗cosh(θ(i))(12)
x1(i)=xr(i)/max(∣xr∣)(13)x1(i)=xr(i)/max(|xr|) \tag{13} x1(i)=xr(i)/max(∣xr∣)(13)
y1(i)=yr(i)/max(∣yr∣)(14)y1(i)=yr(i)/max(|yr|)\tag{14} y1(i)=yr(i)/max(∣yr∣)(14)
俯冲中秃鹰位置更新公式为:
{δx=x1(i)∗(Pi−c1∗Pmean)δy=y1(i)∗(Pi−c2∗Pbest)(15)\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} {δx=x1(i)∗(Pi−c1∗Pmean)δy=y1(i)∗(Pi−c2∗Pbest)(15)
Pi,new=rand∗Pbest+δx+δy(16)P_{i,new}=rand*P_{best}+\delta_x+\delta_y\tag{16} Pi,new=rand∗Pbest+δx+δy(16)
式中:c1c_1c1 与 c2c_2c2 表示秃鹰向最佳与中心位置的运动强度, 取值均为 (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代码
改进算法matlab代码
名称 | 说明或者参考文献 |
---|---|
基于levy飞行和模拟退火改进的秃鹰算法(IBES) | [1]贾鹤鸣,姜子超,李瑶.基于改进秃鹰搜索算法的同步优化特征选择[J/OL].控制与决策:1-9[2021-11-10].https://doi.org/10.13195/j.kzyjc.2020.1025. |
个人资料介绍
智能优化算法:秃鹰搜索算法 -附代码相关推荐
- 【9种优化算法比较】CGO、SCA、GWO、CSA、SSA、HHO、WOA、PSO、TSO智能优化算法比较(Matlab代码实现)
- 《Python智能优化算法:从原理到代码实现与应用》出版啦
<Python智能优化算法:从原理到代码实现与应用> 各位亲爱的小伙伴,让各位久等了.我们撰写的<Python智能优化算法:从原理到代码实现与应用>由电子工业出版社出版了. 本 ...
- 浣熊优化算法(COA)(含MATLAB代码)
先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论.我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出 ...
- 智能优化算法:闪电搜索算法-附代码
智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...
- 智能优化算法:布谷鸟搜索算法-附代码
智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
- 智能优化算法:爬行动物搜索算法-附代码
智能优化算法:爬行动物搜索算法 文章目录 智能优化算法:爬行动物搜索算法 1.算法原理 1.1 初始化 1.2 包围阶段(探索) 1.3 狩猎阶段(开发) 2.实验结果 3.参考文献 4.Matlab ...
- 麻雀优化算法_多种智能优化算法应用案例分享-附代码
1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客blog.csdn.net 2.智能优化算法 ...
- gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码
智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 文章目录智能优化算法应用:基于GWO优 ...
- 【智能优化算法】基于全局优化的改进鸡群算法求解单目标优化问题(ECSO)附matlab代码
1 简介 智能算法分为两种,一种是群体智能算法(swarmintelligencealgorithm),该算法大多模拟自然界中动植物的特有行为,并将其表达成数学语言,从而进行迭代寻优,如模拟蝙蝠回声定 ...
最新文章
- 大学计算机课程改革项目,大学计算机课程改革.ppt
- Sping WebSocket SockJS使用
- MySQL 5.6 手册 第三章 目录
- 前端那么多框架,我们到底学哪一个
- php接口数据安全解决方案(一)
- boost::log模块测量日志记录发射的性能
- ROS学习之日志消息
- Android之Lollipop DevicePolicyManager学习(下)
- Java远程通讯技术及原理分析
- JVM思维导图、正则表达式符号图、企业内部开发流程图
- 前端开发 简单表格的编写练习 0228
- 河南理工大学计算机学院课表,河南理工大学实验课课程表.doc
- Axure 8 Tab制作
- 【Java从0到架构师】Filter_Listener_AJAX
- 字节流Stream(Output 、Input)、字符流(Reader、Writer)
- hwclock(Linux)
- Git通过SSH拉取报错kex_exchange_identification
- 计算机组成中位、字节、字、字长、存储单元、存储字、存储字的辨析
- Mtk Camera中Hal1/Hal3的Picture size和Preview size配置
- 【2016——-编程语言排行以及优缺点分析】