并行 运行 用于遗传算法

parallel run for genetic algorithm

我有 GA,一个运行几代人的 for 循环,在这个 for 我有 while 用新的更好的人替换旧的人,我如何并行化这个?我找到了 this topic ,他们说我应该分成更小的部分,但是这部分是什么?

通常情况下,遗传算法中的绝大多数计算工作都涉及评估种群中每个个体的适应性。通常情况下,每个个体的适应度评估不依赖于当前一代种群中的任何其他个体。

因此,典型的并行化方法是并行评估一代内多个个体的适应度。

从一代转移到下一代时,您还可以轻松地并行创建新个体。每个人都可以选择其 parents 并与所有其他人并行执行交叉和变异步骤。

我还会注意到,在许多情况下,您会发现您想要 运行 多次进化(使用不同的初始条件或不同的参数设置)。当然,您可以 运行 non-parallelized 个并行的 GA 实例。