📄 code.m
字号:
function ret=Code(lenchrom,opts,bound)
%本函数将变量编码成染色体,用于随机初始化一个种群
% lenchrom input : 染色体长度
% opts input : 编码方法
% bound input : 变量的取值范围
% ret output: 染色体的编码值
switch opts
case 'binary' % binary coding
flag=0;
while flag==0
pick=rand(1,sum(lenchrom));
bits=ceil(pick-0.5);
temp=sum(lenchrom)-1:-1:0;
ret=sum(bits.*(2.^temp)); %编码后以实数存入ret中
flag=test(lenchrom,bound,ret,opts); %检验染色体的可行性
end
case 'grey' % grey coding
flag=0;
while flag==0
pick=rand(1,sum(lenchrom));
bits=ceil(pick-0.5);
greybits=bits;
for i=2:length(greybits)
greybits(i)=bitxor(bits(i-1),bits(i));
end
temp=sum(lenchrom)-1:-1:0;
ret=sum(greybits.*(2.^temp)); %编码后以实数存入ret中
flag=test(lenchrom,bound,ret,opts); %检验染色体的可行性
end
case 'float' % float coding
flag=0;
while flag==0
pick=rand(1,length(lenchrom));
ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick; %线性插值,编码结果以实数向量存入ret中
flag=test(lenchrom,bound,ret,opts); %检验染色体的可行性
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -