CEC2017(Python):五种算法(SSA、RFO、OOA、PSO、GWO)求解CEC2017

一、5种算法简介

1、麻雀搜索算法SSA

2、红狐优化算法RFO

3、鱼鹰优化算法OOA

4、粒子群优化算法PSO

5、灰狼优化算法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. ### 三、5种算法求解CEC2017 #### (1)部分Python代码 import cec2017.functions as functions import numpy as np import matplotlib.pyplot as plt from SSA import SSA from RFO import RFO from OOA import OOA from PSO import PSO from GWO import GWO plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #主程序 function_name =12 #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 = RFO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX3,BestF3,curve3 = OOA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX4,BestF4,curve4 = PSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 BestX5,BestF5,curve5 = GWO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解 #画收敛曲线图 Labelstr=['SSA','RFO','OOA','PSO','GWO'] Colorstr=['r','g','b','k','c'] 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]) 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.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() # ![](https://file.jishuzhan.net/article/1740720137390002177/d4f74b65fbd3f5bfc0dc731dcd8d659e.webp) #### (2)部分结果 ![](https://file.jishuzhan.net/article/1740720137390002177/93988a68203f5421e7d8f49e23a1793d.webp) ![](https://file.jishuzhan.net/article/1740720137390002177/7a4f71d139e9979cbe564219146ab7b6.webp) ![](https://file.jishuzhan.net/article/1740720137390002177/a14b7b3cf4c3de117328a48b73668185.webp) ![](https://file.jishuzhan.net/article/1740720137390002177/cdde6d4706bd414c8579e77c90de345d.webp) ![](https://file.jishuzhan.net/article/1740720137390002177/75c94100612d8a57f06ac0166aad34d7.webp) ![](https://file.jishuzhan.net/article/1740720137390002177/4ac13d5d820c4034c6072232b4251ae5.webp) ![](https://file.jishuzhan.net/article/1740720137390002177/98ded9da92fd0028f67f52891ed00a1c.webp) ### 四、完整Python代码 ![](https://file.jishuzhan.net/article/1740720137390002177/18a7927c81bc14c51b19ca838e8df552.webp)

相关推荐
wearegogog12337 分钟前
MATLAB的脉搏信号分析预处理
算法·matlab
fs哆哆39 分钟前
在VB.net中一维数组,与VBA有什么区别
java·开发语言·数据结构·算法·.net
johnZhangqi44 分钟前
深圳大学-计算机信息管理课程实验 C++ 自考模拟题
java·开发语言·c++
wjt1020201 小时前
机器学习--续
算法·机器学习
Sally璐璐1 小时前
Go语言变量声明与初始化详解
java·开发语言·golang
luofeiju1 小时前
交叉编译笔记
开发语言
牵星术小白2 小时前
【GNSS基带算法】Chapter.2 相干积分与非相干积分
算法
StudyWinter2 小时前
【C++】仿函数和回调函数
开发语言·c++·回调函数·仿函数
C4程序员2 小时前
北京JAVA基础面试30天打卡14
java·开发语言·面试
黑客影儿3 小时前
Go特有的安全漏洞及渗透测试利用方法(通俗易懂)
开发语言·后端·安全·web安全·网络安全·golang·系统安全