gusucode.com > 改进的遗传算法的课表编排功能matlab源码程序 > 改进的遗传算法的课表编排功能/改进的遗传算法的课表编排功能/排课/initpop.m
% 2.1初始化(编码) % initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度), % 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 %遗传算法子程序 %Name: initpop.m %初始化 function pop=initpop(popsize,chromlength) %pop=round(rand(popsize,chromlength)); % rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵, %round对矩阵的每个单元进行圆整。这样产生的初始种群。 %因为要产生的群体染色体单元储存的就是一张课表,而一张课表的信息量就有161*40*27个元素,这已经远远朝超出了rand的计算范围,因此将数字矩阵转 %化为字符矩阵,组建染色体 for i=1:popsize for j=1:chromlength rand1=rand; rand2=rand; if rand1<rand2 pop(i,j)=['1']; else pop(i,j)=['0']; end end end