混沌映射初始化種群之Logistic映射


Logstic混沌映射初始化種群

Step 1:
    隨機生成一個\(d\)維向量\({X_0}\),向量的每個分量在0-1之間。
Step 2:
    利用Logistic映射生成N個向量。Logistic映射如下:

\[X_{i+1}=\mu{X_{i}.*(1-X_{i})} \]

Step 3:
    將\(X\)的每個分量載波到變量的取值區間上

參數設置

Lb = -100;  % 搜索空間下界
Ub = 100;   % 搜索空間上界

N_iter = 1000;  % 最大迭代次數
n_pop = 30;  % 種群個數
d = 2; % 種群維度

利用混沌映射初始化種群

Z = zeros(n_pop, d);

% 隨機生成一個d維向量
Z(1, :) = rand(1, d);

% 利用logistic生成n_pop個向量
for i=2:n_pop
    Z(i,:) = 4.0*Z(i-1,:).*(1-Z(i-1,:));
end

% 將z的各個分量載波到對應變量的取值區間
pop = zeros(n_pop, d);
for i=1:n_pop
    pop(i,:) = Lb + (Ub - Lb)*Z(i,:);
end

figure 
scatter(pop(:,1), pop(:,2), 'r*');
box on

image

Logistic map的第二種寫法:

particlePosition(1,:) = random('Uniform',-100, 100, 1, 2);
particlePosition(1,:) = (particlePosition(1,:) + 100)/200;  %這是歸一化處理

for i=1:49
    particlePosition(i+1,:) = 4*particlePosition(i,:).*(1 - particlePosition(i,:));
end
particlePosition = particlePosition.*200 - 100;
figure
scatter(particlePosition(:,1), particlePosition(:,2));
box on

image
隨機初始化種群

particlePosition = random('Uniform',-100, 100, 50, 2);
figure
scatter(particlePosition(:,1), particlePosition(:,2), 'r*');
box on

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM