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)

相关推荐
春日见29 分钟前
如何入门端到端自动驾驶?
linux·人工智能·算法·机器学习·自动驾驶
FreakStudio35 分钟前
保姆级 uPyPi 教程|从 0 到 1:MicroPython 驱动包一键安装 + 分享全攻略
python·嵌入式·电子diy
Volunteer Technology36 分钟前
架构面试题(一)
开发语言·架构·php
清水白石00837 分钟前
Python 对象序列化深度解析:pickle、JSON 与自定义协议的取舍之道
开发语言·python·json
2401_876907521 小时前
Python机器学习实践指南
开发语言·python·机器学习
图图的点云库1 小时前
高斯滤波实现算法
c++·算法·最小二乘法
努力中的编程者1 小时前
栈和队列(C语言底层实现环形队列)
c语言·开发语言
张张123y1 小时前
RAG从0到1学习:技术架构、项目实践与面试指南
人工智能·python·学习·面试·架构·langchain·transformer
Shi_haoliu1 小时前
openClaw源码部署-linux
前端·python·ai·openclaw