【问题标题】:Combining multiple genetic operators结合多个遗传算子
【发布时间】:2015-12-08 08:32:17
【问题描述】:

如果我错了,请纠正我,但我的理解是交叉往往会导致局部最优,而突变会增加搜索的随机游走,因此往往有助于逃避局部最优趋势。我通过阅读以下内容获得了这一见解:Introduction to Genetic AlgorithmsWikipedia's article on Genetic Operators

我的问题是,挑选哪些个体经历交叉和哪些经历突变的最佳或最理想方法是什么?这有经验法则吗?有什么影响?

提前致谢。这是一个非常具体的问题,对谷歌来说有点困难(至少对我来说)。

【问题讨论】:

    标签: genetic-algorithm heuristics genetic-programming


    【解决方案1】:

    选择参与交叉操作的个体必须考虑适应度,即“更好的个体比劣等的个体更有可能拥有更多的子程序。”: http://cswww.essex.ac.uk/staff/rpoli/gp-field-guide/23Selection.html#7_3

    执行此操作的最常见方法是使用锦标赛选择(参见维基百科)。

    选择要变异的个体不应该考虑适应度,实际上应该是随机的。并且每代变异的元素数量(变异率)应该很低,在 1% 左右(或者可能会落入随机搜索): http://cswww.essex.ac.uk/staff/rpoli/gp-field-guide/24RecombinationandMutation.html#7_4

    根据我的经验,稍微调整比赛参数可能会导致最终结果发生重大变化(无论好坏),因此最好使用这些参数直到找到“最佳位置” ”。

    【讨论】:

    • 这是一个很好的答案。可能在我的讲座或其他东西中错过了这一点。但是你关于突变以及它应该如何以非常低的速率发生的评论是我的教授可能跳过的。谢谢!
    • 我从不随机选择个体进行突变。我的 GA 通常会选择一个人,然后确定是否发生交叉。如果是这样,我选择另一个人,并将他们交叉,产生孩子。然后对于每个孩子(或第一个选择的个体,如果 xover 没有发生),我确定它是否会发生突变。总而言之,每个个体是 1) 未杂交,未突变,或 2) 杂交,未突变,或 3) 未杂交,突变,或 4) 杂交和突变。 GA 是一种炼金术,您只需尝试适合您的域的方法。
    • 如果你一个一个地“拜访”个人,你如何确定他们是否容易参与交叉?我的意思是,如果不知道相对适应度,这听起来很困难。
    • 是的,GA 和 GP 在某种程度上是一种炼金术。这就是我发现它们非常有趣的原因之一 :)
    猜你喜欢
    • 2015-06-29
    • 2018-12-20
    • 2011-07-07
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多