混沌映射初始化种群之Sin映射
step1:
随机生成一个d维向量X(0),向量的每个分量在0-1之间
step2
利用Sin映射生成N个向量。Sin映射如下
X(i+1) =sin(2/X(i))
step3
将X的每个分量载波到变量的取值区间上
1 lb = -100;% 搜索空间下界 2 ub = 100; %搜索空间上界 3 4 N_ITER = 1000; 5 n_pop = 50; 6 d = 2; 7 8 %%利用混沌映射初始化种群 9 Z = zeros(n_pop,d); 10 11 %随机生成一个d维向量 12 Z(1,:) = rand(1,d); 13 14 %利用Sin map生成n_pop个向量 15 for i = 2:n_pop 16 Z(i,:) = sin(2./Z(i-1,:)); 17 end 18 19 % 将z的各个分量载波到对应变量的取值区间 20 pop =zeros(n_pop,d); 21 for i = 1:n_pop 22 pop(i,:) = lb+(ub-lb)*abs(Z(i,:)); 23 end 24 25 figure 26 scatter(pop(:,1),pop(:,2),'r*') 27 box on
执行效果: