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

📄 wh_zj_jun_yun.asv

📁 遗传算法的matlab程序库 别人的辛勤劳动
💻 ASV
字号:
function [y,p]=wh_ZJ_Jun_Yun(G_Sample_Sum,G_Sample_Sum_Dimension,End,Initial_Group)

while (1)%使产生的Judge不全为0或1
    Judge=round(rand(1,G_Sample_Sum_Dimension));%杂交判据,为1交换,为0不交换
    Judge_1=min(Judge);Judge_2=max(Judge);
    if and(Judge_1~=Judge_2)
        break;
    end
end

for i=1:G_Sample_Sum
    Sample_Selection(i)=i;
end

for i=1:G_Sample_Sum
while(1)%A------1
    Sample_Selection_Rand1=round(G_Sample_Sum*rand(1));
    Sample_Selection_Rand2=round(G_Sample_Sum*rand(1));
    if and(and((Sample_Selection_Rand1~=0),(Sample_Selection_Rand2~=0)),(Sample_Selection_Rand1~=Sample_Selection_Rand2))
        break;
    end
end%A---while
Sample_Selection_T=Sample_Selection(Judge_Rand1);
Sample_Selection(Judge_Rand1)=Sample_Selection(Judge_Rand2);
Sample_Selection(Judge_Rand2)=Sample_Selection_T;
end

while(1)%B------产生杂交的初始条件
    ZJ_Sample_Rand1=round(G_Sample_Sum*rand(1));%ZJ_Sample_Rand1,ZJ_Sample_Rand2产生变异个体元素的位置
    ZJ_Sample_Rand2=round(G_Sample_Sum*rand(1));
    if and(and((ZJ_Sample_Rand1~=0),(ZJ_Sample_Rand2~=0)),(ZJ_Sample_Rand1~=ZJ_Sample_Rand2))
        break;
    end
end%B---while

BF_Initial_Group_1=Initial_Group(ZJ_Sample(ZJ_Sample_Rand1),:);%保存要杂交的个体,如果杂交不成功,还要将其恢复  
BF_Initial_Group_2=Initial_Group(ZJ_Sample(ZJ_Sample_Rand2),:); 

for i=1:G_Sample_Sum_Dimension%开始杂交
    if (Judge(i)==1)
        Judge_T=Initial_Group( Judge(ZJ_Sample_Rand1),:); 
        Initial_Group( Judge(ZJ_Sample_Rand1),:)=Initial_Group( Judge(ZJ_Sample_Rand2),:); 
        Initial_Group( Judge(ZJ_Sample_Rand2),:)=Judge_T; 
    end
end

for i=1:G_Sample_Sum%完成变异的个体中的元素升序排列
    for j=1:G_Sample_Sum_Dimension
        for k=1:G_Sample_Sum_Dimension
            if (Initial_Group(i,j)<Initial_Group(i,k))
                TT=Initial_Group(i,j);Initial_Group(i,j)=Initial_Group(i,k);Initial_Group(i,k)=TT;
            end
        end %k=1:G_Sample_Sum_Dimension
    end%j=1:G_Sample_Sum_Dimension
end%i=1:G_Sample_Sum

⌨️ 快捷键说明

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