本文主要是介绍CEC2017(Python):五种算法(HHO、RFO、OOA、PSO、GWO)求解CEC2017,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、5种算法简介
1、哈里斯鹰优化算法HHO
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 HHO import HHO from RFO import RFO from OOA import OOA from PSO import PSO from GWO import GWOplt.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 = HHO(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=['HHO','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() #
(2)部分结果
CEC2017(Python):五种算法(HHO、RFO、OOA、PSO、GWO)求解CEC2017-CSDN博客
四、完整Python代码
这篇关于CEC2017(Python):五种算法(HHO、RFO、OOA、PSO、GWO)求解CEC2017的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!