遗传算法(GA)和遗传规划(GP)是一个有趣的研究领域。

我想知道你使用GA/GP解决的具体问题,以及如果你没有自己的库/框架,你使用了什么库/框架。

问题:

你用GA/GP解决过什么问题? 你使用了哪些库/框架?

我在寻找第一手的经验,所以请不要回答,除非你有。


当前回答

我几周前做了这个有趣的小玩意。它生成有趣的互联网图像使用GA。有点傻,但很好笑。

http://www.twitterandom.info/GAFunny/

对此有一些见解。它是一些mysql表。一个用于图像列表及其评分(即适合度),另一个用于子图像及其在页面上的位置。

子图像可以有几个细节,但不是全部实现:+大小,倾斜,旋转,+位置,+image_url。

当人们投票决定这张照片有多有趣时,它或多或少会流传到下一代。如果它存活下来,它会产生5-10个带有轻微突变的后代。目前还没有交叉。

其他回答

2004年1月,飞利浦新显示技术公司(Philips New Display Technologies)联系了我,他们正在为有史以来第一款商业电子墨水——索尼Librie——制造电子产品。索尼Librie只在日本上市,比亚马逊Kindle和其他电子墨水在美国和欧洲上市早了好几年。

飞利浦的工程师遇到了一个大问题。在产品上市的几个月前,他们在换页面时仍然会出现重影。问题是产生静电场的200个驱动器。每个驱动器都有一个特定的电压,必须设置在0到1000mv之间。但如果你改变其中一个,就会改变一切。

因此,单独优化每个驱动器的电压是不可能的。可能的值组合的数量以数十亿计,一个特殊的相机大约需要1分钟来评估一个组合。工程师们尝试了许多标准的优化技术,但都没有达到预期的效果。

首席工程师联系了我,因为我之前已经向开源社区发布了一个遗传编程库。他问全科医生/全科医生是否会帮忙,以及我是否能参与其中。我这样做了,在大约一个月的时间里,我们一起工作,我在合成数据上编写和调整GA库,他则将其集成到他们的系统中。然后,有一个周末,他们让它和真人一起直播。

接下来的周一,我收到了他和他们的硬件设计师发来的溢美之词,说没人会相信GA发现的惊人结果。就是这样。同年晚些时候,该产品上市了。

我没有为此得到一分钱,但我有“吹嘘”的权利。他们从一开始就说他们已经超出预算了,所以我在开始工作之前就知道是什么交易。这对于气体的应用是一个很好的例子。:)

在大学期间,我们使用NERO(神经网络和遗传算法的结合)来教游戏中的机器人做出智能决策。非常酷。

我不知道家庭作业算不算…

在我学习期间,我们推出了自己的程序来解决旅行推销员问题。

我们的想法是对几个标准进行比较(映射问题的难度,性能等),我们还使用了其他技术,如模拟退火。

它运行得很好,但我们花了一段时间来理解如何正确地进行“复制”阶段:将手头的问题建模成适合遗传编程的东西,这对我来说是最难的部分……

这是一门有趣的课程,因为我们也涉猎了神经网络之类的知识。

我想知道是否有人在“生产”代码中使用这种编程。

我是一个研究使用进化计算(EC)来自动修复现有程序中的错误的团队的成员。我们已经在现实世界的软件项目中成功地修复了一些真实的错误(参见本项目的主页)。

这种EC修复技术有两种应用。

The first (code and reproduction information available through the project page) evolves the abstract syntax trees parsed from existing C programs and is implemented in Ocaml using our own custom EC engine. The second (code and reproduction information available through the project page), my personal contribution to the project, evolves the x86 assembly or Java byte code compiled from programs written in a number of programming languages. This application is implemented in Clojure and also uses its own custom built EC engine.

进化计算的一个优点是技术的简单性,使得编写自己的自定义实现不太困难。有关遗传规划的一个很好的免费的介绍性文本,请参阅遗传规划的现场指南。

我几周前做了这个有趣的小玩意。它生成有趣的互联网图像使用GA。有点傻,但很好笑。

http://www.twitterandom.info/GAFunny/

对此有一些见解。它是一些mysql表。一个用于图像列表及其评分(即适合度),另一个用于子图像及其在页面上的位置。

子图像可以有几个细节,但不是全部实现:+大小,倾斜,旋转,+位置,+image_url。

当人们投票决定这张照片有多有趣时,它或多或少会流传到下一代。如果它存活下来,它会产生5-10个带有轻微突变的后代。目前还没有交叉。