根据书Essentials of Metaheuristics 和本Stack Overflow thread,我应该在我应该杀死的人群中选择父染色体,以便为新的染色体腾出空间。我的问题来自你的经验,理想情况下,如果我的人口数量是100,我应该杀多少?或者如果我的人口规模是50?
注意:我在这里也假设number of offspring == number of parents to kill
答案 0 :(得分:1)
这个问题没有真正的“正确答案”,因为GA一般用于大型搜索空间的复杂问题。虽然你做出的假设是有效的(但很自然地,有空间来试验随着时间的推移增长/缩小人口的机制),回答你问题的唯一方法就是试验 - 设置你系统的许多不同副本,使用相同的适应度函数,并查看哪些设置最适合。
答案 1 :(得分:1)
我从一个或两个孩子开始,人口规模固定(1)。
稳态人群经常表现出过早的收敛问题,所以你应该使用一些技术来限制这个问题。
一些简单的想法是:
(1)至少最初。有许多论文描述了可变大小群体的优势,但它们引入了各种参数,这些参数难以调整并且需要更多的努力。
E.g。在“具有可变种群大小的遗传算法”(阿拉伯人)中,每个人都有一个年龄和一生。
答案 2 :(得分:1)
这取决于算法在每一代产生多少个后代。
例如,您有m
个父母个体,您称之为染色体。您生成n
个后代。现在你有m+n
个人,你应该保持你的人口规模。所以你需要选择n
个人来杀人。通常,您可以选择要杀死的最差n
个人。
根据我的经验,m
等于n
。