【问题标题】:Genetics algorithms theoretical question遗传学算法理论题
【发布时间】:2010-12-24 15:45:54
【问题描述】:

我目前正在阅读“人工智能:一种现代方法”(Russell+Norvig)和“机器学习”(Mitchell) - 并尝试学习 AINN 的基础知识。

为了理解一些基本的东西,我有两个“新手”问题:

Q1:在遗传算法中,给定两个父母 A 和 B 的染色体分别为 001110 和 101101,以下哪些后代可能是单点交叉产生的?

a: 001101

b: 001110

Q2:以上哪个后代可能是由两点交叉产生的?为什么?

请指教。

【问题讨论】:

  • 重要的是要理解一点交叉和两点交叉不是任何一种神奇的不同算法,只是交换信息的两种不同方式,在交换的内容中具有不同程度的连贯性。许多遗传算法甚至不会使用像这样的比特流,因此深入挖掘正在传输的信息以及原因非常重要,而不是停留在实施细节上。

标签: artificial-intelligence machine-learning genetic-algorithm


【解决方案1】:

一个点交叉是当您从每个父节点进行一个连接时,两点交叉是当您进行两个连接时。即两个来自一个父母,一个来自其他人。

请参阅crossover(维基百科)了解更多信息。

【讨论】:

    【解决方案2】:

    关于 Q1,(a) 可能是通过单点交叉产生的,从父 A 获取位 0-4,从父 B 获取位 5。(b) 不能除非您的交叉算法允许空贡献,即空权重的父贡献。在这种情况下,父母 A 可以贡献其完整的染色体(位 0-5),而父母 B 将贡献零,从而产生 (b)。

    关于 Q2,(a) 和 (b) 都是可能的。有几个组合需要测试;写起来太乏味了,但你可以用笔和纸来做。 :-)

    【讨论】:

      【解决方案3】:

      如果你不知道逆交叉函数,就不可能找到父母(所以 AxB => (a,b) & (any a) => (A,B))。

      通常1点交叉函数为:

      a = A1 + B2
      b = B1 + A2
      

      即使您知道 ab,您也无法求解系统(具有 4 个变量的 2 个方程的系统)。

      如果您知道任何 A 或/和 B 的任何 2 个部分,那么它可以求解(具有 2 个变量的 2 个方程组)。当您提供 A 和 B 时,您的问题就是这种情况。

      一般来说,交叉函数没有反函数,你只需要在逻辑上找到解决方案,或者,如果你知道父母,执行交叉并比较

      所以要为你制定一个通用公式,我们应该知道两件事:

      1. 交叉函数。
      2. 逆交叉函数。

      第二个通常不用于 GA,因为它不是必需的。


      现在,我来回答你的问题。

      Q1:在给定的遗传算法中 两个父母 A 和 B 与 染色体 001110 和 101101, 分别是以下哪项 后代可能是由 单点交叉?

      查看ab我可以看到交叉点在这里:

          1    2
      A: 00 | 1110
      B: 10 | 1101
      

      通常使用这个公式完成交叉:

      a = A1 + B2
      b = B1 + A2
      

      所以可能的孩子是:

      a: 00 | 1101
      b: 10 | 1110
      

      从问题中排除选项 b。
      所以 Q1 的答案是结果子是 a: 001101 假设给定交叉函数

      Q2:以上哪个后代可以 源于两点 交叉?为什么?

      查看a和b我可以看到交叉点可以在这里:

          1   2    3
      A: 00 | 11 | 10
      B: 10 | 11 | 01
      

      两点交叉的通常公式是:

      a = A1 + B2 + A3
      b = B1 + A2 + B3
      

      所以孩子们会是:

      a = 00 | 11 | 10
      b = 10 | 11 | 01
      

      将它们与您提出的选项(小 ab)进行比较,我们可以说出答案:

      第二季度。 A: 根据 ab 都不是与 AxB 的 2 点交叉的结果 给定的交叉函数


      在不知道交叉功能的情况下,不可能回答您的问题。

      我提供的函数在 GA 中很常见,但你可以发明很多这样的函数,以便他们回答问题(见下面的评论):

      【讨论】:

      • 呃,A1+B2+A3不能生成b吗? 00 11 10
      • 在我提供的定义中它不能。我在答案中特别说明并加粗。您定义了一个可以执行此操作的新函数。
      猜你喜欢
      • 2011-07-19
      • 1970-01-01
      • 2016-06-23
      • 2010-10-20
      • 2021-12-26
      • 2011-01-11
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多