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

📄 select.m

📁 基本遗传算法求解TSP问题
💻 M
字号:
function y=select(gt,pathlength,alpha)
%选择复制操作,主要思想是基于排名的轮盘赌选择
%alpha越大,则越择优复制进入下一代,推荐alpha=0.1
%gt为种群,length为种群中各个路径的长度
[var1,var2]=size(gt);%var1是种群个数popsize,var2是城市个数citynum
gtb=gt;
[aftercost,aftersort]=sort(pathlength,2);%在行上排序,行向量,var1个元素
%aftercost为排序后的矩阵;
%aftersort为原矩阵的置换序列,标明排序后目前元素在原矩阵元素的位置
%只为了获得aftersort,一维数组

%???更新种群
for i=1:var1 %popsize
    gt(i,:)=gtb(aftersort(i),:);
end



gtb=gt;
for j=1:var1%popsize
    posibility(j)=alpha*(1-alpha).^(j-1);%指数
end


p=[0 cumsum(posibility)]; 
%cumsum累计求和;形成一维向量 
%生成刻度 

pmax=max(p);
for i=1:var1%popsize
    r=pmax*rand(1); %轮盘
    for j=1:var1
        if (r>p(j)&r<=p(j+1))
            y(i,:)=gtb(j,:);%选择复制
            break;
        end
    end
end

⌨️ 快捷键说明

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