我正在用 C++ 编写遗传算法,在搜索了各种 GA'a 运算符(选择、交叉、变异)的方法后,我提出了一个疑问。假设我的初始人口为 500。我的选择将包括获得前 20%(基于最佳适应度)。所以我让100个人交配。当我做交叉时,我会得到 2 个孩子,他们一起有 50% 的存活率。到目前为止,一切都很好。我开始突变,一切正常。现在当我开始选择下一代时,我看到我有很多孩子(在这种情况下,如果你想知道的话,是 4950)。现在的问题是,每次运行 GA 时,如果我将所有孩子都传给下一代,每代的个体数量将成倍增加。
我在这里要问的是,是否有选择孩子来填补新一代,或者我应该以某种方式选择(也许减少)父母来交配,这样我最终就不会得到这么多孩子。
谢谢 :)