是否可以单独进化一部分人口?

人工智能 遗传算法 进化算法 基因编程 岛屿模型
2021-10-26 05:45:37

在遗传算法的经典示例中,您将拥有一个种群和一定量的模拟时间来评估它和繁殖。然后继续下一代。

在模拟过程中,是否有可能让一小部分人口孤立地在他们自己的小岛上进化一段时间,而其他人口继续正常进化?在那之后,他们可以与其他人团聚,模拟结束。之后,繁殖种群并继续。

这是自然进化的一个非常重要的部分,可能有些人知道它是否真的适用于基​​因编程?

3个回答

在岛屿模型领域的进化计算中已经进行了广泛的研究,为此做好了准备。

这种方法的优点包括更大的人口多样性(当问题是多目标时特别有用)和每个单独人口同时执行的潜力。

另请参阅问题的答案什么是利基方案?.

具体参考遗传编程这里有一篇最近使用平行岛模型的论文。

NietzscheanAI 提到的岛屿模型和生态位是众所周知的隔离种群的方法。然而,随着个体从一个群体迁移到另一个群体,这些群体并不是真正孤立的。在这些情况下,取决于用于对父母进行抽样以进行交叉迁移的抽样策略,个体可能会主导种群,从而导致快速收敛。

共同进化是一种真正孤立的种群方法,由 Reed 等人首先引入。1967年。存在两种协同进化,即合作协同进化和竞争协同进化。虽然混合模型存在共同进化的岛屿,例如这里这里,但通常共同进化是孤立的,不会迁移个体。

合作的共同进化让两个或更多的群体一起工作来解决一个问题,而竞争性的共同进化在一个群体的收益是另一个群体的损失的情况下竞争。

通常,适应度函数从显式变为隐式,并使用各种技术来做到这一点。

想要查询更多的信息

增强拓扑的神经进化 (NEAT)和由 Ken Stanely 开发的算法,通过将种群划分为物种来实现这一点。这是通过存储每个基因(节点/连接)的创新编号来完成的。当通过突变添加以前从未使用过的结构时,创新数会增加,通过这样做,您可以通过比较创新数来计算任意两个基因组之间的历史兼容性距离。这样做是因为添加新结构最初可能会损害基因组的适应性,但经过一些优化后实际上可能会变得有价值。通过使用这种结构集中的物种形成,新结构得到保护,因为精英主义是在单个物种而不是整个种群中处理的。