代码之家  ›  专栏  ›  技术社区  ›  Stefano Borini

编码细菌:进化数学行为

  •  9
  • Stefano Borini  · 技术社区  · 16 年前

    我不想在我的博客上放一个链接,但我没有任何其他方法来解释我真正的意思。这篇文章很长,分为三部分( 1 , 2 , 3 但是如果你好奇的话,值得一读。

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

    现在,这只是一个玩具。我有时间浪费,我想满足我的好奇心。 然而,我认为,在研究方面,已经有了一些东西……我希望在这里重新发明轮子。你有没有意识到像我编程的那样在硅细菌中进行更严重的创造尝试?

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

    4 回复  |  直到 13 年前
        1
  •  10
  •   user229044    13 年前

    如果您正在优化代码,也许您正在从事 genetic programming 是吗?

        2
  •  2
  •   Mark Rushakoff    16 年前

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

    另请参见 "Download Your Own Robot Scientist" article on Wired 对它的工作原理的概括。

        3
  •  2
  •   Francesco Solera    16 年前

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

        4
  •  1
  •   ire_and_curses    16 年前

    你熟悉吗 Core Wars ?我记得有很多为这个游戏编写的代码开发人员,他们取得了一些成功。例如, MicroGP++ 是一个汇编代码生成器,可以应用于核心战争汇编语言(以及实际问题!).