CEC2017(Python):六种算法(PSO、DBO、HHO、SSA、DE、GWO)求解CEC2017(提供完整Python代码)

一、6种算法简介

1、粒子群优化算法PSO

2、蜣螂优化算法DBO

3、哈里斯鹰优化算法HHO

4、麻雀搜索算法SSA

5、差分进化算法DE

6、灰狼优化算法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.

三、6种算法求解CEC2017

(1)部分Python代码

import cec2017.functions as functions
import numpy as np
import matplotlib.pyplot as plt
from SSA import SSA
from PSO import PSO
from DBO import DBO
from DE import DE
from GWO import GWO
from HHO import HHO
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#主程序
function_name =5 #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 = PSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX3,BestF3,curve3 = DBO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX4,BestF4,curve4 = DE(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX5,BestF5,curve5 = GWO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX6,BestF6,curve6 = HHO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
#画收敛曲线图
Labelstr=['SSA','PSO','DBO','DE','GWO','HHO']
Colorstr=['r','g','b','k','c','m']
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])
    plt.semilogy(curve6,color=Colorstr[5],linewidth=2,label=Labelstr[5])
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.plot(curve6,color=Colorstr[5],linewidth=2,label=Labelstr[5])


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)部分结果

四、完整Python代码

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-05 21:50:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-05 21:50:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-05 21:50:04       82 阅读
  4. Python语言-面向对象

    2024-01-05 21:50:04       91 阅读

热门阅读

  1. 使用Python国产API框架开发REST接口

    2024-01-05 21:50:04       44 阅读
  2. 29道memcached面试题含答案(很全)

    2024-01-05 21:50:04       39 阅读
  3. 反向显示之 tac

    2024-01-05 21:50:04       53 阅读
  4. c++容器案例

    2024-01-05 21:50:04       48 阅读
  5. Golang - defer关键字 深入剖析

    2024-01-05 21:50:04       59 阅读
  6. docker学习——汇总版

    2024-01-05 21:50:04       60 阅读
  7. C++入门【18-C++ 指针】

    2024-01-05 21:50:04       50 阅读
  8. 131. 分割回文串(中等)

    2024-01-05 21:50:04       52 阅读