14种混沌映射,python代码,可自由切换,以鲸鱼和蜣螂算法为例,方便应用于所有算法...

这篇具有很好参考价值的文章主要介绍了14种混沌映射,python代码,可自由切换,以鲸鱼和蜣螂算法为例,方便应用于所有算法...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 本期采用PYTHON代码实现14种常见的和不常见的混沌映射用于优化群智能算法,作者写好了一个Chaos类,方便调用,代码可一键切换,可用于所有智能算法优化,本篇文章以鲸鱼和蜣螂算法为例进行介绍

本文涉及14种混沌映射算法,用于在初始化智能算法粒子时使用,14种混沌映射算法包括:Tent映射、Fuch映射、Henon映射、SPM映射、Logistic映射、Cubic映射、chebyshev映射、Piecewise映射、sinusoidal映射、Sine映射,ICMIC映射, Circle映射,Bernoulli映射,Singer映射。关于每个方法映射的原理,本文就不再一一介绍。

01

选择混沌映射有什么用

经实验证明,采用混沌映射产生随机数的适应度函数值有明显提高,用混沌映射取代常规的均匀分布的随机数发生器可以得到更好的结果,特别是搜索空间中有许多局部解时,更容易搜索到全局最优解。一句话来讲就是:混沌映射可以增强粒子的随机性和多样性。

02

混沌映射可视化图片

采用python代码,实现对混沌映射的绘图。以SPM映射和Fuch映射为例,展示一下结果图。当然这个用肉眼也确实看不出太大区别,其他12种混沌映射画出来的结果都和这个差不多,就不一一展示了。

tent映射和bernoulli映射相似,python,算法,开发语言

tent映射和bernoulli映射相似,python,算法,开发语言

绘图代码如下:

from chaos import Chaos  #作者自己写的一个class
import numpy as np
import math
from matplotlib import pyplot as plt

dim = 1000
lb = np.zeros([dim,1])
ub = np.ones([dim,1])
chaos_ = Chaos(1, dim, lb, ub)  # 生成一个Chaos类

'''
        可选函数有:tent_initial,fuch_initial,sine_initial,singer_initial,henon_initial,cubic_initial,
                icmic_initial,bernoulli_initial,chebyshev_initial,circle_initial,logistic_initial,
                piecewise_initial,sinusoidal_initial SPM_initial
        分别对应相应的混沌映射!
    '''
poss_sols = Chaos.fuch_initial(chaos_)  # 把生成的chaos_带入具体的混沌映射函数即可!

''' 
    绘制混沌映射图
'''
x = np.array(range(0,dim)).reshape(1,-1)
plt.scatter(x,poss_sols,s=2)
plt.title('Fuch Chaos Map')
plt.xlabel('Sample points')
plt.ylabel('Chaos value')
plt.grid()
plt.show()

可以看到,在代码中调用了作者自己写的一个Chaos类,有了这个类,大家就可以像调用python库一样,调用不同的混沌映射方法。

03

14种混沌映射优化鲸鱼算法

以SPM、Fuch、Tent混沌映射为例,在CEC2005,F2函数dim=50。上进行测试。采用不同混沌映射优化鲸鱼算法结果如下:

SPM混沌映射的WOA算法:

修改代码为下即可。

poss_sols = Chaos.SPM_initial(chaos_)  # 把生成的chaos_带入具体的混沌映射函数即可!

tent映射和bernoulli映射相似,python,算法,开发语言

Fuch混沌映射的WOA算法:

修改代码为下即可。

poss_sols = Chaos.fuch_initial(chaos_)  # 把生成的chaos_带入具体的混沌映射函数即可!

tent映射和bernoulli映射相似,python,算法,开发语言

Tent映射

修改代码为下即可。

poss_sols = Chaos.tent_initial(chaos_)  # 把生成的chaos_带入具体的混沌映射函数即可!

tent映射和bernoulli映射相似,python,算法,开发语言

14种混沌映射优化蜣螂算法

以Icmic、Fuch、Sinusoida混沌映射为例,在CEC2022,F1函数dim=20。上进行测试。采用不同混沌映射优化蜣螂算法结果如下:

Icmic混沌映射的DBO算法:

修改代码为下即可。

X= Chaos.icmic_initial(chaos_)  # 把生成的chaos_带入具体的混沌映射函数即可!

tent映射和bernoulli映射相似,python,算法,开发语言

Fuch混沌映射的DBO算法:

修改代码为下即可。

X= Chaos.fuch_initial(chaos_)  # 把生成的chaos_带入具体的混沌映射函数即可!

tent映射和bernoulli映射相似,python,算法,开发语言

sinusoidal 映射的DBO算法:

修改代码为下即可。

X= Chaos.sinusoidal_initial(chaos_)  # 把生成的chaos_带入具体的混沌映射函数即可!

tent映射和bernoulli映射相似,python,算法,开发语言

04

结果分析

    可以看到,加了混沌映射后的函数,在算法寻优的前期,往往能更快的找到较小的值。这说明混沌映射起到了作用!   

    这里要特别说明一下,混沌映射优化智能算法,从理论上来讲,只是将初始化的粒子变得更随机更多样了,这样确实是可以加速算法的收敛速度,但是,一旦循环开始,剩下的就没有混沌优化什么事情了。

    换句话说,就是如果我直接用rand函数生成一堆粒子,也是有一定概率比混沌优化生成的粒子更好的,虽然这个概率不大,但确确实实是有的,所以如果偶尔出现混沌优化的效果不好使,那也不要气馁,毕竟混沌优化只是优化智能算法的一种手段,大家可以结合别的手段一起优化。

05

代码目录

tent映射和bernoulli映射相似,python,算法,开发语言

其中,chaos.py是作者写好的14种混沌映射的类。在主函数“14种混沌映射DBO.py”方便调用,也可方便用于别的算法改进中。plotchaos.py文件是用来绘制混沌映射图的。chaos的英文名是混乱,感觉这么命名还是挺有道理的哈哈,这样大家就可以一键更换了,而且很容易扩展到其他代码上。

友情提示:如果说,大家在用混沌映射优化时效果不好,可以手动修改chaos.m中的每个混沌映射方法的混沌系数。

本期代码获取链接:https://mbd.pub/o/bread/ZZuXkp1u

或点击下方卡片获取文章来源地址https://www.toymoban.com/news/detail-850199.html

到了这里,关于14种混沌映射,python代码,可自由切换,以鲸鱼和蜣螂算法为例,方便应用于所有算法...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于混沌映射的粒子群算法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ` 基于混沌映射的粒子群算法 ` 混沌映射是一类具有高度复杂性和随机性质的非线性动力系统,它具有敏感依赖于初值和参数的特点,可以产生看似无规律的运动轨迹。基于混沌映射的粒子群算法(Cha

    2024年02月15日
    浏览(37)
  • 群智能优化计算中的混沌映射

    经实验证明,采用混沌映射产生随机数的适应度函数值有明显提高,用混沌映射取代常规的均匀分布的随机数发生器可以得到更好的结果,特别是搜索空间中有许多局部解时,更容易搜索到全局最优解,利用混沌序列进行种群初始化、选择、交叉和变异等操作会影响算法的整

    2023年04月19日
    浏览(38)
  • C-C 法混沌时间序列 Matlab与Python代码

    简单的来讲,就是处于混沌系统的时间序列,这是可以预测的。 理论上来说,一个非线性复杂的现实环境中,时间序列是不可预测的,或则说预测的结果是不可信的。 但在混沌系统,由于吸引子结构特性的存在,将一个混沌时间序列进行重构之后,恢复到它应有的系统中就

    2024年02月08日
    浏览(38)
  • 【VMD-DBO-LSTM】变分模态分解-蜣螂优化算法-长短时记忆神经网络研究(Python代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 1.1 变分模态分解算法 1.2 蜣螂优化算法 1.3 LSTM 📚2 运行

    2024年02月09日
    浏览(54)
  • vscode 端口转发实现端口映射,实现端口自由

    用vscode连接server进行开发, 是非常方便的,但很多时候,server的端口开放的很有限,那么就可以利用vscode进行端口映射   举一个应用场景: 先通过A利用vscode 连接B,然后再vscode 的port窗口进行端口转发,比如将22端口映射到A本地的5000, 然后再通过Host利用vscode连接A,利用端

    2024年02月16日
    浏览(37)
  • 17行python代码,openai帮你实现下班自由

    chatgpt最近火到不行,AI受到了前所未有的关注,openai作为开发团队不仅仅开发了一个在线尝鲜的聊天机器人,也提供API并且提供了python语言的的pypi库。 火出圈的聊天机器人是chatgpt3,既然排行老三,就说明这个张飞的前面还有大哥刘玄德和二哥关云长,当年一起桃园结义……

    2024年02月01日
    浏览(51)
  • 【CEEMDAN-WOA-LSTM】完备集合经验模态分解-鲸鱼优化-长短时记忆神经网络研究(Python代码实现)

    目录 💥1 概述 1.1 完备集合经验模态分解原理 1.2 鲸鱼优化 1.3 LSTM 📚2 运行结果 🎉3 参考文献 🌈4 Python代码实现 1.1 完备集合经验模态分解原理 早期的 EMD 方法具有较强的自适应性,能够有效地分解时间序列;但是,算法在运算过程中 容易出现模态混叠现象。EEMD 分解方法

    2024年02月15日
    浏览(47)
  • 蜣螂优化(DBO)算法(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号: 启发式算法讨论 。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。 “ 今天

    2024年02月02日
    浏览(43)
  • 【ARIMA-WOA-LSTM】合差分自回归移动平均方法-鲸鱼优化-长短期记忆神经网络研究(Python代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 1.1 ARIMA模型 1.2 鲸鱼优化算法  1.3 LSTM 模型 📚2 运行结

    2024年02月09日
    浏览(99)
  • 基于蜣螂算法的无人机航迹规划-附代码

    摘要:本文主要介绍利用蜣螂算法来优化无人机航迹规划。 蜣螂搜索算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/128280084 ​ 环境模型的建立是考验无人机是否可以圆满完成人类所赋予各项任务的基 础和前提,其中第一步便是如何描述规划空间中的障碍物

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包