遗传算法轮盘赌选择 - 返回 2 parent 条染色体
Genetic Algorithm roulette selection - returning 2 parent chromosomes
我想在我的 GA 算法中实现轮盘 selection。我尝试遵循指南 ,但它发回了新的人口而不是 2 个最好的 parent。假设我已经找到了初始种群的适应度分数,现在我需要 select 两条 parent 种群的染色体根据它们的适应度。更进一步,它适用于交叉和变异过程。在以下情况下,我如何根据轮盘 selection 找到 2 个最佳 parents 进行交叉?
population = [[text1],[text2],[text3],.....[textnum]]
fitnesses = [0.8057515980834005, 1.2151126619653638, 0.6429369518995411, ... 0.805412427797966]
num = 50
它不会送回新的人口,只是 num
parents。如果你想要 2 parents 调用 roulette_select
这样:
roulette_select(population, fitnesses, 2)
通常 GA 交叉运算符需要两个 parents,但有许多 parents 的变化(例如 具有 multi-parent 重组的遗传算法 - A.E。
艾本,P-E。 Raué,Zs。鲁特凯).
还有 self-crossover 个运算符。
所以有一个 num
输入参数是有意义的。
我想在我的 GA 算法中实现轮盘 selection。我尝试遵循指南 ,但它发回了新的人口而不是 2 个最好的 parent。假设我已经找到了初始种群的适应度分数,现在我需要 select 两条 parent 种群的染色体根据它们的适应度。更进一步,它适用于交叉和变异过程。在以下情况下,我如何根据轮盘 selection 找到 2 个最佳 parents 进行交叉?
population = [[text1],[text2],[text3],.....[textnum]]
fitnesses = [0.8057515980834005, 1.2151126619653638, 0.6429369518995411, ... 0.805412427797966]
num = 50
它不会送回新的人口,只是 num
parents。如果你想要 2 parents 调用 roulette_select
这样:
roulette_select(population, fitnesses, 2)
通常 GA 交叉运算符需要两个 parents,但有许多 parents 的变化(例如 具有 multi-parent 重组的遗传算法 - A.E。 艾本,P-E。 Raué,Zs。鲁特凯).
还有 self-crossover 个运算符。
所以有一个 num
输入参数是有意义的。