智能优化算法:黑猩猩优化算法-附代码
智能优化算法:黑猩猩优化算法-附代码
文章目录
- 智能优化算法:黑猩猩优化算法-附代码
- 1.算法原理
- 1.1 驱赶和追逐猎物
- 1.2 攻击方式
- 1.3 攻击和寻找猎物
- 2.算法结果
- 3.参考文献
- 4.Matlab代码
摘要:黑猩猩优化算法(ChOA) 是 M. Khishe 等人于2020 年根据黑猩猩群体狩猎行为提出的一种新型元启发式优化算法。具有收敛速度快,精度高等特点。
1.算法原理
ChOA 通过模拟攻击黑猩猩、驱赶黑猩猩、拦截黑猩猩和追逐黑猩猩 4 类黑猩猩协同狩
猎行为来达到求解问题的目的。
1.1 驱赶和追逐猎物
在黑猩猩狩猎过程中,通常根据黑猩猩个体智力和性动机来分配狩猎职责。任
何黑猩猩均可随机改变其在猎物周围空间中的位置,数学描述为:
d=∣cXprey(t)−mXchimp(t)∣(1)d=|cX_{prey}(t)-mX_{chimp}(t)| \tag{1} d=∣cXprey(t)−mXchimp(t)∣(1)
Xchimp(t+1)=Xprey(t)−ad(2)X_{chimp}(t+1)=X_{prey}(t)-ad\tag{2} Xchimp(t+1)=Xprey(t)−ad(2)
式中:ddd为黑猩猩与猎物间距; ttt为当前迭代次数;Xprey(t)X_{prey}(t)Xprey(t)为猎物位置向量; Xchimp(t)X_{chimp}(t)Xchimp(t)为黑猩猩位置向量; a、m、ca、m、ca、m、c为系数向量,a=2fr1−fa = 2fr_1-fa=2fr1−f,c=2r2c = 2r_2c=2r2 ,$m=Chaotic_value (基于混沌映射的混沌向量),(基于混沌映射的混沌向量),(基于混沌映射的混沌向量),f$ 为迭代过程中从2非线性降至0,r1,r2r_1,r_2r1,r2为[0,1]范围内的随机向量。
1.2 攻击方式
黑猩猩能够探查猎物位置(通过驱赶、拦截和追逐),然后包围猎物。狩猎过程通常由
攻击黑猩猩进行,驱赶黑猩猩、拦截黑猩猩和追逐黑猩猩参与狩猎过程。4 类黑猩猩通过下式更新其位置,其他黑猩猩根据最佳黑猩猩位置更新其位置,猎物位置由最佳黑猩猩个体位置估计。数学描述为:
{dAttacker=∣c1XAttacter−m1X∣dBarrier=∣c2XBarrier−m2X∣dChaser=∣c3XChaser−m3X∣dDriver=∣c4XDriver−m4X∣(3)\begin{cases}d_{Attacker}=|c_1X_{Attacter}-m_1X|\\ d_{Barrier}=|c_2X_{Barrier}-m_2X|\\ d_{Chaser}=|c_3X_{Chaser}-m_3X|\\ d_{Driver}=|c_4X_{Driver}-m_4X|\end{cases}\tag{3} ⎩⎪⎪⎪⎨⎪⎪⎪⎧dAttacker=∣c1XAttacter−m1X∣dBarrier=∣c2XBarrier−m2X∣dChaser=∣c3XChaser−m3X∣dDriver=∣c4XDriver−m4X∣(3)
{X1=XAttacter−a1dAttackerX2=XBarrier−a2dBarrierX3=XChaser−a3dChaserX4=XDriver−a4dDriver(4)\begin{cases}X_1=X_{Attacter}-a_1d_{Attacker}\\ X_2=X_{Barrier}-a_2d_{Barrier}\\ X_3=X_{Chaser}-a_3d_{Chaser}\\ X_4 =X_{Driver}-a_4d_{Driver} \end{cases}\tag{4} ⎩⎪⎪⎪⎨⎪⎪⎪⎧X1=XAttacter−a1dAttackerX2=XBarrier−a2dBarrierX3=XChaser−a3dChaserX4=XDriver−a4dDriver(4)
X(t+1)=X1+X2+X3+X44(5)X(t+1)=\frac{X_1+X_2+X_3+X_4}{4}\tag{5} X(t+1)=4X1+X2+X3+X4(5)
式中: dAttacker、dBarrier、dChaser、dDriverd_{Attacker} 、d_{Barrier} 、d_{Chaser} 、d_{Driver}dAttacker、dBarrier、dChaser、dDriver 分别为当前攻击黑猩猩、拦截黑猩猩、追逐黑猩猩、驱赶黑猩猩与猎物的间距; xAttacker、xBarrier、xChaser、xDriverx_{Attacker} 、x_{Barrier} 、x_{Chaser} 、x_{Driver}xAttacker、xBarrier、xChaser、xDriver 分别为攻击黑猩猩、拦截黑猩猩、追逐黑猩猩、驱赶黑猩猩相对于猎物的位置向量; a1~a4、m1~m4、c1~c4a_1 ~ a_4 、m_1 ~ m_4 、c_1~ c_4a1~a4、m1~m4、c1~c4 分别为攻击黑猩猩、拦截黑猩猩、追逐黑猩猩、驱赶黑猩猩系数向量;$ X_1 、X_2 、X_3 、X_4 $分别为攻击黑猩猩、拦截黑猩猩、追逐黑猩猩和驱赶黑猩猩位置更新向量; XXX为其他黑猩猩位置向量。
1.3 攻击和寻找猎物
在狩猎最后阶段,一方面黑猩猩根据攻击者、驱赶者、拦截者和追逐者位置更新位置,并攻击猎物;另一方面黑猩猩通过分散寻找猎物显示探查过程,即 ChOA 全局搜索。
2.算法结果
3.参考文献
[1]Khishe M., ,and Mosavi M.R…“Chimp Optimization Algorithm.” Expert Systems with Applications .prepublish(2020): doi:10.1016/j.eswa.2020.113338.
[1]程国森,崔东文.黑猩猩优化算法-极限学习机模型在富水性分级判定中的应用[J].人民黄河,2021,43(07):62-66+103.
4.Matlab代码
改进算法matlab代码
名称 | 说明或者参考文献 |
---|---|
多策略黑猩猩优化算法 | [1]黄倩,刘升,李萌萌,郭雨鑫.多策略黑猩猩优化算法研究及其工程应用[J/OL].计算机工程与应用:1-12[2021-10-25].http://kns.cnki.net/kcms/detail/11.2127.TP.20210806.1055.011.html. |
智能优化算法:黑猩猩优化算法-附代码相关推荐
- 智能优化算法:闪电搜索算法-附代码
智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 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 ...
最新文章
- 【Socket研究】~。~ Scoket开发蛋疼笔记 Silverlight
- day34 异常处理、断言、socket之ftp协议
- c语言如何跟进自定义赋值,用最简单的C语言编写自定义函数之数字后移
- ECMAScript6 新特性——“字符串的扩展”
- html百度蜘蛛跳转代码,php搜索引擎劫持,百度蜘蛛劫持,搜索引擎蜘蛛劫持原理及代码分享...
- Java初学者的学习思路与建议
- ios开发之plist 的文件的读写以及沙盒容器路径打印
- 最简单的 post 请求发起方式、调用其它系统接口
- LeetCode 1236. 网络爬虫(BFS/DFS)
- mysql视图存储_Mysql 视图、存储过程以及权限控制
- javax.crypto.IllegalBlockSizeException: Input length not multiple of 8 bytes
- Delphi应用程序的调试(三)监视变量
- 将python中的小数直接进位的函数_python保留小数位的三种实现方法
- [BZOJ4521][Cqoi2016]手机号码 (数位dp)
- Qt下PDF阅读器的开发
- ZZULIOJ-1047,对数表(Python)
- AI资源对接需求汇总: 第4期
- 移动互联网时代的 Google,战略指向笔记本
- 【Linux】FirefoxBrowser 火狐浏览器安装 FlashPlayer 插件
- python中求和符号怎么打_参数siz向量的python符号求和与微分
热门文章
- 08. 切勿创建包含auto_ptr的容器
- zookeeper 进入客户端_探究—Zookeeper的启动过程
- python中正则表达式的用法_详解Python中的正则表达式的用法
- java实现电子面单pdf生成_福利!使用Aspose.Words在Java中将Word格式转换为PDF完整指南...
- hbase动态更改行键设计_nosql – HBase行键设计,用于单调递增键
- C语言获取linux接口状态,[linux] C语言Linux系统编程-TCP通信的11种状态
- Java编程:弗洛伊德算法(无向图所有顶点最小路径)
- SLAM_SLAM中一般是如何求解相机的运动的?
- 论文评析-Incremental Boosting Convolutional Neural Network for Facial Action Unit Recognition,NIPS, 2016
- opencv中的图像拼接