跟踪遗传算法中的适应度

时间:2009-12-06 06:10:40

标签: ruby genetic-algorithm

我还在为我的旧红宝石攻击不死生物post(我知道,我知道,不要试图从死去的查克身上带回来)。但是代码已经失控了,现在我正在研究一种遗传算法来创造生命和死亡的终极战斗,健身就是战斗持续多久。

所以,我已经掌握了它的基础知识;如何调整游戏的属性以及如何获得解决方案的适应性,我无法弄清楚的是如何存储健身,以便我知道何时尝试过组合。

我找不到很多基因代码来查看更不用说我能读得很好的代码来告诉我们发生了什么。有没有人知道这通常是如何完成的,或者只是一个能帮助我指向正确方向的算法?

3 个答案:

答案 0 :(得分:1)

  

我无法弄清楚的是如何   保存健身,以便我知道什么时候   我之前尝试过组合。

通常在GA解决方案中,您不关心生成相同的“解决方案”,而您关注的是“得分”的改善率何时稳定。

现在,如果您想要记录/跟踪“解决方案”历史记录,您很多人想知道它何时重新出现,但我认为您的“游戏”有一些随机性,因此您希望对象重复运行。

答案 1 :(得分:1)

在GA中,如果健康测试需要很长时间,您不希望重新评估解决方案。使用哈希表存储您的健身分数并使哈希键成为染色体。使用“Orcish Maneuver”;首先检查缓存,如果它在那里检索并继续,否则计算它并将其放入哈希下次。

答案 2 :(得分:1)

如果您想要一个完整的GA示例,您可以从英国谢菲尔德大学的进化计算团队获得免费的开源Matlab GA工具箱,可在此处获取:

http://www.sheffield.ac.uk/acse/research/ecrg/gat.html

即使您不想查看matlab代码,工具箱附带的手册也有一个非常好且易于理解的GAs工作原理,可以帮助您使用Ruby代码。