非 2^N 整数的二进制编码

Binary encoding of non-2^N-integers

哪种方法最好way/proper 来处理无法编码为整数的整数幂且解范围无法简单扩展的整数?例如,我的限制可能是 6 而不是 8,因为只存在 6 种可能的结果: 000 -> 可能的结果,低适应度 001 -> -"-,更高的适应度 .. 011 -> 可能,高适应性 100 -> 可能,最高适应度 101 -> 不可行,适应度为零(?) 111 -> 不可行,适应度为零 (?)

谢谢&问候

我这样做的方式是,我包含一个条件语句,将所有超出范围的解决方案的适用性设置为 0,然后 "unselectable" 用于下一代。

例如(在 matlab 中):

    for i=1:population_size
        if bin2dec(population(i))>6
            population_fitness(i)=0
        end
        population_fitness(i)=bin2dec(population(i)/6
    end

这样,超出您边界的解决方案将被视为不可行,并且被下一代选择的概率为 0。