首页 > 编程语言 >CEC2013(python):六种算法(ABC、PSO、CSO、OOA、DBO、RFO)求解CEC2013

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

时间:2024-06-12 22:00:04浏览次数:11  
标签:CSO plt color Colorstr CEC2013 label ABC linewidth Labelstr

一、六种算法简介

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

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

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

标签:CSO,plt,color,Colorstr,CEC2013,label,ABC,linewidth,Labelstr
From: https://blog.csdn.net/midncw/article/details/139637677

相关文章

  • ABC 320F Fuel Round Trip
    题意在坐标轴上给定N个点,坐标依次为x1,x2,...,xn,你需要从原点前往xn并且实现往返,其中从第一个点到第N-1个点上有加油站,其中第i个加油站可以花费p[i]购买f[i]升汽油,汽油的上限为H升,每行驶一单位距离需要花费一升汽油。在全部过程中每个加油站最多使用一次,判断是否可以完成行程并......
  • 「杂题乱刷」AT_abc154_e
    代码恢复训练2024.6.10.(补)链接(luogu)链接(atcoder)数位dp板子题。dfs(last,sum,_1)剩下未搜的数位数,当前非零数位数,目前是否取满。这里采用记搜的写法。点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换......
  • 「杂题乱刷」AT_abc132_e
    代码恢复训练2024.6.11.链接(luogu)链接(atcoder)分层图板子。结束。代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?打cf不要用umap!!!记住,rating是身外之物。该冲正解时冲正解!Problem:算......
  • 由AtCoder_ABC357D引发的除法同余学习
    鉴于最近的Atcoder周赛又出现除法求余,下定决心学习逆元相关内容同余概述定义同余定义:若a和b是整数,且m|(a-b),则称a和b模m同余。即两者除以m得到的余数相同。剩余系:一个模m完全剩余系是一个整数集合,任何一个整数恰好与该集合中的一个元素模m同余。例如0,1,...,m-1的集......
  • [ABC311G] One More Grid Task
    [ABC311G]OneMoreGridTask题目信息题面翻译给你一个\(n\timesm\)的矩阵\(a\),求:\[\max_{1\leql_1\leqr_1\leqn,1\leql_2\leqr_2\leqm}(\sum_{l_1\leqi\leqr_1,l_2\leqj\leqr_2}a_{i,j}\times\min_{l_1\leqi\leqr_1,l_2\leqj\leqr_2}a_{i......
  • ABC 315F Shortcuts
    题意有N个点,你从第一个点出发,要按顺序经过所有的点,最终抵达第N个点。在这个过程中你可以跳过一些点,但如果你跳过了C个点,那么你必须要接受pow(2,C-1)的惩罚。设s为你走过的距离加上你的惩罚,请求出最小化s。题解显然考虑dp,设计dp[i][j]为到达第i个点,中途跳过了j个点需要的路程。......
  • 低代码平台Crabc 企业版 2.3.0 发布
    介绍crabc-cloud 是低代码接口开发平台,企业级API管理系统,深度整合SpringCloud和Mybatis实现动态数据源和动态SQL。支持接入(mysql、oracle、postgresql、sqlserver、达梦、TiDB、es)等SQL或/NoSQL数据源,在编辑框内编写好SQL后即可快速生成Rest接口对外提供服......
  • abc--cf训练日常总结
    ABC最近遇到好多思维和位运算的题目不会做,特地过来总结一些小小的知识点。思维题目https://atcoder.jp/contests/abc353/tasks/abc353_c这道题目要求我们计算连续的两个相邻的数组元素之和。我一开始用暴力,后面换了种错误的思路就wa了。其实这道题目是求和,然后找到和大于1e8......
  • 「杂题乱刷」AT_abc357_f
    代码恢复训练2024.6.8.题目链接链接(atcoder)链接(luogu)解题思路数据结构板子题。设\(ans_i=a_i\timesb_i\)(\(a_i\)和\(b_i\)是此时的\(a_i,b_i\))。设\(f1(i,j)\)表示\(a_i+a_{i+1}+a_{i+2}+\dots+a_j\)的值。设\(f2(i,j)\)表示\(b_i+b_{i+......
  • ATcoder ABC 351 补题记录(A~F)
    A按照顺序直接模拟即可。#pragmaGCCoptimize(3)#include<bits/stdc++.h>#defineintlonglong#definepbpush_back#defineememplace_back#defineF(i,x,y)for(inti=x;i<=y;i++)#defineG(i,x,y)for(inti=x;i>=y;i--)#defineW(G,i,x)for(auto&i:G[x......