wh_creat_group.m

来自「遗传算法的matlab程序库 别人的辛勤劳动」· M 代码 · 共 34 行

M
34
字号
function y=wh_Creat_Group(End,Sample_Sum,Sample_Sum_Dimension)%产生初始群体,其中个体有相同的可能
% End=20;%数组(群体)元素值为1~End 
% Sample_Sum=20;%数组的行数
% Sample_Sum_Dimension=3;%数组的列数
while (1)
    B=round(End*rand(Sample_Sum,Sample_Sum_Dimension));
    T=0;%代表产生的数组满足要求,每个数组的元素之间值是互异的,并且值不为0 
    for i=1:Sample_Sum%判断每个行向量的各元素间互异
        for j=1:Sample_Sum_Dimension
            for k=1:Sample_Sum_Dimension
                if and((j~=k),(B(i,j)==B(i,k)))
                    T=1;
                end
            end %k
            if (B(i,j)==0)
                T=1;
            end
        end%j
    end%i
    if (T==0)
        break;
    end
end%while

for i=1:Sample_Sum%实现数组中行向量元素升序排序
    for j=1:Sample_Sum_Dimension
        for k=1:Sample_Sum_Dimension
            if (B(i,j)<B(i,k))
                TT=B(i,j);B(i,j)=B(i,k);B(i,k)=TT;
            end
        end %k
    end%j
end%i
y=B;%输出初始群体

⌨️ 快捷键说明

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