我试图使用原始论文来实现自己的整洁,但是被卡住了。
比方说,我在上一代中有以下物种:
Specie 1: members: 100 avg_score: 100
Specie 2: members: 150 avg_score: 120
Specie 3: members: 300 avg_score: 50
Specie 4: members: 10 avg_score: 110
我现在对下一代的尝试。如下:
将物种得分设置为物种中每个基因组得分的平均值。
4.1通过杀死每个物种中最坏的90%进行繁殖。
4.2根据得分来选择物种。
4.3从该物种中选择2个基因组并繁殖一个新的基因组。
我不确定这是否是正确的尝试,尤其是当我“杀死”了90%的基因组时。 我现在是随机选择此百分比值(与概念有关)。
如果一个物种在被杀之后拥有0个成员。然后它灭绝了吗?
在给定的示例中,如果杀死90%,物种4可能会灭绝。
我的尝试正确吗,或者一个物种通常如何灭绝?
答案 0 :(得分:1)
首先,我强烈建议不要尝试从头开始实现NEAT。这比起初看起来要复杂得多(您可以随意查看许多可用实现的公共存储库)。
现在,要更具体地回答您的问题:
有很多NEAT口味。就您而言,您的疑虑似乎与精英主义的概念有关,是的,通常这是您需要设置的参数。通常,算法的工作原理如下:
请注意,物种形成是周期性地重新应用的(通常是每一代),因此物种并没有真正的明确定义(没有任何东西可以真正阻止将未改变地复制到下一代的优良基因组分配给新物种) )。
如果您使用固定的种群大小和k-均值物种,则无论什么情况,总会有k种。从某种意义上说,它们都是每次迭代的新物种。