非常非常实用!不能错过,独家原创,9种很少人听过,但却实用的混沌映射!!!以鲸鱼混沌映射为例,使用简便

很多人在改进的时候,想着增加混沌映射,增加初始种群的多样性,可是,大多数论文中常见的映射,都被别人使用了,或者不知道被别人有没有使用,

本文介绍9种很少人知道,但非常实用混沌映射,其中有几种是改进型,有几种是原本映射。

此代码本人独家原创!倒卖必究!!!,我把每个映射,都封装成一个函数了,使用简便!

如图initialization1-9为以下9种混沌映射,initialization为伪随机初始化,WOA是鲸鱼算法,CWOA是混沌鲸鱼算法。直接运行main函数即可,如果想用其他映射,只需要在CWOA中改下数字。

结构简单,也可以直接复制,在其他想改进的算法中使用。

  1. Logistic-tent混沌映射

2.Tent-Logistic-Cosine混沌映射

3.SPM映射,非常均匀

4.Sinusoidal 混沌映射,是经典混沌映射之一。

5.二维Henon混沌映射,

6.Funch映射

7.Singer映射 ,作为混沌映射的典型代表,数学形式简单,具有遍历性和随机性。

8.高斯映射。

9.Iterative 映射

每种映射里面有相应的参考文献,可根据参考文献查看相应的公式和原理,也可以自行搜索原理,使用其他参考文献。

改进时添加混沌映射有用吗?

混沌映射(Chaotic Mapping)可以用于初始化粒子群算法的种群。混沌映射的特点是具有随机性、敏感性和确定性混合,因此可以提供一些不错的初始值,有助于增加算法的全局搜索性能。以下是混沌映射在初始化粒子群算法种群中的一些潜在作用:

**1.增加种群的多样性:**混沌映射生成的随机数序列具有较强的随机性,可以在种群中引入更多的多样性。这有助于避免算法陷入局部最优解,提高全局搜索能力。

**2.提高全局搜索性能:**混沌映射的敏感性和迭代特性有助于使粒子群算法在初始阶段更好地探索搜索空间。通过使用混沌映射生成的初始值,可以增加算法的全局搜索性能。

**3.避免重复初始化:**由于混沌映射生成的数值较为独特,使用混沌映射初始化可以减少种群中个体初始值的重复情况,提高算法的探索效率。

4.改善算法的收敛速度:混沌映射生成的初始值有助于使粒子群算法更快地朝着全局最优解方向收敛。这可以缩短算法的收敛时间,提高效率。

**5.适用于高维问题:**混沌映射可以生成高维空间中的随机数序列,适用于高维问题的初始化。这对于那些具有大量决策变量的优化问题是有益的。

尽管混沌映射在初始化粒子群算法中有一些潜在的优势,但其效果可能取决于具体的问题和算法设置,所以有些函数里面效果不一定优于原算法。在一些情况下,简单的随机初始化也可能达到良好的效果。因此,是否使用混沌映射初始化种群取决于具体问题的性质以及对算法性能的需求 。在实践中,可以进行实验比较,评估使用混沌映射初始化和不使用的效果。

下面是SPM混沌映射的混沌值和频数分布,分布十分均匀,效果极佳!

下面以鲸鱼优化算法为例,采用Sinusoidal 混沌映射:

是否进行种群混沌初始化?

混沌映射作为一种初始化手段,确实可以增加算法的多样性和全局搜索性能,但在算法的后续迭代中,最终结果仍然受到算法自身的迭代更新和搜索策略的影响。即使是在初始化时采用了混沌映射,后续迭代中的搜索空间探索和个体更新仍然可能导致最终结果的不同。

正如我所指出的,随机生成的粒子也有一定概率在后续迭代中表现更好。因此,混沌映射作为一种初始化手段,并不是绝对必要的,而是一种可能有助于提高算法性能的选择。在实践中,对于不同的问题和算法,可以进行多次实验,通过比较使用混沌映射和不使用的结果,来确定是否采用混沌映射作为初始化的一部分。

总体来说,混沌映射是一种引入随机性的手段,用于增加算法的多样性和全局搜索能力,但并非适用于所有情况。在选择初始化方法时,需要综合考虑问题特性、算法性能和实验结果。

matlab源码获取,关注个人公众号:算法仓库,后台回复:CWOA

相关推荐
the3clipse4 分钟前
H.265熵编码核心:CABAC自适应二进制算术编码详解——如何将语法元素高效压缩为比特流
人工智能·算法·视频编码·h.265·hevc·cabac·cavlc
CQU_JIAKE6 分钟前
10.4【A】
算法
Godspeed Zhao23 分钟前
现代智能雷达技术19——算法(5)
算法
(Charon)24 分钟前
【C++面试】RAII到底是什么:从资源管理理解C++对象生命周期
c++·算法·面试
Omics Pro33 分钟前
之江实验室NAR|虚拟细胞3阶段训练范式
数据库·人工智能·算法·机器学习·自然语言处理
Tisfy38 分钟前
LeetCode 0678.有效的括号字符串:O(n)+O(1)一次遍历
算法·leetcode·字符串·题解·贪心·括号匹配
小O的算法实验室43 分钟前
IEEE TEVC,学习辅助的搜索路径重构进化算法
学习·算法·重构
Liuchang09111 小时前
洛谷 P2670 [NOIP 2015 普及组] 扫雷游戏
c++·算法·游戏
言乐61 小时前
Python体现逻辑回归和决策树的区别
开发语言·python·算法·决策树·逻辑回归
HugoStudio_SWAN1 小时前
洛谷 B4575 [GESP202609 二级] 直角三角形——临场定义理解与边界质疑
c++·学习·程序人生·算法