CEC2013(python):六种算法(ABC、PSO、CSO、OOA、DBO、RFO)求解CEC2013(python代码)

一、六种算法简介

1、人工蜂群算法 (Artificial Bee Colony Algorithm, ABC)

2、粒子群优化算法PSO

3、鸡群优化算法CSO

4、鱼鹰优化算法OOA

5、蜣螂优化算法DBO

6、红狐优化算法RFO

二、6种算法求解CEC2013

(1)CEC2013简介

参考文献:

1\] Liang J J , Qu B Y , Suganthan P N , et al. **Problem Definitions and Evaluation Criteria for the CEC 2013 Special Session on Real-Parameter Optimization**. 2013. #### (2)部分python代码 ``` from CEC2013.cec2013 import * import numpy as np from RFO import RFO from ABC import ABC from PSO import PSO from OOA import OOA from CSO import CSO from DBO import DBO import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #主程序 #主程序 function_name =1 #测试函数1-28 SearchAgents_no = 50#种群大小 Max_iter = 100#迭代次数 dim=10#维度 10/30/50/100 lb=-100*np.ones(dim)#下限 ub=100*np.ones(dim)#上限 cec_functions = cec2013(dim,function_name) fobj=cec_functions.func#目标函数 BestX1,BestF1,curve1 = ABC(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX2,BestF2,curve2 = PSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX3,BestF3,curve3 = OOA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX4,BestF4,curve4 = CSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX5,BestF5,curve5 = DBO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX6,BestF6,curve6 = DBO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 #画收敛曲线图 Labelstr=['ABC','PSO','OOA','CSO','DBO','RFO'] Colorstr=['r','g','b','k','c','m'] if BestF1>0:     plt.semilogy(curve1,color=Colorstr[0],linewidth=2,label=Labelstr[0])     plt.semilogy(curve2,color=Colorstr[1],linewidth=2,label=Labelstr[1])     plt.semilogy(curve3,color=Colorstr[2],linewidth=2,label=Labelstr[2])     plt.semilogy(curve4,color=Colorstr[3],linewidth=2,label=Labelstr[3])     plt.semilogy(curve5,color=Colorstr[4],linewidth=2,label=Labelstr[4])     plt.semilogy(curve6,color=Colorstr[5],linewidth=2,label=Labelstr[5]) else:     plt.plot(curve1,color=Colorstr[0],linewidth=2,label=Labelstr[0])     plt.plot(curve2,color=Colorstr[1],linewidth=2,label=Labelstr[1])     plt.plot(curve3,color=Colorstr[2],linewidth=2,label=Labelstr[2])     plt.plot(curve4,color=Colorstr[3],linewidth=2,label=Labelstr[3])     plt.plot(curve5,color=Colorstr[4],linewidth=2,label=Labelstr[4])     plt.plot(curve6,color=Colorstr[5],linewidth=2,label=Labelstr[5]) plt.xlabel("Iteration") plt.ylabel("Fitness") plt.xlim(0,Max_iter) plt.title("cec2013-F"+str(function_name)) plt.legend() plt.savefig(str(function_name)+'.png') plt.show() # ``` ![](https://file.jishuzhan.net/article/1738301943610085378/23046f3561fdaf8ab499dcb194e56d4b.webp) #### (3)部分结果 ![](https://file.jishuzhan.net/article/1738301943610085378/e987a3a5ecd9eb6b773a2f7016ea66b5.webp) ![](https://file.jishuzhan.net/article/1738301943610085378/f50ca994ec320d8b598f4e072202fb72.webp) ![](https://file.jishuzhan.net/article/1738301943610085378/48a988163e8cf28bd0ffea1a6fa97860.webp) ![](https://file.jishuzhan.net/article/1738301943610085378/aa36e41f092f87817e40d4fe192d6c79.webp) ![](https://file.jishuzhan.net/article/1738301943610085378/50525d72d752f623f16b25baa8ab0e65.webp) ![](https://file.jishuzhan.net/article/1738301943610085378/d60cd83a7f75b82c451d3b54ad8948dc.webp) ### 三、完整python代码

相关推荐
IVEN_1 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
AI软著研究员1 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish1 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
Ray Liang2 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
颜酱2 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
AI攻城狮3 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling3 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮6 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽6 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio