当前位置: 首页 > news >正文

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

一、五种算法简介

1、鱼鹰优化算法OOA

2、鲸鱼优化算法WOA

3、灰狼优化算法GWO

4、粒子群优化算法PSO

5、遗传算法GA

二、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 GA import GA
from OOA import OOA
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 = GA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX5,BestF5,curve5 = OOA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
#画函数图
func_plot(lb,ub,dim,fobj,function_name)#画函数图
#画收敛曲线图
Labelstr=['WOA','GWO','PSO','GA','OOA']
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("F"+str(function_name))
plt.legend()
plt.savefig(str(function_name)+'.png')
plt.show()

(3)部分结果

三、完整python代码

http://www.lryc.cn/news/257188.html

相关文章:

  • DIP——添加运动模糊与滤波
  • SQL Server查询计划(Query Plan)——SQL处理过程
  • 【动手学深度学习】(十二)现代卷积神经网络
  • 【小沐学Python】Python实现TTS文本转语音(speech、pyttsx3、百度AI)
  • TCP通信
  • 2023济南大学acm新生赛题解
  • docker-compose安装教程
  • 【rabbitMQ】rabbitMQ用户,虚拟机地址(添加,修改,删除操作)
  • Python高级算法——动态规划
  • MySQL在Centos7环境安装
  • halcon视觉缺陷检测常用的6种方法
  • openGauss学习笔记-151 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_basebackup
  • 报错:Uncaught ReferenceError: Cannot access ‘l‘ before initialization
  • 计算机视觉-机器学习-人工智能顶会 会议地址
  • 784. 字母大小写全排列
  • HarmonyOS鸿蒙应用开发——HTTP网络访问与封装
  • vscode 编写爬虫爬取王者荣耀壁纸
  • spring boot + uniapp 微信公众号 jsapi 支付
  • 【数学建模】《实战数学建模:例题与讲解》第九讲-时间序列分析(含Matlab代码)
  • 大话数据结构-查找-有序表查找
  • Qt实现二维码生成和识别
  • MyBatisX插件
  • 《C++20设计模式》学习笔记---原型模式
  • SpringBootAdmin设置邮件通知
  • 深度解析IP应用场景API:提升风险控制与反欺诈能力
  • Java连接数据库增删改查-MyBatis
  • 在国内,现在月薪1万是什么水平?
  • 【Python网络爬虫入门教程1】成为“Spider Man”的第一课:HTML、Request库、Beautiful Soup库
  • 燕千云汇联易联袂出击:护航医企合规,丝滑内外协作
  • 【线性代数与矩阵论】Jordan型矩阵