【问题标题】:Genetic algorithm best way to mutate list/gene遗传算法变异列表/基因的最佳方法
【发布时间】:2018-07-11 23:09:24
【问题描述】:

如果我有一个 x 整数列表,那么改变该列表的最佳方法是什么?

一种方法是选择一个随机整数并更改它,但我怀疑如果必须更改 2 个或更多元素才能获得更好的结果,这会导致问题。

那么最好的方法是什么?生成一个新的随机列表?改变随机数量的元素?也许是另一种方式?

【问题讨论】:

    标签: genetic-algorithm mutation dplyr


    【解决方案1】:

    首先,这可能有点偏离主题,您应该注意一些交叉操作可能会引入突变作为副作用。例如,假设您使用二进制编码并且解决方案的某些离散元素 E 使用多个位进行编码,那么如果交叉点位于 E 的二进制表示的中间,则生成的子元素很可能具有其 E 元素与父母的E元素不同。

    在您的情况下,我建议您对列表中一定比例的元素进行变异。这个百分比不需要固定,如果不固定可能会更好(例如,您可以选择在 1% 到 3% 的整数之间进行变异,随机选择)。

    如果您使用二进制编码,请查看Gray code,如果您希望您的孩子的突变更“本地化”(即,更靠近他们父母的社区),这可能会很有趣。

    【讨论】:

      【解决方案2】:

      没有最好/最优的方法。你所有的建议似乎都不错。尝试每一个,看看哪个效果最好。

      定义“更好的性能”意味着什么是重要的(并且经常被忽略)。拥有此度量将帮助您调整参数(例如突变率)。通常,性能是某种形式的适应度收敛速度。祝你好运!

      【讨论】:

        猜你喜欢
        • 2020-07-13
        • 2017-10-10
        • 2016-08-05
        • 2011-06-11
        • 2015-03-01
        • 2015-06-17
        • 2017-05-20
        • 2011-04-26
        • 2012-03-27
        相关资源
        最近更新 更多