遗传算法(GA)和遗传规划(GP)是一个有趣的研究领域。
我想知道你使用GA/GP解决的具体问题,以及如果你没有自己的库/框架,你使用了什么库/框架。
问题:
你用GA/GP解决过什么问题? 你使用了哪些库/框架?
我在寻找第一手的经验,所以请不要回答,除非你有。
遗传算法(GA)和遗传规划(GP)是一个有趣的研究领域。
我想知道你使用GA/GP解决的具体问题,以及如果你没有自己的库/框架,你使用了什么库/框架。
问题:
你用GA/GP解决过什么问题? 你使用了哪些库/框架?
我在寻找第一手的经验,所以请不要回答,除非你有。
当前回答
在大学期间,我们使用NERO(神经网络和遗传算法的结合)来教游戏中的机器人做出智能决策。非常酷。
其他回答
我曾经尝试制作一个围棋电脑播放器,完全基于基因编程。每个程序都将被视为一系列动作的评估函数。即使是在一个相当小的3x4板上,制作的程序也不是很好。
我使用Perl,并自己编写了所有代码。我今天会做不同的事情。
I used a simple genetic algorithm to optimize the signal to noise ratio of a wave that was represented as a binary string. By flipping the the bits certain ways over several million generations I was able to produce a transform that resulted in a higher signal to noise ratio of that wave. The algorithm could have also been "Simulated Annealing" but was not used in this case. At their core, genetic algorithms are simple, and this was about as simple of a use case that I have seen, so I didn't use a framework for generation creation and selection - only a random seed and the Signal-to-Noise Ratio function at hand.
我为我的公司在1992年为货运业开发的3D激光表面轮廓系统开发了一个家庭酿造GA。 该系统依赖于三维三角测量,并使用了定制的激光线扫描仪,512x512相机(具有定制的捕获hw)。相机和激光之间的距离永远不会是精确的,相机的焦点也不会在你期望的256,256的位置找到!
尝试使用标准几何和模拟退火式方程求解来计算校准参数是一场噩梦。
遗传算法在一个晚上就完成了,我创建了一个校准立方体来测试它。我知道立方体的精度很高,因此我的想法是,我的遗传算法可以为每个扫描单元进化一组自定义三角测量参数,以克服生产变化。
这招很管用。退一步说,我简直目瞪口呆!在大约10代的时间里,我的“虚拟”立方体(由原始扫描生成并根据校准参数重新创建)实际上看起来像一个立方体!经过大约50代之后,我得到了我需要的校准。
As part of my undergraduate CompSci degree, we were assigned the problem of finding optimal jvm flags for the Jikes research virtual machine. This was evaluated using the Dicappo benchmark suite which returns a time to the console. I wrote a distributed gentic alogirthm that switched these flags to improve the runtime of the benchmark suite, although it took days to run to compensate for hardware jitter affecting the results. The only problem was I didn't properly learn about the compiler theory (which was the intent of the assignment).
我本可以用现有的默认标志来播种初始种群,但有趣的是,算法发现了一个与O3优化级别非常相似的配置(但实际上在许多测试中更快)。
编辑:我还用Python写了我自己的遗传算法框架,只是使用popen命令来运行各种基准测试,尽管如果不是评估作业,我会看看pyEvolve。
足球引爆。我建立了一个GA系统来预测每周澳式足球比赛的结果。
A few years ago I got bored of the standard work football pool, everybody was just going online and taking the picks from some pundit in the press. So, I figured it couldn't be too hard to beat a bunch of broadcast journalism majors, right? My first thought was to take the results from Massey Ratings and then reveal at the end of the season my strategy after winning fame and glory. However, for reasons I've never discovered Massey does not track AFL. The cynic in me believes it is because the outcome of each AFL game has basically become random chance, but my complaints of recent rule changes belong in a different forum.
该系统基本上考虑了进攻强度、防守强度、主场优势、每周的改进(或缺乏)以及这些方面的变化速度。这为每支球队在整个赛季中建立了一组多项式方程。可以计算给定日期的每场比赛的获胜者和分数。我们的目标是找到最接近过去所有游戏结果的系数集,并使用该集合来预测接下来几周的游戏。
在实践中,该系统将找到能够准确预测过去90%以上游戏结果的解决方案。然后,它会成功地为即将到来的一周(即不在训练集中的那一周)挑选大约60-80%的比赛。
结果是:略高于中游水平。没有巨额奖金也没有能打败维加斯的系统。不过很有趣。
我从零开始构建一切,没有使用任何框架。