code.m
来自「用简单遗传算法SGA实现的关于控制图的程序」· M 代码 · 共 32 行
M
32 行
function ret=Code(lenchrom,opts,bound)
% In this function ,it converts a set varibles into a chromosome
% lenchrom input : length of chromosome
% opts input : tag of coding method
% bound input : boundary of varibles
% ret output: chromosome
switch opts
case 'binary' % binary coding
pick=rand(1,sum(lenchrom));
bits=ceil(pick-0.5);
temp=sum(lenchrom)-1:-1:0;
ret=sum(bits.*(2.^temp));
case 'grey' % grey coding
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));
case 'float' % float coding
flag=1;
while(flag)
pick=rand(1,length(lenchrom));
ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick;
if tiaojian(ret) % h2<h1 && k1<k2
flag=0; % 满足参数条件
end
ret(1)=fix(ret(1));
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?