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

相关推荐
xrgs_shz7 分钟前
MATLAB的数据类型和各类数据类型转化示例
开发语言·数据结构·matlab
独正己身7 分钟前
代码随想录day4
数据结构·c++·算法
小王子10243 小时前
设计模式Python版 组合模式
python·设计模式·组合模式
利刃大大3 小时前
【回溯+剪枝】找出所有子集的异或总和再求和 && 全排列Ⅱ
c++·算法·深度优先·剪枝
来恩10033 小时前
C# 类与对象详解
开发语言·c#
komo莫莫da4 小时前
寒假刷题Day19
java·开发语言
Rachela_z4 小时前
代码随想录算法训练营第十四天| 二叉树2
数据结构·算法
细嗅蔷薇@4 小时前
迪杰斯特拉(Dijkstra)算法
数据结构·算法
追求源于热爱!4 小时前
记5(一元逻辑回归+线性分类器+多元逻辑回归
算法·机器学习·逻辑回归
ElseWhereR4 小时前
C++ 写一个简单的加减法计算器
开发语言·c++·算法