【问题标题】:Crossover probability in genetic algorithms遗传算法中的交叉概率
【发布时间】:2016-09-05 07:20:43
【问题描述】:

遗传算法中交叉概率的意义何在?

遗传算法的一般过程是:(source)

首先生成一个初始种群。然后使用一种选择方法(在本例中为锦标赛选择)来选择一对将创建一对孩子的个体。

将孩子添加到孩子群体中,直到其大小达到所需值。

下一步是合并大小为 N 的父母群体和大小为 M 的子群体,或者通过一个替换另一个,保留两个群体中最好的 N 个个体。

N = population size
P = create parent population by randomly creating N individuals
while not done
    C = create empty child population
    while not enough individuals in C
        parent1 = select parent   ***** HERE IS WHERE YOU DO TOURNAMENT SELECTION *****
        parent2 = select parent   ***** HERE IS WHERE YOU DO TOURNAMENT SELECTION *****
        child1, child2 = crossover(parent1, parent2)
        mutate child1, child2
        evaluate child1, child2 for fitness
        insert child1, child2 into C
    end while
    P = combine P and C somehow to get N new individuals
end while

当然,我们可能希望以给定的概率执行突变,例如每 100 个孩子中就有 1 个发生突变。

但我没有看到交叉率的意义。当一对父母在锦标赛选择中被选中并且没有发生交叉时会发生什么?是否应该将父母添加到儿童群体中?在这种情况下,我们最终会在父母和孩子人口中出现重复的成员。

这里的目标是在每一代中创造尽可能多的孩子,并且必须通过交叉来实现。如何更改此算法以使交叉率有意义?

如果交叉概率是 100%,那么所有后代都是由 交叉。如果为 0%,则整个新一代是由精确副本制成的 来自老年人群的染色体(但这并不意味着 新一代也一样!)。 Source

如果交叉概率为 0%,则整个世代都是由来自旧种群的染色体的精确副本组成的。那为什么新一代一样呢?

【问题讨论】:

  • “那新一代怎么不一样了?”突变。
  • @JohnColeman 它说新染色体是旧种群染色体的精确副本,所以肯定不是。
  • 他们可能说错了,但即使将突变率和概率都设为 0,也不是人口中的每个成员都会繁殖,因此整个人口仍然会发生变化。

标签: algorithm genetic-algorithm crossover


【解决方案1】:

这取决于应用程序,遗传算法不需要以严格的方式实现。您可以看到伪代码中有许多模糊的陈述。

在这个例子中,如果没有发生交叉,父母和孩子是相同的,并且像往常一样应用突变步骤。这不是问题,因为主循环将被评估很多次,因此会有足够的交叉。主要目标是改善学习,创建大量孩子可能不一定在每个应用程序中都能实现这一目标。

一个例子是,激进的跨界实际上可能会腐蚀一些非常好的父母,从而降低学习质量。交叉率可以在一定程度上保护这一点,但正如我所说,这取决于应用程序。

最好的。

【讨论】:

  • 假设期望的种群规模是 N,每一代。我们可以简单地运行一个从 1 到 N 的循环,每次找到一对父母(使用锦标赛选择),以给定的概率执行交叉,如果发生,则以给定的概率执行突变 - 并将两个孩子都添加到下一代。如果没有发生交叉,我可以将父母双方都添加到下一代人口中。我想这是最有意义的?
【解决方案2】:

新生代中的所有孩子都是老年代中一位父母的“克隆”。但是即使你有4个父母的染色体是“A、B、C、D”,你也可以有6个孩子的染色体是“A、A、A、C、C、D”,所以他们是不一样的。

PS : 当然,如果应用了变异,那么差异就更大了。

【讨论】:

  • 所以假设我选择两个父母进行交叉,并决定是否进行交叉。如果决定是否定的,那么我应该将父母双方的克隆添加到新种群中吗?但如果我正确理解,我仍然可以对这些克隆执行突变。
猜你喜欢
  • 2011-02-22
  • 2019-05-26
  • 2012-06-02
  • 2011-10-11
  • 2014-02-07
  • 2014-08-12
  • 2016-08-31
  • 1970-01-01
相关资源
最近更新 更多