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()
#

(3)部分结果

三、完整python代码

相关推荐
千澜空15 分钟前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
斯凯利.瑞恩23 分钟前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
幸运超级加倍~37 分钟前
软件设计师-上午题-16 算法(4-5分)
笔记·算法
杨荧37 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
白子寰44 分钟前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
yannan2019031344 分钟前
【算法】(Python)动态规划
python·算法·动态规划
埃菲尔铁塔_CV算法1 小时前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR1 小时前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
linsa_pursuer1 小时前
快乐数算法
算法·leetcode·职场和发展
小芒果_011 小时前
P11229 [CSP-J 2024] 小木棍
c++·算法·信息学奥赛