initpop.asv

来自「遗传算法用于解决多目标排课的优化问题,是一个好算法」· ASV 代码 · 共 30 行

ASV
30
字号
% 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
    rand1=rand;
    rand2=rand;
    if rand1<rand2
        pop(i,:)=['1'];
    else
        pop(i:,)=['0'];
    end
    for j=1:chromlength
        rand3=rand;
        rand4=rand;
        if rand1<rand2
            pop(i,:))=[pop(i,:),'1'];
        else
            

           
      

⌨️ 快捷键说明

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