关于在遗传算法解码中遇到的矩阵生成问题
我在处理遗传算法的染色体的解码中遇到一下问题:例如:编码串【1| 010】 译为:【1 1】
【0|101】 译为:【0 0 0 0 0】
‘|’前的一位为码值;
‘|’后的三位转为十进制后即为码长;
于是我遇到一下问题
经过染色体处理后我得到染色体码值位矩阵
A=;
以及 码长矩阵
B=;
最终应得到
C = [ 1 1 ,0 , 1 1 1 ,1 1 ,0];
谢谢大家!
为提高效率还是考虑不用循环的好
[ 本帖最后由 eight 于 2008-5-12 17:33 编辑 ] 这个问题想了很久没头绪;
其就是产生【1 2 2 3 3 3 4 4 4 4】矩阵的问题。
不过 如果遗传算法采用二进制码的话解码就很容易,
如
bin =[ 1 1 1 0];
bit = cumprod(2*ones(length(bin) ,1),1)/2;
f = bin*bit(end:-1:1); 我也想了好一会,不过避不开循环;但觉得也不会太影响运行效率.
A=;
B=;
a=int2str(A');
for k=1:length(A),
C{k}=repmat(a(k),1,B(k));
end
disp(C);
'11' '0' '111' '11' '0'
页:
[1]