【问题标题】:Genetic algorithm, is elitism necessary if crossover is low?遗传算法,如果交叉率低,是否需要精英主义?
【发布时间】:2013-07-26 19:41:07
【问题描述】:

我想知道 GA 的跨界阶段。据我了解,0.7 => 70% 发生交叉的机会是一个典型的开始值。如果你父母的选择过程是基于返回的特定染色体的适应度,那么最适染色体很有可能通过并且没有经历交叉,那么精英主义真的有必要吗?

我还需要应用过滤器来去除每一代的重复染色体吗?

【问题讨论】:

    标签: genetic-algorithm


    【解决方案1】:

    即使交叉率很高,并且选择更高的染色体进行交叉的选择过程也总是有机会(无论多么小),你会从一代到下一代失去最好的染色体。精英主义意味着一旦找到了好的结果,它就会一直留在人群中,直到找到更好的结果。

    无论失去最佳结果的可能性有多大,使用安全防护以确保它永远不会发生总是一个好主意。

    关于去除重复染色体,这不是必需的,但它通常可以确保种群不会变得陈旧并且不会填充相同的染色体。通常,我应用一个函数,它不会在每一代而是在给定的代数之后删除重复的染色体。这主要是为了提高算法的整体速度,但如果需要,可以在每一代都实施。

    随着突变率的提高,删除重复项也变得不太必要,因为突变本身会阻止种群被所有相同的染色体填充。就个人而言,我更喜欢同时应用重复删除和突变,尽管它们有效地执行相同的任务。以我的经验,虽然遗传算法的多样性总是好的,所以对同一任务使用不同的函数通常可以产生更好的结果。

    【讨论】:

    • 非常感谢您的洞察力,非常感谢:)。
    • 您不需要精英主义来记住迄今为止最好的解决方案。您可以只使用一个变量来存储此信息并且不用于交配。如果适应度和解空间中的最优距离之间存在很强的相关性,精英主义就很有用。
    • 精英主义不是必需的,但是如果你存储了迄今为止找到的最佳解决方案,并且不确保它能够继续用于交配,那么它改进的机会就会更小。遗传算法的重点是不断改进解决方案。到目前为止,没有使用你最好的解决方案似乎适得其反。
    • 在一个非常动态的环境中,最佳解决方案一直在变化,精英主义会降低收敛性。它是否改进了 GA 很大程度上取决于用例。精英主义的使用只是算法的众多参数之一,您需要测试哪些参数适合您的用例。
    • 确实如此。我想我的回答基于我自己与 GA 的工作略有偏差,精英主义几乎总能提高收敛性。抱歉,如果我说精英主义是必要的。与大多数 GA 运营商一样,它可能是高度情境化的。
    猜你喜欢
    • 1970-01-01
    • 2011-10-11
    • 2016-09-05
    • 2014-08-12
    • 1970-01-01
    • 2011-02-22
    • 2019-05-26
    • 2014-12-21
    相关资源
    最近更新 更多