【发布时间】:2009-12-11 18:00:27
【问题描述】:
我不打算在我的博客上放一个链接,但我没有任何其他方法来澄清我的真正意思。文章比较长,分为三部分(1,2,3),但是如果你好奇的话,还是值得一读的。
很久以前(至少 5 年)我编写了一个生成“数学细菌”的 python 程序。这些细菌是具有简单的基于操作码的遗传密码的蟒蛇对象。你可以给他们一个数字,他们会根据代码的执行返回一个数字。我随机生成它们的遗传密码,并将环境选择应用于那些产生类似于预定义预期值的结果的对象。然后我让它们复制、引入突变并进化它们。结果非常有趣,因为他们的遗传密码基本上学会了如何求解简单的方程,即使对于训练数据集的不同值也是如此。
现在,这东西只是个玩具。我有时间可以浪费,我想满足我的好奇心。 但是,我认为在研究方面已经取得了一些成果……我希望在这里重新发明轮子。您是否知道像我编程的那样创建计算机内细菌的更严重的尝试?
请注意,这并不是真正的“遗传算法”。遗传算法是当您使用进化/选择来针对给定评分函数改进参数向量时。这有点不同。我针对给定的评分函数优化了代码,而不是参数。
【问题讨论】:
-
不,这很明显是 GA。您正在针对评分函数(该代码是否产生您想要的输出)优化参数(要执行的代码的操作码表示)。
-
好吧,确实,如果您将代码视为参数...您是完全正确的:)
-
当然它是遗传算法 (GA) 的专业化,但这种专业化称为遗传编程 (GP),如下所述。
标签: python genetic-programming evolutionary-algorithm