conaffinnew.m
来自「免疫遗传算法用于搜索全局最优解,经验证具有很好的效率和收敛性」· M 代码 · 共 26 行
M
26 行
% 计算亲和度和浓度
function Con_one = conaffinnew(oldpop,i)
popsize = length(oldpop);
lchrom = length(oldpop(1).chrom);
Con_one = 0;
for ii = 1:popsize
for j = 1:lchrom
if oldpop(i).chrom(1) == oldpop(ii).chrom(j)
Temppop = arrayshift(oldpop(ii).chrom,j);
% 根据对应相减后的零元素的数目确定亲和度
zlchrom = lchrom - nnz(Temppop-oldpop(i).chrom);
if zlchrom < lchrom/2
Temppop = fliplr(Temppop);
Temppop = arrayshift(Temppop,lchrom);
zlchrom2 = lchrom - nnz(Temppop-oldpop(i).chrom);
if zlchrom < zlchrom2
zlchrom = zlchrom2;
end
end
Con_one = Con_one + zlchrom/(lchrom*popsize);
break
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?