⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crossover.m

📁 kmeans算法,许多同学做毕设需要用到
💻 M
字号:
function [Pc]=Crossover(Ps,pc,data)
% 交叉操作
% input:
%       Ps    ---- 种群
%       pc    ---- 交叉概率
%       data  ---- 数据矩阵
% output:
%       Pc    ---- 交叉操作后的种群
%-------------------------------------------------------------------------%
N =size(Ps,1);                       % 染色体总数
d=size(data,2);                     % 染色体位数
for i=1:N
    r=rand;                          % (0,1)随机数
    if r<pc                          % 满足交叉概率
        chrom1=Ps(1,:);              % 第一个染色体chrom1
        pos=1+floor((16-1)*rand);     %随机产生交叉位
        nr=1+floor((N-1)*rand);      % 随机选取第二个染色体chrom2
        chrom2=Ps(nr,:);         
        temp=chrom1(pos:end);            % 两条染色体交叉
        chrom1(pos:end)=chrom2(pos:end);
        chrom2(pos:end)=temp;
        Ps(i,:)=chrom1;                %交叉后的染色体存储在种群中
        Ps(nr,:)=chrom2;
    end
end
Pc=Ps;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -