python:五种算法(GWO、HHO、WOA、PSO、SSA)求解23个测试函数(python代码)

news2024/12/24 21:04:37

一、五种算法简介

1、灰狼优化算法GWO

2、哈里斯鹰优化算法HHO

3、鲸鱼优化算法WOA

4、粒子群优化算法PSO

5、麻雀搜索算法SSA

二、5种算法求解23个函数

(1)23个函数简介

参考文献:

[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

(2)部分python代码

from FunInfo import Get_Functions_details
from WOA import WOA
from GWO import GWO
from PSO import PSO
from SSA import SSA
from HHO import HHO
import matplotlib.pyplot as plt
from func_plot import func_plot
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#主程序
function_name =1 #测试函数1-23
SearchAgents_no = 50#种群大小
Max_iter = 100#迭代次数
lb,ub,dim,fobj=Get_Functions_details(function_name)#获取问题信息
BestX1,BestF1,curve1 = WOA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX2,BestF2,curve2 = GWO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX3,BestF3,curve3 = PSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX4,BestF4,curve4 = SSA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX5,BestF5,curve5 = HHO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
#画函数图
func_plot(lb,ub,dim,fobj,function_name)#画函数图
#画收敛曲线图
Labelstr=['WOA','GWO','PSO','SSA','HHO']
Colorstr=['g','r','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("F"+str(function_name))
plt.legend()
plt.savefig(str(function_name)+'.png')
plt.show()
#

(3)部分结果

三、完整python代码

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

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

相关文章

k8s pod日志写入ELK的具体实现

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 在上一部分,shigen讲到了k8spod的日志写入ELK的三种技术方案,并在最后展示了一下我…

【vtkWidgetRepresentation】第九期 vtkAffineRepresentation2D仿射变换

很高兴在雪易的CSDN遇见你 【vtkWidgetRepresentation】第九期 vtk中的仿射变换 前言 本文分享VTK中的仿射变换,实际结果如下图所示,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进…

数电实验-----74LS192芯片实现任意进制计数器的功能(Quartus II )

目录 一、74LS192芯片介绍 管脚图 ​编辑逻辑图与功能表 工作原理 二、任意进制计数器的实现 1.复位清零法 2.外部反馈置数法 一、74LS192芯片介绍 74LS192是一种二进制同步上升计数器芯片,可以用于数字计数和时序控制等应用。它是TTL逻辑家族中的一员&#x…

文心一言 VS 讯飞星火 VS chatgpt (154)-- 算法导论12.3 1题

一、用go语言,给出 TREE-INSERT 过程的一个递归版本。 文心一言,代码不能运行: 下面是用 Go 语言实现一个递归版本的 TREE-INSERT 过程的代码: package main import "fmt" type TreeNode struct { Val int Lef…

tiktok/抖音x-bogus参数分析

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 这里只是我分析的分析过程,以及一些重要点的记录…

web服务器之——www服务器的基本配置

目录 一、www简介 1、什么是www 2、www所用的协议 3、WEB服务器 4、主要数据 5、浏览器 二、 网址及HTTP简介 1、HTTP协议请求的工作流程 三、www服务器的类型(静态网站(HTML), 动态网站(jsp python,php,perl)) 1、 仅提供…

windows10安装MongoDB的入门简易教程【学习自用】

一、下载安装包 下载地址 https://www.mongodb.com/try/download/community 因为我是在windows上安装,所以下载windows版本的压缩包格式 二、下载后解压到要安装的目录里去 我这里在D盘装,所以就解压到D盘中我自己建的的mongoDB文件夹中。 三、在解…

初识人工智能,一文读懂贝叶斯优化的知识文集(6)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

构建智能外卖跑腿小程序:技术实践与代码示例

在快节奏的现代生活中,外卖跑腿服务已成为人们日常生活中不可或缺的一部分。为了提供更智能、高效的外卖跑腿体验,本文将深入探讨构建一款智能外卖跑腿小程序所需的关键技术,并提供相应的代码示例。 1. 地理位置服务的整合 外卖跑腿小程序…

宇视科技视频监控 main-cgi 文件信息泄露漏洞复现

0x01 产品简介 宇视(Uniview)高清网络摄像机是一种高性能的网络摄像机,它可以通过网络进行视频传输和监控。该摄像机采用先进的视频技术,具有高清晰度、低照度、宽动态等特点,能够提供高质量的视频图像。 0x02 漏洞概述 宇视(Uniview)高清网络摄像机存在信息泄露漏洞…

Android CoordinatorLayout

一、CoordinatorLayout CoordinatorLayout(协调者布局) 用于协调管理其子视图之间的交互行为。它旨在处理复杂的用户界面行为,允许子视图之间响应用户输入、动画和滚动等交互操作。 CoordinatorLayout 通过 Coordinator (协调者)来管理子视图…

APD--传感器

#1 Current temperature coeffiency Hamamastu Si APD S8664, with same bias, **low temperature**, **higher gain**, it means that **higher current output**. #2, PD

Word插件-好用的插件-批量插入图片-大珩助手

现有100张图片,需要批量插入word中,并在word中以每页6张图片的形式呈现,请问怎样做? 使用word大珩助手,多媒体-插入图片,根据图片的长宽,选择连续图片、一行2个图或一行3个图,可一次…

Web安全-SQL注入常用函数(二)

★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、MySQL数据库构成 初始化安装MySQL数据库后(…

web服务器之——搭建基于http协议的静态网站

目录 准备工作:web服务器搭建 第一步:挂载 第二步:编辑配置文件 第三步:安装软件包 第四步:启动httpd 查看配置文件: 第五步:设置防火墙状态: 重启服务: 查看状态&#xff…

大致人类应该是短时记忆和利用短时记忆控制利用周围环境达到长期记忆的吧

这里写目录标题 图代码代码解析图 代码 import timedef route_llm(route_text):passdef write_to_dask(one_sum, one_text, one_path

【Mathtype】MathType符号面板没了或者变成可拖动如何解决

1. MathType符号面板没了 如下图MathType符号面板没了,应该咋办? 向下面一样,在视图中选择工具栏即可 2. Mathtype符号面板可拖动如何还原 如下图所示,Mathtype变成了如下可以拖动的 直接选中工具栏的左上角,拖到…

51单片机应用从零开始(十一)·数组函数、指针函数

51单片机应用从零开始(九)数组-CSDN博客 51单片机应用从零开始(十)指针-CSDN博客 目录 1. 用数组作函数参数控制流水花样 2. 用指针作函数参数控制 P0 口 8 位 LED 流水点亮 1. 用数组作函数参数控制流水花样 要在51单片机中…

探索 HTML 语义化:让你的网页更有意义(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

YOLOv8改进 | 主干篇 | SwinTransformer替换Backbone(附代码 + 详细修改步骤 +原理介绍)

一、本文介绍 本文给大家带来的改进机制是利用Swin Transformer替换YOLOv8中的骨干网络其是一个开创性的视觉变换器模型,它通过使用位移窗口来构建分层的特征图,有效地适应了计算机视觉任务。与传统的变换器模型不同,Swin Transformer的自注…