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 + -
显示快捷键?