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代码

相关推荐
努力长头发的程序猿24 分钟前
Unity2D当中的A*寻路算法
算法·unity·c#
23471021271 小时前
4.18 学习笔记
软件测试·笔记·python·学习
Raink老师1 小时前
用100道题拿下你的算法面试(矩阵篇-2):求转置矩阵
算法·面试·矩阵
zhangjw344 小时前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
算法鑫探8 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
yaoxin5211238 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
Greyson18 小时前
Layui表格如何使用第三方插件实现树形展示.txt
jvm·数据库·python
WBluuue8 小时前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
2401_871696528 小时前
mysql行级锁失效的原因排查_检查查询条件与执行计划
jvm·数据库·python