【问题标题】:Perform set of numbers as a chromosome for genetic algorithm (1-0 chromosome)执行一组数字作为遗传算法的染色体(1-0 染色体)
【发布时间】:2019-05-06 03:35:34
【问题描述】:

我有一个算法要准备,并想将一组数字记录为零和一的染色体。我对适应度函数有一个想法,但不知道如何准备染色体。例如对于一组数字

X = {-2, 1, 4, -3, 3 }

如何做到这一点?

【问题讨论】:

    标签: r algorithm genetic-algorithm


    【解决方案1】:

    如果您知道可以拥有的最大负数,则可以将其添加到所有数字中,然后转换为二进制。在您的示例中,您将 -3 作为最大的负数,所以我会将X 转换为

    X={1, 4, 7, 0, 6}
    

    然后作为二进制,你有

    X={00000001, 00000100, 00000111, 00000000, 00000110}
    

    您可以在遗传算法结束时转换回来。

    【讨论】:

    • 为什么 X 突然变成 {1, 4, 7, 0, 6}?而且我不希望有 5 个值的新集合,但染色体 - 只有一个 - 有零和一个,所以在这种情况下,比如 0000000100000100000001110000000000000110
    • 我在每个数字上加了 3。您可以将所有这些二进制文件连接成一个,因此它看起来像这样00000001000001000000000000000110
    • 啊,我明白了,不幸的是,我永远不知道最大的负数是什么,这里是 -3,但在其他情况下,它可能是 -10、-777 等等......
    • 您可以在前面存储一个额外的位来表示正/负。所以让它们成为 9 位字符串。例如,-2 将是100000010
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2016-08-05
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多