基于Tent混沌映射的麻雀搜索算法
文章目录
- 基于Tent混沌映射的麻雀搜索算法
- 1.Tent映射
- 2.基于Tent映射的麻雀搜索算法
- 3.算法结果:
- 4.Matlab代码
- 5.Python代码
1.Tent映射
图1.Tent映射形态
Tent 映射又称帐篷映射,是一种分段线性映射函数。之所以称为“帐篷”,是因为它的映射形态图形状类似一个帐篷,如图1 所示。Tent 映射结构简单,且映射呈现的结果分布密度比较均匀,具有有很好的遍历性。表达式为:
这是在取参数 a=5.0 时的表达式。Tent 映射原本的数学表达式是:
其中,当 a∈)1,0( , xn∈)1,0( 时,系统处于混沌状态下。可以从它的表达式看出,Tent 算法涉及的参数较少,操作比较简单。这里,设置系数 a=3.0 ,,初始值 x =0.32 ,将 Tent 映射迭代 200 次,得到的[0,1]区间范围内值的分布情况图如 2所示中可以看出,Tent 映射分布较均匀,在(0,1)区间内都有取值。
图2.Tent映射分布图
2.基于Tent映射的麻雀搜索算法
基础麻雀算法的具体原理参考,我的博客
该改进主要是在初始化种群时,利用Tent映射初始化种群
算法流程
Step1: 利用Tent映射策略初始化种群,迭代次数,初始化捕食者和加入者比列。
Step2:计算适应度值,并排序。
Step3:麻雀更新捕食者位置。
Step4:麻雀更新加入者位置。
Step5:麻雀更新警戒者位置。
Step6:计算适应度值并更新麻雀位置。
Step7:是否满足停止条件,满足则退出,输出结果,否则,重复执行Step2-6;
3.算法结果:
4.Matlab代码
5.Python代码