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)

相关推荐
花月C几秒前
Spring IOC:容器管理与依赖注入秘籍
java·开发语言·rpc
ylfhpy7 分钟前
Java面试黄金宝典22
java·开发语言·算法·面试·职场和发展
Phoebe鑫14 分钟前
数据结构每日一题day9(顺序表)★★★★★
数据结构·算法
..过云雨32 分钟前
11. 【C++】模板进阶(函数模板特化、类模板全特化和偏特化、模板的分离编译)
开发语言·c++
烁34739 分钟前
每日一题(小白)动态规划篇2
算法·动态规划
橘猫云计算机设计40 分钟前
基于django优秀少儿图书推荐网(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·小程序·django·毕业设计
互联网杂货铺1 小时前
如何用Postman实现自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
予安灵1 小时前
一文详细讲解Python(详细版一篇学会Python基础和网络安全)
开发语言·python
Lizhihao_1 小时前
JAVA-堆 和 堆排序
java·开发语言
极客先躯1 小时前
高级java每日一道面试题-2025年3月21日-微服务篇[Nacos篇]-什么是Nacos?
java·开发语言·微服务