【问题标题】:Code bacteria: evolving mathematical behavior密码细菌:进化的数学行为
【发布时间】:2009-12-11 18:00:27
【问题描述】:

我不打算在我的博客上放一个链接,但我没有任何其他方法来澄清我的真正意思。文章比较长,分为三部分(1,2,3),但是如果你好奇的话,还是值得一读的。

很久以前(至少 5 年)我编写了一个生成“数学细菌”的 python 程序。这些细菌是具有简单的基于操作码的遗传密码的蟒蛇对象。你可以给他们一个数字,他们会根据代码的执行返回一个数字。我随机生成它们的遗传密码,并将环境选择应用于那些产生类似于预定义预期值的结果的对象。然后我让它们复制、引入突变并进化它们。结果非常有趣,因为他们的遗传密码基本上学会了如何求解简单的方程,即使对于训练数据集的不同值也是如此。

现在,这东西只是个玩具。我有时间可以浪费,我想满足我的好奇心。 但是,我认为在研究方面已经取得了一些成果……我希望在这里重新发明轮子。您是否知道像我编程的那样创建计算机内细菌的更严重的尝试?

请注意,这并不是真正的“遗传算法”。遗传算法是当您使用进化/选择来针对给定评分函数改进参数向量时。这有点不同。我针对给定的评分函数优化了代码,而不是参数。

【问题讨论】:

  • 不,这很明显是 GA。您正在针对评分函数(该代码是否产生您想要的输出)优化参数(要执行的代码的操作码表示)。
  • 好吧,确实,如果您将代码视为参数...您是完全正确的:)
  • 当然它是遗传算法 (GA) 的专业化,但这种专业化称为遗传编程 (GP),如下所述。

标签: python genetic-programming evolutionary-algorithm


【解决方案1】:

如果你在优化代码,也许你在搞genetic programming

【讨论】:

    【解决方案2】:

    免费实用程序Eureqa 在可以基于多元输入数据创建拟合符号函数(比简单线性回归等复杂得多)的意义上是相似的。但是,它使用 GA 来提供功能,所以我不确定这是否正是您的想法。

    另请参阅"Download Your Own Robot Scientist" article on Wired,了解其工作原理的总体思路。

    【讨论】:

    • 它似乎更像是一种推断关系的工具...一种带有推理器的 PCA。
    【解决方案3】:

    好文章, 我会说你说的是“基因表达编程”而不是“基因编程”,顺便说一句。

    【讨论】:

    【解决方案4】:

    你熟悉Core Wars吗?我记得有一些为游戏编写的代码进化者取得了一些成功。例如,MicroGP++ 是一个汇编代码生成器,可以应用于 Core Wars 汇编语言(以及实际问题!)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-22
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 2019-09-11
      • 2016-11-21
      相关资源
      最近更新 更多