wh_zj1.m
来自「遗传算法的matlab程序库 别人的辛勤劳动」· M 代码 · 共 28 行
M
28 行
function y=wh_ZJ(Initial_Group,G_Sample_Sum,G_Sample_Sum_Dimension)
%G_Sample_Sum群体中个体总数
for i=1:G_Sample_Sum
ZJ_Sample(i)=i;%生成杂交采样数组
end
Count=G_Sample_Sum*2;
for i=1:Count
while(1)%A------产生杂交的初始条件
ZJ_Sample_Rand1=round(G_Sample_Sum*rand(1));%ZJ_Sample_Rand1,ZJ_Sample_Rand2产生变异个体元素的位置
ZJ_Sample_Rand2=round(G_Sample_Sum*rand(1));
ZJ_Position=round(G_Sample_Sum_Dimension*rand(1));
if and(and((ZJ_Sample_Rand1~=0),(ZJ_Sample_Rand2~=0)),and((ZJ_Position~=0),(ZJ_Sample_Rand1~=ZJ_Sample_Rand2)))
break;
end
end%A---while
if and((ZJ_Sample(ZJ_Sample_Rand1)~=0),(ZJ_Sample(ZJ_Sample_Rand2)~=0))
for i=1:ZJ_Position
T=Initial_Group(ZJ_Sample(ZJ_Sample_Rand1),ZJ_Position);
Initial_Group(ZJ_Sample(ZJ_Sample_Rand1),ZJ_Position)=Initial_Group(ZJ_Sample(ZJ_Sample_Rand2),ZJ_Position);
Initial_Group(ZJ_Sample(ZJ_Sample_Rand2),ZJ_Position)=T;
end%i
ZJ_Sample(ZJ_Sample_Rand1)=0;ZJ_Sample(ZJ_Sample_Rand2)=0;
end
end
y=Initial_Group;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?