本文主要是介绍Tent映射(tent map),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、Tent映射是什么?
帐篷映射(tent map)是一个带有参数μ的函数,是一种分段的线性映射。
定义如下:
其中: µ ∈ (0, 2]为混沌参数,与混沌性成正比。
二、matlab实现
代码如下:
clc;clear all;close all
axis([0,1,0,1]);
x0=0.1;t=800;M=850;
r=0:0.002:1;
[m,n]=size(r);
hold on
for i=1:nif x0<0.5x(1)=2*r(i)*x0;endif x0>=0.5x(1)=2*r(i)*(1-x0);end
for j =2:Mif x(j-1)<0.5x(j)=2*r(i)*x(j-1);endif x(j-1)>=0.5x(j)=2*r(i)*(1-x(j-1));end
end
xn{i}=x;
pause(0.1);
plot(r(i),xn{i},'b.','Markersize',2);
xlabel('r');ylabel('x(i)');
end
运行结果
三、在优化算法中的应用
在优化算法中,初始化的种群在搜索空间内分布的越均匀,越有利于提高算法的寻优效率和求解精度。而由Tent映射产生的混沌序列具有良好的分布性和随机性。根据这样的特性,我们可以选择多个不同的初始值得到[0,1]之间的混沌序列y,在结合搜索空间的上下限转化到个体的搜索空间中,完成对种群的初始化。
其中,lb和ub分别为x的下限和上限。
这篇关于Tent映射(tent map)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!