code.m
来自「MATLAB的遗传算法工具」· M 代码 · 共 25 行
M
25 行
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
pick=rand(1,length(lenchrom));
ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick;
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?