【问题标题】:What is the difference between genetic and evolutionary algorithms?遗传算法和进化算法有什么区别?
【发布时间】:2011-02-22 19:41:59
【问题描述】:

遗传算法和进化算法有区别吗?

我读过多篇论文,谈论遗传或进化算法,虽然非常相似,但我认为它们可能不是一回事。

【问题讨论】:

    标签: algorithm genetic-algorithm evolutionary-algorithm


    【解决方案1】:

    遗传算法是一类进化算法。虽然遗传算法是最常遇到的进化算法类型,但还有其他类型,例如Evolution Strategy。因此,进化算法包括遗传算法等等。

    【讨论】:

    • 遗传算法似乎与 (μ/ρ+, λ)-ES 相同。两者都包括选择、变异和重组算子。两者都使用种群并在几代人中迭代改进。我不知道有什么区别。
    【解决方案2】:

    遗传算法使用交叉(因此名称中的“基因”)和变异来搜索可能解决方案的空间。

    进化编程主要使用变异。

    正如已经发布的那样,两者都是进化算法的类型。

    【讨论】:

    • 问题是关于遗传算法和进化算法之间的区别,但这似乎回答了“遗传算法和进化编程之间有什么区别?”的问题。
    【解决方案3】:

    来自 Z. Michalewicz 1996 -“遗传算法 + 数据结构 = 进化程序”[p.289]:

    进化程序大量借鉴了遗传算法。然而, 他们通过使用“自然”数据来整合特定问题的知识 结构和对问题敏感的“遗传”算子。基础的 GAs 和 EPs 之间的区别在于前者被归类为 弱的,与问题无关的方法,这不是 后者。

    因此,GA 应该能够解决使用 EP/EA 解决的任何问题,但 EP/EA 将无法解决 GA 解决的所有问题。 当然,要为 GA 的普遍性付出效率。

    此外,如果候选解决方案不直接相互交换信息,则算法似乎不是 EA/EP (D. Simon 2013 - "Evolutionary Optimization Algorithms" [p.243])。

    PS:D. Simon 2013 - "Evolutionary Optimization Algorithms" 是一本很棒的书!

    【讨论】:

      【解决方案4】:

      进化策略 (Rechenberg 1973) 和遗传算法 (Holland 1975) 基于达尔文进化论。进化策略是进化计算的基础,因此是进化算法。遗传算法 (GA) 原则上是 EA 的一个子类。

      与 EA 相比,GA 要求在计算表示(基因型)及其现实世界表示(表型)的意义上使用遗传表示。

      【讨论】:

        【解决方案5】:

        我知道这个帖子很旧,但我自己很难从一个地方理解它,因此在这里解释它。 遵循进化定律的算法称为“进化算法”。 EA有两个子类。一,遗传算法,使用交叉,变异作为遗传算法算子。二,进化编程,只使用变异作为算子。

        【讨论】:

          猜你喜欢
          • 2011-12-08
          • 1970-01-01
          • 2011-04-18
          • 2015-09-21
          • 2018-07-30
          • 2011-05-04
          • 1970-01-01
          • 2012-07-07
          • 2014-01-01
          相关资源
          最近更新 更多