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 GWOplt.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()
#

(2)部分结果

四、完整Python代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2662159.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

WEB通讯技术。前端实现SSE长连接,nodejs+express搭建简单服务器,进行接口调试,通过curl请求数据

描述 长连接(Keep-Alive)是一种HTTP/1.1的持久连接技术,它允许客户端和服务器在一次TCP连接上进行多个HTTP请求和响应,而不必为每个请求/响应建立和断开一个新的连接。长连接有助于减少服务器的负载和提高性能。 长连接的HTTP请…

SpringBoot2.7.12整合Knife4j

SpringBoot2.7.12整合Knife4j 是什么 Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案 添加依赖 <!--引入Knife4j的官方start包,该指南选择Spring Boot版本<3.0,开发者需要注意--> <dependency><groupId>com.github.xiaoymin</groupId>&l…

【Angular 】Angular 模板中基于角色的访问控制

您是否在Angular模板中实现角色库访问控制&#xff1f;一种方法是通过*ngIf&#xff0c;但我不会选择该路径&#xff0c;因为它将在Angular模板中包含自定义函数&#xff0c;并且很难维护。正确的方法是使用Angular结构指令&#x1f680;. 什么是RBAC&#xff1f; 基于角色的…

基于 eBPF 构建下一代智能可观测系统

作者&#xff1a;梵登、千陆 本文基于 KubeCon China 2023 分享整理 我们今天分享的主题是基于 eBPF 构建下一代智能可观测系统。 在开始之前呢&#xff0c;我先介绍一下我们自己。我是刘恺&#xff0c;花名是千陆&#xff0c;目前是阿里云 ARMS K8s 监控子产品的负责人。这…

自然语言处理(第16课 机器翻译4、5/5)

一、学习目标 1.学习各种粒度的系统融合方法 2.学习两类译文评估标准 3.学习语音翻译和文本翻译的不同 4.学习语音翻译实现方法 二、系统融合 以一个最简单的例子来说明系统融合&#xff0c;就是相当于用多个翻译引擎得到不同的翻译结果&#xff0c;然后选择其中最好的作为…

GBASE南大通用-小内存单机安装GBase 8c分布式数据库实践

* 这种小内存部署方式仅用于分布式数据库个人学习使用&#xff0c;不建议用于其他用途。 随着数据高并发复杂场景业务需求不断增多&#xff0c;信息数据呈现出爆炸式增长、多源多维、数据类型繁复等特征。在这一趋势下&#xff0c;目前分布式数据库因其架构的天然优势&#xf…

【MySQL】数据库之小题练习(完全备份和增量备份的数据恢复,以及断点恢复)

目录 先创建库&#xff0c;创建表&#xff0c;完成三次数据的录入以及第一次的完全备份&#xff0c;第二次和第三次的增量备份&#xff1b; 第一次完全备份操作 第二次插入后做增量备份操作 第三次 插入后做增量备份操作 1、完全备份恢复&#xff0c;获取一班的人的成绩 …

SAP问题 OPEN SQL 取不到值

关键&#xff1a;数据库中有数据&#xff0c;但是open sql取不到数据 背景&#xff1a; 标准程序在测试环境正常执行&#xff0c;在生产环境报错。 解决过程&#xff1a; 第一步&#xff1a;分析执行结果不一致可能的原因&#xff1a; 1.测试数据问题&#xff0c;可能性小&…

甄知猪齿鱼2.6版本来了,自动化助手帮你轻松提升生产力!

年末之际&#xff0c;我们带来了猪齿鱼V2.6.0的新版本大礼包&#xff01;在这次更新中&#xff0c;我们进行了自动化功能的升级和优化&#xff0c;助您轻松提升生产力&#xff0c;更好地应对各种项目管理挑战。 自动化助手 自动化助手是由触发器、条件、动作3个元素组成&#x…

打开3d模型时显示不匹配怎么办---模大狮模型网

当3d模型打开时&#xff0c;显示不匹配的情况可能有以下几个原因和解决方法&#xff1a; 文件格式不匹配&#xff1a;检查您所使用的3D软件是否支持打开该模型文件格式。不同的软件支持不同的文件格式&#xff0c;如果文件格式不匹配&#xff0c;可能无法正确加载和显示模型。尝…

反射讲解(有图有真相)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、反射是什么&#xff1f;二、反射有啥好处&#xff1f;1. 没反射2. 有反射 三、反射的常用方法1. 获取 Class 对象&#xff1a;2. 获取类的构造方法&#xf…

5214手持式千兆网络质量测试仪

5214手持式千兆网络质量测试仪 简述&#xff1a; 5214 手持式千兆网络质量测试仪是中电科思仪科技股份有限公司研发的综合性网络测 试仪器。此仪器具有网络故障的排查&#xff0c;网络设备的现场维护&#xff0c;网络性能的测试和分析&#xff0c;协议 仿真、解码、统计等功能…

目标检测 YOLOv5 - 推理时的数据增强

目标检测 YOLOv5 - 推理时的数据增强 flyfish 版本 YOLOv5 6.2 参考地址 https://github.com/ultralytics/yolov5/issues/303在训练时可以使用数据增强&#xff0c;在推理阶段也可以使用数据增强 在测试使用数据增强有个名字叫做Test-Time Augmentation (TTA) 实际使用中使…

Arduino驱动VL6180X光学测距传感器(OLED显示)

Arduino驱动VL6180X光学测距传感器&#xff08;OLED显示&#xff09; 简介原理模块参数接线图代码结果 简介 VL6108X三合一光电模块&#xff0c;芯片内集成了IR VSEL(vertical-cavity surface-emitting laser)红外垂直腔面发射激光器光源、接近传感器、环境光传感器&#xff0…

Java创建线程执行任务的方法(一)

目录 1.继承Thread类 2.实现Runnab类 2.1实现Runnable类 2.2使用Lambda表达式 3.实现Callable类 3.1返回Integer类型数据 3.2返回String类型数据 3.3返回Object类型数据 4.匿名内部类 创建线程的方法&#xff1a;继承Thread类&#xff1b;实现Runnab类&#xff1b;匿名…

Apipost一键压测参数化功能详解

最近更新中Apipost对UI页面进行了一些调整&#xff0c;另外一键压测功能支持参数化&#xff01;本篇文章将详细介绍这些改动&#xff01; API调试页面的细节改动 在请求区填入请求参数或脚本时会有相应的标识 如在Query中填入多个参数时上方会展示数量 在预、后执行脚本中写…

基于Java车间工时管理系统(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

海外社媒营销避坑指南:盘点最容易被人忽视的7大坑!

在全球数字化浪潮的推动下&#xff0c;海外社媒营销成为企业推广品牌、产品和服务的重要途径。然而&#xff0c;与其诱人的前景相对应的是众多的坑&#xff0c;需要企业精心规划和巧妙应对。本文Nox聚星将和大家盘一盘企业在海外社媒营销之路上最容易忽视的7个大坑&#xff0c;…

一面“短刀”出鞘,一面撤回IPO,蜂巢能源决定求稳

刚刚在12月12日的第四届电池日上全球首发蜂速超快充磷酸铁锂短刀电池&#xff0c;10天之后便主动撤回已经过上交所两次问询的IPO申请&#xff0c;终止了自己奔赴科创板的上市之旅。动力电池新贵蜂巢能源这套动作&#xff0c;让市场颇为遗憾——虽然当前国内资本市场环境确实不同…

AI赋能金融创新:技术驱动的未来金融革命

人工智能&#xff08;AI&#xff09;作为一种技术手段&#xff0c;正逐渐改变金融行业的方方面面。从风险管理到客户体验&#xff0c;从交易执行到反欺诈&#xff0c;AI带来了许多创新和机遇。本文将探讨AI在金融领域的应用和其赋能的金融创新。 金融领域一直以来都面临着复杂的…