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

一、5种算法简介

1、差分进化算法DE

2、红狐优化算法RFO

3、鱼鹰优化算法OOA

4、粒子群优化算法PSO

5、灰狼优化算法GWO

二、CEC2017简介

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第1张图片

参考文献:

[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 DE import DE
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 =7 #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 = DE(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=['DE','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()
#




CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第2张图片

(2)部分结果

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第3张图片

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第4张图片

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第5张图片

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第6张图片

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第7张图片

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第8张图片

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第9张图片

四、完整Python代码

CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017_第10张图片

你可能感兴趣的:(优化算法,python,CEC,python,算法,开发语言,进化计算,优化算法)