【发布时间】:2014-06-17 15:36:47
【问题描述】:
大家好,我正在研究遗传算法以创建新一代。我遇到了以下问题:
这个问题涉及遗传算法。假设您的人口由 10 个人组成。每个个体由 5 位组成。这是初始种群。
x1 = (1, 0, 0, 1, 1)
x2 = (1, 1, 0, 0, 1)
x3 = (1, 1, 0, 1, 1)
x4 = (1, 1, 1, 1, 1)
x5 = (0, 0, 0, 1, 1)
x6 = (0, 0, 1, 1, 1)
x7 = (0, 0, 0, 0, 1)
x8 = (0, 0, 0, 0, 0)
x9 = (1, 0, 1, 1, 1)
x10 = (1, 0, 0, 1, 0)
根据适应度值对个人进行排名(x1 具有最大的适应度值,x2 次优,以此类推)。假设在抽样时,您以与排名相同的顺序获得个人。创建新一代解决方案,假设如下:
复制率为 20%。交叉是 80%(假设交叉掩码如下:11100;配对示例的顺序与排名相同)。没有进行任何突变。
我的解决方案:复制为 20%,这意味着前两个总体保持不变。接下来给定交叉掩码 11100 我从交叉(11100)掩码中随机选择 3 个单词,因此从 x3 和 x4 开始,这里我保留前 3 个单词x3 和 x4 相同,最后将剩余的最后两个单词交换为 x3 和 x4 并生成新的总体。我对 x5 和 x6、x7 和 x8 以及 x9 和 x10 遵循相同的规则。我不确定这个答案是正确还是错误。任何机构可以帮助我吗?
【问题讨论】:
-
20% 的复制意味着您的 20% 的个体将参与重组(在您的情况下为交叉)。我将交叉掩码理解为位于 bit1 和 bit2 之间的交叉点(单点交叉,位枚举为 (4,3,2,1,0) )。这意味着您从一个人那里获取 bit2-4,然后将它们与另一个人的 bit2-4 交换以创建您的后代。
标签: replication genetic-algorithm