CEC2017(Python):七种算法(RFO、DBO、HHO、SSA、DE、GWO、OOA)求解CEC2017

一、7种算法简介

1、红狐优化算法RFO

2、蜣螂优化算法DBO

3、哈里斯鹰优化算法HHO

4、麻雀搜索算法SSA

5、差分进化算法DE

6、灰狼优化算法GWO

7、鱼鹰优化算法OOA

二、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.

三、7种算法求解CEC2017

(1)部分Python代码

import cec2017.functions as functions
import numpy as np
import matplotlib.pyplot as plt
from RFO import RFO
from SSA import SSA
from OOA import OOA
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 = OOA(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)#问题求解
BestX7,BestF7,curve7 = RFO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
#画收敛曲线图
Labelstr=['SSA','OOA','DBO','DE','GWO','HHO','RFO']
Colorstr=['r','g','b','k','c','m','y']
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])
    plt.semilogy(curve7,color=Colorstr[6],linewidth=2,label=Labelstr[6])
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.plot(curve7,color=Colorstr[6],linewidth=2,label=Labelstr[6])


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-06 00:16:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 00:16:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 00:16:02       87 阅读
  4. Python语言-面向对象

    2024-01-06 00:16:02       96 阅读

热门阅读

  1. 【大数据】Doris 数仓使用规范原则

    2024-01-06 00:16:02       51 阅读
  2. Linux 挂载磁盘, 无数据案例

    2024-01-06 00:16:02       56 阅读
  3. 法大大实名认证的情况

    2024-01-06 00:16:02       51 阅读
  4. 自有图片数据制成npz格式数据集

    2024-01-06 00:16:02       60 阅读
  5. GIT使用简介

    2024-01-06 00:16:02       49 阅读
  6. C单词翻转

    2024-01-06 00:16:02       56 阅读
  7. uniapp 分享例子做个记录

    2024-01-06 00:16:02       56 阅读
  8. SpringBoot实用开发(十)-- MongoDB的安装

    2024-01-06 00:16:02       57 阅读
  9. 【力扣每日一题】力扣2397被列覆盖的最多行数

    2024-01-06 00:16:02       51 阅读
  10. Nginx(十六) 配置文件详解 - server stream服务流

    2024-01-06 00:16:02       57 阅读
  11. python列表的常见方法 学习笔记

    2024-01-06 00:16:02       61 阅读
  12. 【C++】知识点汇总(上)

    2024-01-06 00:16:02       51 阅读