⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 code.m

📁 我自己的遗传算法工具箱
💻 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 + -