混沌映射初始化種群之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
執行效果: