【问题标题】:Order Crossover (OX) - genetic algorithm阶交叉 (OX) - 遗传算法
【发布时间】:2014-10-22 22:44:46
【问题描述】:

有人可以解释一下 Order Crossover 的工作原理吗?我会给出这个例子,然后我想以一种通用的方式来理解它。

父 1 = 1 2 3 | 4 5 6 7 | 8 9

父 2 = 4 5 2 | 1 8 7 6 | 9 3

解决方案是两个孩子:

儿童 1 = 2 1 8 | 4 5 6 7 | 9 3

儿童 2 = 3 4 5 | 1 8 7 6 | 9 2

我了解某些部分,但其他部分不了解。

谢谢

【问题讨论】:

    标签: java artificial-intelligence


    【解决方案1】:

    基本上,来自父 1 的一系列连续等位基因会下降,剩余的值按照它们在父 2 中出现的顺序放置在子中。

    第 1 步:从亲本 1 中随机选择一组连续等位基因。(下划线)

    第 2 步:将条带向下放到子 1 中,并在父 2 中标记这些等位基因。

    第 3 步:从条带的右侧开始,从父项 2 中获取等位基因,并将它们插入条带右边缘的子项 1 中。由于 8 在父 2 中的那个位置,它首先在条带的右边缘插入子 1。请注意,等位基因 1、2 和 3 被跳过,因为它们被标记出来,并且 4 被插入到 Child 1 的第二个位置。

    第 4 步:如果您希望从两个父母那里获得第二个孩子,请翻转父母 1 和父母 2,然后返回第 1 步。

    【讨论】:

      【解决方案2】:

      this post 中详细介绍了一个这样的有序交叉解决方案。

      此答案提供了一些示例 java 代码,其中包含详细说明用于有序交叉的过程的文档。

      此外,来自 Moscato 的 this paper 提供了 OX 流程的细分。

      希望这会有所帮助!

      【讨论】:

      • 您与 Moscato 论文的链接多年来已失效。 Here's 一个新的。
      • @Muroxxas,谢谢我更新了链接。
      猜你喜欢
      • 2014-08-12
      • 1970-01-01
      • 2016-08-31
      • 2015-07-03
      • 2016-09-16
      • 2011-10-11
      • 2015-07-15
      • 2019-08-19
      相关资源
      最近更新 更多