-1

我想在我的 GA 算法中实现轮盘选择。我尝试按照指南https://stackoverflow.com/a/5315710/536474进行操作,但它返回的是新人口而不是 2 个最好的父母。假设我已经找到了初始种群的适应度分数,现在我需要根据它们的适应度为一个种群选择两个父染色体。更进一步,它适用于交叉和突变过程。在以下情况下,如何根据轮盘选择找到 2 个最佳交叉父母?

population = [[text1],[text2],[text3],.....[textnum]]
fitnesses = [0.8057515980834005, 1.2151126619653638, 0.6429369518995411, ... 0.805412427797966]
num = 50
4

1 回答 1

1

它不会送回新的人口,只是num父母。如果你想要 2 位父母roulette_select这样打电话:

roulette_select(population, fitnesses, 2)

通常 GA 交叉算子期望两个亲本,但有许多亲本的变化(例如,具有多亲本重组的遗传算法 - AE Eiben、PE. Raué、Zs. Ruttkay)。

还有自交叉算子。

所以有一个num输入参数是有意义的。

于 2015-07-02T08:35:27.283 回答