📜  遗传算法-父级选择(1)

📅  最后修改于: 2023-12-03 15:42:04.751000             🧑  作者: Mango

遗传算法-父级选择

什么是遗传算法?

遗传算法是一种模拟自然选择和遗传机制的计算模型。它通过模拟自然界的生物进化方式,在众多解决方案中寻找全局最优解或者局部最优解。遗传算法是优化问题的常用方法之一,尤其是在无法通过常规方法求解的复杂任务中,如TSP、VRP等问题。

父级选择是什么?

父级选择是遗传算法中的重要步骤之一,它用于选择优秀的个体作为下一代种群的父母。在父级选择中,我们通过一定的策略选择出种群中适应度较高的个体,将它们作为交配的父母,生产下一代种群。

常用的父级选择策略
轮盘赌选择

轮盘赌选择是一个比较简单的父级选择策略。它的原理是以适应度为权重在一个轮盘上投点,被选中的点所对应的个体即为所选个体。轮盘赌选择显示了种群中每个个体在进化中被选中的概率,与它们的适应度成正比。

具体实现:

  1. 首先计算每个个体的适应值,并将它们排列成适应值从大到小的顺序。

  2. 计算每个个体的选择概率。

    • 对于最优解 xbest,其被选择的概率为:p(xbest) = c · f(xbest),其中 c 为归一化常数,f(xbest) 为 xbest 的适应值。

    • 对于其他解 x,其被选择的概率为 p(x) = c · f(x),其中 c 为归一化常数,f(x) 为 x 的适应值。

  3. 将所有个体的选择概率相加,得到一个轮盘。将轮盘分成若干部分,每部分的大小分别为每个个体的选择概率。

  4. 在轮盘上随机投点,被选中的点所对应的个体即为选择的个体。

锦标赛选择

锦标赛选择是另一种常见的父级选择策略。它的原理是从种群中随机选择一定数量的个体,然后在它们中选择适应度最好的个体作为所选个体。锦标赛选择的主要优势在于它对于整个种群的适应度分布没有偏见,在某些情况下,可以得到更好的结果。

具体实现:

  1. 首先确定每场锦标赛比赛的个体数量 k。

  2. 随机选择 k 个个体作为本轮的选手,计算这 k 个个体的适应度值。

  3. 选择具有最高适应度的个体作为父母。

  4. 重复步骤 2-3 直到选出足够数量的父母。

总结

在遗传算法中,父级选择是非常重要的一步,它确定了子代种群基因的优秀程度。轮盘赌选择和锦标赛选择是两个常用的父级选择策略,它们各有优缺点,在不同的情况下选用不同的策略可以得到更好的结果。