📄 wh_zj_jun_yun.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 + -