遗传算法(GA)和遗传规划(GP)是一个有趣的研究领域。
我想知道你使用GA/GP解决的具体问题,以及如果你没有自己的库/框架,你使用了什么库/框架。
问题:
你用GA/GP解决过什么问题? 你使用了哪些库/框架?
我在寻找第一手的经验,所以请不要回答,除非你有。
遗传算法(GA)和遗传规划(GP)是一个有趣的研究领域。
我想知道你使用GA/GP解决的具体问题,以及如果你没有自己的库/框架,你使用了什么库/框架。
问题:
你用GA/GP解决过什么问题? 你使用了哪些库/框架?
我在寻找第一手的经验,所以请不要回答,除非你有。
当前回答
我曾经尝试制作一个围棋电脑播放器,完全基于基因编程。每个程序都将被视为一系列动作的评估函数。即使是在一个相当小的3x4板上,制作的程序也不是很好。
我使用Perl,并自己编写了所有代码。我今天会做不同的事情。
其他回答
在大学期间,我们使用NERO(神经网络和遗传算法的结合)来教游戏中的机器人做出智能决策。非常酷。
除了一些常见的问题,如《旅行推销员》和Roger Alsing的《蒙娜丽莎》程序的变体,我还编写了一个进化数独求解器(这需要我自己更多的原创想法,而不仅仅是重新实现别人的想法)。解决数独游戏有更可靠的算法,但进化方法效果相当好。
在过去的几天里,在Reddit上看到这篇文章后,我一直在玩一个进化程序来寻找扑克的“冷牌”。目前还不太令人满意,但我想我可以改进。
我有自己的进化算法框架。
我曾经使用一个GA来优化内存地址的哈希函数。这些地址的页面大小为4K或8K,因此它们在地址的位模式中显示出一定的可预测性(最低有效位全为0;最初的哈希函数是“粗笨的”——它倾向于每第三个哈希桶聚集一次命中。改进后的算法具有近乎完美的分布。
几周前,我提出了一个关于SO的解决方案,使用遗传算法来解决图布局的问题。这是一个约束优化问题的例子。
同样在机器学习领域,我用c/c++从头开始实现了一个基于ga的分类规则框架。 我还在一个示例项目中使用了GA来训练人工神经网络(ANN),而不是使用著名的反向传播算法。
此外,作为我研究生研究的一部分,我已经使用GA来训练隐马尔可夫模型,作为基于em的Baum-Welch算法的额外方法(还是在c/c++中)。
在读完《盲人钟表匠》之后,我对道金斯所说的帕斯卡程序产生了兴趣,他开发了一个可以随着时间进化的生物模型。我对使用Swarm编写自己的程序很感兴趣。我没有画出他画的那些奇特的生物图形,但我的“染色体”控制着影响生物体生存能力的特征。他们生活在一个简单的世界里,可以与彼此和环境决一死战。
生物的生存或死亡部分取决于偶然性,但也取决于它们如何有效地适应当地环境,如何有效地消耗营养物质以及如何成功地繁殖。这很有趣,但也向我妻子证明了我是一个极客。