首页 > 编程语言 >CEC2017(Python):七种算法(PSO、RFO、DBO、HHO、SSA、DE、GWO)求解CEC2017

CEC2017(Python):七种算法(PSO、RFO、DBO、HHO、SSA、DE、GWO)求解CEC2017

时间:2024-06-12 21:58:43浏览次数:29  
标签:Colorstr plt PSO Python CEC2017 label color Labelstr linewidth

一、7种算法简介

1、粒子群优化算法PSO

2、红狐优化算法RFO

3、蜣螂优化算法DBO

4、哈里斯鹰优化算法HHO

5、麻雀搜索算法SSA

6、差分进化算法DE

7、灰狼优化算法GWO

二、CEC2017简介

参考文献:

[1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem definitions and evaluation criteria for the CEC2017 special session and competition on single objective real-parameter numerical optimization,” Technical Report. Nanyang Technological University, Singapore.

三、7种算法求解CEC2017

(1)部分Python代码

import cec2017.functions as functions
import numpy as np
import matplotlib.pyplot as plt
from RFO import RFO
from SSA import SSA
from PSO import PSO
from DBO import DBO
from DE import DE
from GWO import GWO
from HHO import HHO
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#主程序
function_name =1 #CEC2017 测试函数 1-29
SearchAgents_no = 50#种群大小
Max_iter = 100#最大迭代次数
dim=30;#维度只能是 10/30/50/100
lb = -100*np.ones(dim)#下界
ub = 100*np.ones(dim)#上界
fobj= functions.all_functions[function_name-1]


BestX1,BestF1,curve1 = SSA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX2,BestF2,curve2 = PSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX3,BestF3,curve3 = DBO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX4,BestF4,curve4 = DE(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX5,BestF5,curve5 = GWO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX6,BestF6,curve6 = HHO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX7,BestF7,curve7 = RFO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
#画收敛曲线图
Labelstr=['SSA','PSO','DBO','DE','GWO','HHO','RFO']
Colorstr=['r','g','b','k','c','m','y']
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])
    plt.semilogy(curve7,color=Colorstr[6],linewidth=2,label=Labelstr[6])
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.plot(curve7,color=Colorstr[6],linewidth=2,label=Labelstr[6])


plt.xlabel("Iteration")
plt.ylabel("Fitness")
plt.xlim(0,Max_iter)
plt.title("CEC2017-F"+str(function_name))
plt.legend()
plt.savefig(str(function_name)+'.png')
plt.show()
#




(2)部分结果

四、完整Python代码

CEC2017(Python):七种算法(PSO、RFO、DBO、HHO、SSA、DE、GWO)求解CEC2017

标签:Colorstr,plt,PSO,Python,CEC2017,label,color,Labelstr,linewidth
From: https://blog.csdn.net/midncw/article/details/139637613

相关文章

  • CEC2017(Python):七种算法(RFO、DBO、HHO、SSA、DE、GWO、OOA)求解CEC2017
    一、7种算法简介1、红狐优化算法RFO2、蜣螂优化算法DBO3、哈里斯鹰优化算法HHO4、麻雀搜索算法SSA5、差分进化算法DE6、灰狼优化算法GWO7、鱼鹰优化算法OOA二、CEC2017简介参考文献:[1]Awad,N.H.,Ali,M.Z.,Liang,J.J.,Qu,B.Y.,&Suganthan,P.N.(201......
  • 【Python数据魔术】:揭秘类型奥秘,赋能代码创造
    文章目录......
  • 基于python+vue的贫困生资助系统
    博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实实在在的写点程序。......
  • 基于python的旅游综合平台实现
    博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实实在在的写点程序。......
  • GitHub标星破千!这份Python并行编程手册,可以封神了!
    现在这个时代是并行编程与多核的时代,硬件成本越来越低,如何充分利用硬件所提供的各种资源是每一个软件开发者需要深入思考的问题。若想充分利用所有的计算资源来构建高效的软件系统,并行编程技术是不可或缺的一项技能。今天给小伙伴们分享的这份手册一共分为6章,从原理到实践系统......
  • Python学习笔记6:pychram相关知识及安装教程,后续需要学习的入门知识
    上篇文章说了,今天去公司重新装一下IDE,最后也是把过程这边再记录一下,有需要的可以参考一下。关于pychrampychram是什么?PyCharm是由JetBrains公司开发的一款流行的Python集成开发环境(IDE)。它专为Python语言设计,提供了许多方便的功能来帮助开发者编写、测试和调试Python代码......
  • DP经典问题----背包问题的代码实现(入门级)(C++/PYTHON)
    背包的状态转换方程i:表示物品序号j:表示背包大小W[i]:表示第i件物品的重量f[i,j]:表示在前i件物品中选择若干件放在承重为j的背包中,可以取得的最大价值f[i-1,j-Wi]:表示在前i-1件物品中选择若干件放在承重为j-Wi的背包中,可以取得的最大价值Pi(j>=Wi):表示第i件物品的价值,要......
  • DeepSORT(目标跟踪算法)中卡尔曼增益的理解
    DeepSORT(目标跟踪算法)中卡尔曼增益的理解flyfish先用最简单的例子来理解卡尔曼增益公式(1)首先,通过多次测量一个物理量,并使用取平均值的方式来计算其真实值:x......
  • 服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
    哈喽,大家好,我是木头左,物联网搬砖工一名,致力于为大家淘出更多好用的AI工具!背景在现代软件开发中,RESTfulAPI(RepresentationalStateTransferApplicationProgrammingInterface)已经成为一种常用的架构风格。它提供了一种简单、易于理解和实现的方式来构建分布式系统。本文......
  • python指南之多线程与多进程编程大全
    Python作为一种高级编程语言,提供了多种并发编程的方式,其中多线程与多进程是最常见的两种方式之一。在本文中,我们将探讨Python中多线程与多进程的概念、区别以及如何使用线程池与进程池来提高并发执行效率。多线程与多进程的概念多线程多线程是指在同一进程内,多个线程并发执......