自行切换混沌映射,代码如下:
Lb = -1; % 搜索空间下界
Ub = 1; % 搜索空间上界
N_iter = 500; % 最大迭代次数
N = 30; % 种群个数
dim = 2; % 种群维度
Z = zeros(N, dim);
% 随机生成一个d维向量
Z(1, :) = rand(1, dim);
% 利用logistic生成N个向量
for i=2:N
Z(i,:) = 4.0*Z(i-1,:).*(1-Z(i-1,:));
end
% 将z的各个分量载波到对应变量的取值区间
pop = zeros(N, dim);
poprand = zeros(N, dim);
p=rand(N,dim);
for i=1:N
pop(i,:) = Lb + (Ub - Lb)*Z(i,:);
.
.
.
.
end
figure
scatter(pop(:,1), pop(:,2), 'm*');
hold on
scatter(poprand(:,1), poprand(:,2), 'ro');
title('混沌映射初始化种群对比')
xlabel('x');
ylabel('y');
legend('logistic混沌映射','随机初始化种群')
axis tight
grid on
box on