lilongduzhi 发表于 2008-5-9 11:56

关于在遗传算法解码中遇到的矩阵生成问题

我在处理遗传算法的染色体的解码中遇到一下问题:
例如:编码串【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 编辑 ]

lilongduzhi 发表于 2008-5-9 13:02

这个问题想了很久没头绪;
其就是产生【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);

wwbeyondww 发表于 2008-5-9 13:49

我也想了好一会,不过避不开循环;但觉得也不会太影响运行效率.

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]
查看完整版本: 关于在遗传算法解码中遇到的矩阵生成问题