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

时间:2016-08-09 05:32:11

标签: encoding integer genetic-algorithm

这是处理无法编码为2的全功率的整数的最佳方式/正确方法,并且解决方案范围不能简单地扩展?例如,我可能有6而不是8的限制,因为只存在6种可能的结果:     000 - >可能的结果,低适应性     001 - > - “ - ,更高的健康     ..     011 - >可能,高健身     100 - >可能,最高的健身     101 - >不可行,零适应度(?)     111 - >不可行,零适应度(?)

谢谢和亲切的问候

1 个答案:

答案 0 :(得分:1)

我这样做的方式是,我包含了一个条件语句,将所有超出范围的解决方案的适用性设置为0,然后使得#34;不可选择"为了下一代。

例如(在matlab中):

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

这样,超出界限的解决方案将被认为是不可行的,并且有可能被选择用于下一代。