【问题标题】:Genetic Algorithms - Can chromosomes be trees?遗传算法——染色体可以是树吗?
【发布时间】:2017-10-30 07:11:06
【问题描述】:

我正在写我的学位论文,我正在尝试创建一个 GA,以便以程序方式为游戏创建关卡。

即使遗传算法不是最好的技术,也是可能的。

无论如何,由于我从未与他们合作过,所以我正在阅读一些关于 GA 介绍的书籍。

问题是,是否有必要将染色体表示为位,或者它们可以是任何类型的数据结构?我问这个问题是因为在我看来,使用树以程序方式创建关卡并使用 GA 评估它们看起来不错,但是当我读到 GA 时,它们在大多数示例中都使用了位。

【问题讨论】:

    标签: genetic-algorithm


    【解决方案1】:

    绝对!如果您希望遗传算法使用更复杂的个体表示,而不是字符串或固定大小的数组,则称为Genetic Programming (GP)。

    在 GP 中,个体通常表示为树:

    或者甚至是代码行: Code generation by genetic algorithms

    有关详细信息,请参阅: What are the differences between genetic algorithms and genetic programming?

    最重要的是,我强烈推荐这本书: A Field Guide to Genetic Programming

    【讨论】:

      【解决方案2】:

      如果您能够解决和捍卫您定义为交叉操作的内容,那么您的提案可能是可行的。此外,除非您在遗传物质中引入不对称性,否则树应该是平衡的,此时线性编码可以携带相同的有效信息。我会坚持使用位或字符串,除非有很好的理由不这样做,因为这样的表示是文献和现有库中的标准。

      【讨论】:

        【解决方案3】:

        绝对!只要您提供合适的适应度、变异和(可能)交叉运算符,您就可以使用任何您想要的数据结构。

        【讨论】:

          猜你喜欢
          • 2023-04-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-24
          • 2017-10-14
          • 2018-12-10
          • 2016-08-05
          • 2019-05-06
          相关资源
          最近更新 更多