提问者:小点点

遗传算法选择与交叉问题


我已经使用自己的遗传算法一段时间了,我使用随机选择和精英主义(前10%左右)来获得50%的人口。然后我做交叉以产生接下来的50%,当然接下来是突变。这听起来很奇怪,但它让我在我的问题上走得足够远,现在对此感到满意。

我想开始使用更精细的选择方法,特别是排名选择。我还想使用交叉概率。

我的问题是:

  1. 进行排名选择时,每个人是否只允许选择一次

共1个答案

匿名用户

  1. 进行排名选择时,每个人是否只允许选择一次

嗯,如果每个个体只被选中一次,你必须复制整个种群来形成新的种群。在排名选择中,您只需根据概率选择与个人排名成比例的概率,并让机会决定是否或哪个个人被复制更多次。

看情况。如果你有一个所谓的代际计划,你总是产生一个全新的人口,完全取代旧的人口。这个新人口的成员来自这四个“来源”:

  • 精英直接从父种群复制。
  • 从既没有交叉也没有变异(即直接复制)的亲本群体中选择的个体。
  • 从杂交但未变异的父母群体中选择的父母的孩子。
  • 从父母群体中选择并杂交的变异孩子。

另一方面,你可以有一个所谓的稳态方案。在这个方案中,在每次迭代中,你只选择足够的个体来执行交叉,交叉(如果概率允许),变异(如果概率允许),然后你以某种方式将它们放回原始种群。这意味着必须有人被扔掉。这可能是父母或孩子(如果其中一个比另一个差),或者根据您的替换策略,是人口中的任意成员。你可以做例如“反向”选择,也就是说,选择概率反过来(最坏的得到最高,而最好的得到最低)。

最后一点——在GAs领域,你想出的几乎任何机制都可能适用于你的特定问题,也可能不适用。你只要试试。毕竟这是一种随机方法。