gpt4 book ai didi

genetic-algorithm - 在遗传算法中选择 parent 进行交叉?

转载 作者:行者123 更新时间:2023-12-02 07:04:58 31 4
gpt4 key购买 nike

首先,这是作业的一部分。

我正在尝试实现一种遗传算法。我对选择 parent 进行交叉感到困惑。

在我的笔记中(显然有问题)这是作为示例所做的;

  1. Pc(交叉的可能性)* 种群大小 = 估计的交叉染色体数(如果不是偶数,则四舍五入到最接近的偶数之一)
  2. 为每条染色体选择一个 [0,1] 范围内的随机数,如果该数字小于 Pc,则选择该染色体作为交叉对。

但是当应用第二步时,选择的染色体数等于第一步找到的结果。由于随机性,这并不总是得到保证。

所以这没有任何意义。我搜索了选择 parent 进行交叉,但我发现的只是交叉技术(一点、切割和切片等)以及如何在所选 parent 之间进行交叉(我对这些没有问题)。我只是不知道应该选择哪个染色体进行交叉。有什么建议或简单的例子吗?

最佳答案

你可以这样实现:

对于每个新的 child ,你决定它是否会由随机概率交叉产生。如果是,那么您选择两个 parent ,例如。通过轮盘赌选择或锦标赛选择。两个 parent 生了一个 child ,然后你用变异概率对其进行变异并将其添加到下一代。如果不是,那么您只选择一个“父代”克隆它,以概率对其进行变异并将其添加到下一个种群中。

我注意到的其他一些观察结果,我想发表评论。当它应该是个体时,我经常读到“染色体”这个词。你几乎从不选择染色体,而是选择完整的个体。染色体只是解决方案的一部分。这可能是吹毛求疵,但解决方案不是染色体。解决方案是由若干染色体组成的个体,这些染色体由以等位基因形式显示其表达的基因组成。通常一个人只有一个染色体,但仍然不能混合术语。

我还注意到您标记了遗传编程,它基本上只是一种特殊类型的遗传算法。在 GP 中,您将树视为可以表示数学公式或计算机程序的染色体。不过,您的问题似乎与 GP 无关。

关于genetic-algorithm - 在遗传算法中选择 parent 进行交叉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14011844/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com