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

📄 wh_creat_group_xin.m

📁 遗传算法的matlab程序库 别人的辛勤劳动
💻 M
字号:
function [y,M]=wh_Creat_Group_Xin(End,Sample_Sum,Sample_Sum_Dimension)%产生初始群体,其中个体有相同的可能
% End=12;%数组(群体)元素值为1~End 
% Sample_Sum=50;%数组的行数
% Sample_Sum_Dimension=3;%数组的列数    
B=round(End*rand(Sample_Sum,Sample_Sum_Dimension));
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


for i=1:Sample_Sum%判断每个行向量的各元素间互异
    while (1)
        T=0;%代表产生的数组满足要求,每个数组的元素之间值是互异的,并且值不为0         
        for j=1:Sample_Sum_Dimension
            for k=1:Sample_Sum_Dimension
                if and((j~=k),(B(i,j)==B(i,k)))
                    T=1;B(i,j)=round(End*rand(1));B(i,k)=round(End*rand(1));break;
                end
            end %k
                if or((B(i,j)==0),(T==1))
                    T=1;B(i,j)=round(End*rand(1));break;
                end
        end%j
                
        if (T==0)
            break;
        end
    end%while
end%for i=1:Sample_Sum

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

M=0;
for i=1:Sample_Sum
    for j=i+1:Sample_Sum
        if (B(i,:)==B(j,:))
           M=M+1;
        end
    end
end
y=B;%输出初始群体

⌨️ 快捷键说明

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