智能优化算法:乌燕鸥优化算法-附代码
2019智能优化算法:乌燕鸥优化算法
文章目录
- 2019智能优化算法:乌燕鸥优化算法
- 1.算法原理
- 1.1 迁移行为(全局探索)
- 1.2 攻击行为(局部探索)
- 2.实验结果
- 3.参考文献
- 4.Matlab代码
- 5.python代码
摘要:乌燕鸥优化算法是由 G. Dhiman 和 A.Kaur于 2019 年针对工业工程问题提出的一种新的优化算法,其灵感来源于海鸟在自然界中觅食的行为,乌燕鸥是杂食性鸟类,以蚯蚓、昆虫、鱼等食物为生。这种算法具有很强的全局搜索能力,精度也较高。
1.算法原理
1.1 迁移行为(全局探索)
迁移行为,也就是探索部分,主要分为三个部分:冲突避免,聚集和更新。
(1)冲突避免:
cst=SA∗Pst(Z)(1)c_{st} = S_A*P_{st}(Z) \tag{1} cst=SA∗Pst(Z)(1)
其中, pstp_{st}pst表示乌燕鸥的当前位置,cstc_{st}cst表示的是在不与其他乌燕鸥碰撞的情况下应当处于的位置,SAS_ASA代表了一个避免碰撞的变量因素,用来计算避免碰撞后的位置,它的约束条件如公式(2)
SA=Cf−(Z∗(Cf/Maxiterations))(2)S_A=C_f-(Z*(C_f/Max_{iterations}))\tag{2} SA=Cf−(Z∗(Cf/Maxiterations))(2)
其中,CfC_fCf是用来调整SAS_ASA的控制变量,ZZZ表示当前迭代次数,因此SAS_ASA 从CfC_fCf到 0 线性递减。本文中CfC_fCf的值设置为 2,因此,SAS_ASA将从 2 到 0 逐渐减小。
(2)聚集
聚集是指在避免冲突的前提下向相邻乌燕鸥中最好的位置靠拢,也就是向最优解的位置靠拢,其数学表达式如下:
mst=CB∗(pbst(Z)−pst(Z))(3)m_{st}=C_{B}*(p_{bst}(Z)-p_{st}(Z))\tag{3} mst=CB∗(pbst(Z)−pst(Z))(3)
其中mstm_{st}mst表示在不同位置的pstp_{st}pst最优解的位置pbstp_{bst}pbst移动的过程,
则CBC_BCB是一个使探索更加全面的随机变量,按照以下公式变化:
CB=0.5∗Rrand(4)C_{B}=0.5*R_{rand}\tag{4} CB=0.5∗Rrand(4)
其中,RrandR_{rand}Rrand是 0 到 1 之间的随机数。
(3) 更新
更新是指在朝向最优解的位置更新轨迹,其轨迹dstd_{st}dst的数学表达式为:
dst=cst+mst(5)d_{st}=c_{st}+m_{st}\tag{5} dst=cst+mst(5)
1.2 攻击行为(局部探索)
在迁移过程中,乌燕鸥可以通过翅膀提高飞行高度也可以调整自身的速度和攻击角度,在攻击猎物的时候,它们在空中的盘旋
行为可定义为以下数学模型:
x′=R∗sin(i)(6)x'=R*sin(i) \tag{6} x′=R∗sin(i)(6)
y′=R∗cos(i)(7)y'=R*cos(i)\tag{7} y′=R∗cos(i)(7)
z′=R∗i(8)z' = R*i\tag{8} z′=R∗i(8)
R=uekv(9)R = ue^{kv}\tag{9} R=uekv(9)
其中,RRR表示每个螺旋的半径, iii 表示[0,2π][0,2\pi][0,2π]之间的变量。 uuu 和 vvv 是定义其螺旋形状的常数,在本文中均设定为 1, e 则是自然对数的基底。乌燕鸥的位置将按照下面的公式不断更新:
pst(Z)=(dst∗(x′+y′+z′))∗pbst(Z)(10)p_{st}(Z)=(d_{st}*(x'+y'+z'))*p_{bst}(Z) \tag{10} pst(Z)=(dst∗(x′+y′+z′))∗pbst(Z)(10)
算法流程:
Step1. 初始化算法参数,迭代次数,种群数量等等。
Step2.计算适应度值。
Step3.乌燕鸥进行迁移操作
Step4.乌燕鸥进行攻击操作
Step5.乌燕鸥更新位置
Step6.计算适应度值,并记录全局最优值
Step7.判断是否达到结束条件,如果没有则重复步骤Step2-Step7,否则输出最终结果。
2.实验结果
3.参考文献
[1] Dhiman G, Kaur A. STOA: A bio-inspired based optimization algorithm for industrial engineering problems. Engineering Applications of Artificial Intelligence, 2019, 82:148-174.
[1]贾鹤鸣,李瑶,孙康健.基于遗传乌燕鸥算法的同步优化特征选择[J/OL].自动化学报:1-18[2020-12-29].https://doi.org/10.16383/j.aas.c200322.
4.Matlab代码
5.python代码
上述代码见个人资料介绍
智能优化算法:乌燕鸥优化算法-附代码相关推荐
- 智能优化算法:闪电搜索算法-附代码
智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...
- 智能优化算法:布谷鸟搜索算法-附代码
智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...
- 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码
基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...
- 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码
基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...
- 相位 unwrap 与 wrap 算法详解(附代码)
相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...
- 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...
- 二分查找算法详解(附代码)
二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...
- 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...
- 麻雀优化算法_多种智能优化算法应用案例分享-附代码
1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客blog.csdn.net 2.智能优化算法 ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
最新文章
- 日记20190416
- f-BRS: Rethinking Backpropagating Refinement for Interactive Segmentation解析
- 域netbios名什么意思_域渗透(二):域环境搭建
- 残疾科学家_数据科学与残疾:通过创新加强护理
- ImageLoader实现图片异步加载
- mysql api 连接池_SpringBoot-整合HikariCP连接池
- 哥德巴赫猜想(升级版)(洛谷-P1579)
- Golang 并发编程之Context
- 本地开发时同时启动多个tomcat服务器
- linux top功能,[每日一题]说说Linux top命令的功能和用法
- 丢失所有凭据后如何重新连接到SQL Server实例
- 公钥与私钥,数字签名
- STC学习:485双机通信
- Remote使用出现的问题及解决办法
- win10计算机丢失msvcr,win10计算机丢失MSVCR120文件怎么办
- 苹果手机无线网显示无网络连接到服务器,iPhone提示:“无线局域网似乎未接入互联网”,咋回事?...
- 如何转换为YOLO txt格式
- TDM和STDM复用
- 在阿里云服务器中部署nodeBB项目(nodeBB系列一)
- Apache的管理及优化——中篇{Apache的访问控制(黑白名单,用户密码认证)、Apache的虚拟主机}
热门文章
- MySQL 各种变量
- 19. Treat class design as type design
- Hibernate框架 基础
- pandas之交叉表crosstab()
- 下载安装VS Code以及简单的配置使用
- cdr怎样把一张图片随意变形_如何设计一张趣味的海报?
- mybatis插入时间_深入分析MyBatis源码
- echarts 关系图 参数_Echarts关系图(使用重力图)
- T5: Text-To-Text Transfer Transformer
- table与tr td样式重叠 table样式边框变细