COA|郊狼优化算法原理、改进与利用详解(MATALB/Python)

32 篇文章 4 订阅
13 篇文章 0 订阅

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

CEC2005中的测试(MATLAB/PYTHON)
在这里插入图片描述
在这里插入图片描述

本文KAU将介绍一个2018年在CEC会议中提出的优化算法——郊狼优化算法(Coyote Optimization Algorithm,COA)[1]
在这里插入图片描述

该算法由Juliano Pierezan等于2018年提出,COA的灵感来源于生活在北美的郊狼种群的社会行为,和其他优化器不同的是,郊狼优化算法并没有参考狼群的猎食行为,而是更注重种群的群体结构及对环境的适应和部落间的交流(与GWO着重于狼群的社会等级和捕猎不同),COA可总结为:

(1)郊狼种群的社会结构;

(2)优胜劣汰的进化机制;

(3)各狼群间学习交互行为。

COA算法结构独特,为优化的探索和开发提供了新的机制。算法性能上,与6个优化算法在40个基准函数的测试对比中,平均排名为第一。下面就和KAU一起学习COA算法原理,理解其独特之处,可能就会为算法的改进带来灵感。

在这里插入图片描述

图源文献[1]

00 目录

1 郊狼优化算法(COA)原理

2 代码目录

3 算法性能

4 源码获取

01 郊狼优化算法(COA)原理

COA通过模拟郊狼生活中成长、生死、迁徙的社会活动完成优化计算。

与其它启发式算法不同,在郊狼优化算法的种群初始化时,郊狼个体首先被分成固定的组群,郊狼个体在成长过程中受到郊狼所属组群中其他狼、组群的文化趋势和该郊狼原本的成长状态影响,产生的幼狼与组群中最老郊狼之间进行比较淘汰,在郊狼迁徙过程中,会存在一定的概率使得不同组群之间的郊狼进行互换。

1.1 郊狼种群初始化与随机分组

COA 算法中将郊狼种群分为Np个组,每个组内含有𝑁c只郊狼,则第p个组中第c个郊狼的第j维的初始化值的计算公式为:

在这里插入图片描述

则这个郊狼在当前代的适应能力可通过下式计算:

在这里插入图片描述

1.2 组内郊狼成长

每一只郊狼的成长受组内等级制度(δ1)和组内文化(δ2)的影响。其计算式如下:
在这里插入图片描述

其中,alpha_p为组群p内最优郊狼;soc_cr1和soc_cr2为组群p中随机选取的两个郊狼;而cult_p称为组群p的文化趋势,即COA 算法假定郊狼种群会有组织性地分享社会条件以连接种群之间的信息,此即文化趋势,其为组内适应度的平均值,计算式如下:

在这里插入图片描述

式中,O_p为组p中由小到大排序后的郊狼序列。

综上,组p中第c只郊狼成长后的新解new_soc及其适应度为:
在这里插入图片描述

在这里插入图片描述

组内一只郊狼成长后,对其社会适应能力进行评估,应用贪心策略,选择保留或淘汰成长后的郊狼。

在这里插入图片描述

1.3 组内郊狼的生死

出生和死亡是自然界中的普遍规律,郊狼模仿自然界中的生与死来进化子组。其中,产生新生郊狼的计算公式如下:

在这里插入图片描述

其中,pupj为新生郊狼的第j维变量;soc_f1和soc_f2是的组p内随机选取的两个父母郊狼;j1和j2为两个随机维度号;Rj为第j维度内的随机值;Ps和Pa分别为分散概率和关联概率,用来增加组内郊狼的文化多样性,其计算公式为:
在这里插入图片描述

郊狼组群中死亡的郊狼,一般是脆弱、刚出生的幼狼,或者是虚弱、年龄大的老狼。在 COA 中,幼狼出生后,将幼狼的社会条件与组群内其它郊狼进行比较,按如下规则决定组内郊狼的生存与死亡:

①组内所有郊狼都比新生郊狼强时,则新生郊狼死亡;

②组内存在郊狼比新生郊狼差时,这些郊狼中年龄最大的郊狼死亡;如果这些郊狼的年龄相同,最差的郊狼死亡,新生郊狼存活,并设新生郊狼的年龄为0。

1.4 郊狼迁徙

在一定的概率Pe下,郊狼被驱逐出原本所属的组群,加入到新的组群中,该过程利于组与组之间的信息共享。概率Pe计算式如下所示:
在这里插入图片描述

郊狼被驱逐和接纳操作完成后,所有郊狼年龄加1,一次迭代结束。

1.5 算法流程与改进&利用的思路

COA算法理论内容已讲解完毕,COA算法的流程如下:
在这里插入图片描述

个人觉得算法设计的挺有意思,这里对其利用和改进提供一点思路:

①COA中的组内郊狼成长中的等级制度(δ1)和组内文化(δ2)有较强的局部搜索能力,可以作为一种改进因子用在其他算法里;然而,该方法也是把双刃剑,其阻碍了组间的交流,易使COA、收敛慢并陷入局部最优中。

②郊狼的生死和迁移使得COA有一定跳出局部最优的能力,可以考虑作为一种变异手段引入其他算法中;同时,可以看出郊狼迁徙概率较低,这也不利于组间交流。

以上是个人对COA的初步思考。

02 代码目录

在这里插入图片描述

代码包括MATLAB和Python。考虑到很多同学获取代码后,MATLAB代码部分有乱码(MATLAB版本问题),有几个方法:

①可以将MATLAB版本改为2020及以上;

②将m文件用记事本打开,再将记事本中的代码复制到Matlab即可

代码来源于文献作者,KAU对其进行中文重注释,代码更清爽,可读性强。

如MATLAB:

在这里插入图片描述

Python

在这里插入图片描述

03 算法性能

采用标准测试函数初步检验其寻优性能

在MATLAB中,进行标准函数的测试,执行程序结果如下:
在这里插入图片描述

在Python中

在这里插入图片描述

04 源码获取

在公众号后台回复 COA1

同时,郊狼优化算法COA的改进LRFDB-COA也是CEC竞赛的冠军算法,后面有时间KAU可以讲讲LRFDB-COA算法的改进思路,为各位进行算法改进也提供些许灵感

参考文献

[1] Pierezan J, Dos Santos Coelho L. Coyote optimization algorithm: a new metaheuristic for global optimization problems[C]//2018 IEEE Congress on Evolutionary Computation(CEC), Rio de Janeiro, Brazil, 2018, DOI: 10.1109/CEC.2018.8477769 .

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
豪猪算法优化最小二乘支持向量机COA-LSSVM是一种用于电需求预测的算法。它结合了最小二乘支持向量机(LSSVM)和豪猪算法进行模型的优化。 最小二乘支持向量机(LSSVM)是一种机器学习算法,用于回归和分类问题。它通过构建一个非线性映射函数将输入数据映射到高维空间,然后在高维空间中找到一个最优超平面,使得样本点到该超平面的距离最小化。 豪猪算法是一种基于自然界中豪猪觅食行为的优化算法。它模拟了豪猪在觅食过程中的个体行为和群体协作,通过迭代搜索来寻找最优解。 COA-LSSVM算法将豪猪算法应用于LSSVM模型的优化过程中。它通过豪猪算法来调整LSSVM模型中的参数,以提高电需求预测的准确性和泛化能力。 具体而言,COA-LSSVM算法原理如下: 1. 初始化豪猪种群,并计算每个豪猪的适应度值。 2. 根据适应度值选择豪猪个体,进行觅食行为模拟。觅食行为包括搜索和追踪两个阶段。 3. 在搜索阶段,豪猪个体通过随机选择搜索方向和距离来寻找新的解。 4. 在追踪阶段,豪猪个体通过观察周围豪猪的位置和适应度值来调整自己的位置。 5. 更新豪猪种群,并计算每个豪猪的适应度值。 6. 重复步骤2-5,直到满足停止条件(如达到最大迭代次数或适应度值收敛)。 7. 根据最优解得到的参数,构建LSSVM模型,并用于电需求预测。 通过COA-LSSVM算法优化,可以提高电需求预测模型的准确性和泛化能力,从而更好地满足实际需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值