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

相关推荐
ゞ 正在缓冲99%…1 分钟前
leetcode375.猜数字大小II
数据结构·算法·leetcode·动态规划
Greedy Alg5 分钟前
LeetCode 79. 单词搜索
算法
梵得儿SHI8 分钟前
Java IO 流深度解析:对象流与序列化机制(ObjectInputStream/ObjectOutputStream)
java·开发语言·rpc·序列化·对象流·对象与字节流的转换·java对象流
想不明白的过度思考者9 分钟前
Rust——Tokio的多线程调度器架构:深入异步运行时的核心机制
开发语言·架构·rust·多线程
百炼成神 LV@菜哥10 分钟前
记类成员变量 vs 方法中的变量
java·开发语言
新子y11 分钟前
【小白笔记】 while 与 for + break 的比较分析
笔记·python
碧海银沙音频科技研究院16 分钟前
i2s的LRCK时钟有毛刺以及BCLK数据在高采样率有变形数据解析错误问题原因以及解决方法
人工智能·深度学习·算法·分类·音视频
贝西奇谈17 分钟前
JavaScript DOM节点操作详解
开发语言·javascript·php
学习编程的Kitty24 分钟前
JavaEE初阶——多线程(4)线程安全
java·开发语言·jvm
刚子编程29 分钟前
ASP.NET Core Blazor 核心功能一:Blazor依赖注入与状态管理指南
开发语言·.netcore·blazor