?? decode.m
字號:
function ret=Decode(lenchrom,bound,code,opts)
% 本函數對染色體進行解碼
% lenchrom input : 染色體長度
% bound input : 變量取值范圍
% code input :編碼值
% opts input : 解碼方法標簽
% ret output: 染色體的解碼值
switch opts
case 'binary' % binary coding
for i=length(lenchrom):-1:1
data(i)=bitand(code,2^lenchrom(i)-1); %并低十位,然后將低十位轉換成十進制數存在data(i)里面
code=(code-data(i))/(2^lenchrom(i)); %低十位清零,然后右移十位
end
ret=bound(:,1)'+data./(2.^lenchrom-1).*(bound(:,2)-bound(:,1))'; %分段解碼,以實數向量的形式存入ret中
case 'grey' % grey coding
for i=sum(lenchrom):-1:2
code=bitset(code,i-1,bitxor(bitget(code,i),bitget(code,i-1)));
end
for i=length(lenchrom):-1:1
data(i)=bitand(code,2^lenchrom(i)-1);
code=(code-data(i))/(2^lenchrom(i));
end
ret=bound(:,1)'+data./(2.^lenchrom-1).*(bound(:,2)-bound(:,1))'; %分段解碼,以實數向量的形式存入ret中
case 'float' % float coding
ret=code; %解碼結果就是編碼結果(實數向量),存入ret中
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -